10 #ifndef LLVM_LIB_CODEGEN_SAFESTACKLAYOUT_H 11 #define LLVM_LIB_CODEGEN_SAFESTACKLAYOUT_H 26 unsigned MaxAlignment;
33 StackRegion(
unsigned Start,
unsigned End,
35 : Start(Start), End(End), Range(Range) {}
43 unsigned Size, Alignment;
52 void layoutObject(StackObject &Obj);
55 StackLayout(
unsigned StackAlignment) : MaxAlignment(StackAlignment) {}
84 #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.
This class represents lattice values for constants.
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)
Compute the layout of an unsafe stack frame.
unsigned getObjectAlignment(const Value *V)
Returns the alignment of the object.
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_NODISCARD bool empty() const
LLVM Value Representation.
This class implements an extremely fast bulk output stream that can only output to a stream...