9#ifndef LLVM_LIB_CODEGEN_SAFESTACKLAYOUT_H
10#define LLVM_LIB_CODEGEN_SAFESTACKLAYOUT_H
33 StackRegion(
unsigned Start,
unsigned End,
53 void layoutObject(StackObject &Obj);
This file defines the DenseMap class.
ConstantRange Range(APInt(BitWidth, Low), APInt(BitWidth, High))
This file defines the SmallVector class.
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
This class represents a set of interesting instructions where an alloca is live.
LLVM Value Representation.
This class implements an extremely fast bulk output stream that can only output to a stream.
Compute the layout of an unsafe stack frame.
unsigned getFrameSize()
Returns the size of the entire frame.
void computeLayout()
Run the layout computation for all previously added objects.
Align getObjectAlignment(const Value *V)
Returns the alignment of the object.
unsigned getObjectOffset(const Value *V)
Returns the offset to the object start in the stack frame.
Align getFrameAlignment()
Returns the alignment of the frame.
void print(raw_ostream &OS)
StackLayout(Align StackAlignment)
void addObject(const Value *V, unsigned Size, Align Alignment, const StackLifetime::LiveRange &Range)
Add an object to the stack frame.
This is an optimization pass for GlobalISel generic memory operations.
This struct is a compact representation of a valid (non-zero power of two) alignment.