10 #ifndef LLVM_LIB_CODEGEN_SAFESTACKLAYOUT_H
11 #define LLVM_LIB_CODEGEN_SAFESTACKLAYOUT_H
20 unsigned MaxAlignment;
26 StackRegion(
unsigned Start,
unsigned End,
28 : Start(Start),
End(End), Range(Range) {}
35 unsigned Size, Alignment;
42 void layoutObject(StackObject &Obj);
45 StackLayout(
unsigned StackAlignment) : MaxAlignment(StackAlignment) {}
68 #endif // LLVM_LIB_CODEGEN_SAFESTACKLAYOUT_H
This class represents a set of interesting instructions where an alloca is live.
void addObject(const Value *V, unsigned Size, unsigned Alignment, const StackColoring::LiveRange &Range)
Add an object to the stack frame.
unsigned getFrameSize()
Returns the size of the entire frame.
unsigned getObjectOffset(const Value *V)
Returns the offset to the object start in the stack frame.
StackLayout(unsigned StackAlignment)
LLVM_NODISCARD bool empty() const
Compute the layout of an unsafe stack frame.
static const unsigned End
void computeLayout()
Run the layout computation for all previously added objects.
unsigned getFrameAlignment()
Returns the alignment of the frame.
void print(raw_ostream &OS)
LLVM Value Representation.
This class implements an extremely fast bulk output stream that can only output to a stream...