14 #ifndef LLVM_LIB_TARGET_AARCH64_AARCH64MACHINEFUNCTIONINFO_H
15 #define LLVM_LIB_TARGET_AARCH64_AARCH64MACHINEFUNCTIONINFO_H
37 unsigned BytesInStackArgArea;
42 unsigned ArgumentStackToRestore;
49 unsigned LocalStackSize;
53 unsigned NumLocalDynamicTLSAccesses;
57 int VarArgsStackIndex;
65 unsigned VarArgsGPRSize;
73 unsigned VarArgsFPRSize;
77 : BytesInStackArgArea(0), ArgumentStackToRestore(0), HasStackFrame(
false),
78 NumLocalDynamicTLSAccesses(0), VarArgsStackIndex(0), VarArgsGPRIndex(0),
79 VarArgsGPRSize(0), VarArgsFPRIndex(0), VarArgsFPRSize(0) {}
82 : BytesInStackArgArea(0), ArgumentStackToRestore(0), HasStackFrame(
false),
83 NumLocalDynamicTLSAccesses(0), VarArgsStackIndex(0), VarArgsGPRIndex(0),
84 VarArgsGPRSize(0), VarArgsFPRIndex(0), VarArgsFPRSize(0) {
93 ArgumentStackToRestore = bytes;
104 return NumLocalDynamicTLSAccesses;
137 : Kind(Kind), Args(Args.
begin(), Args.
end()) {
SmallVector< MILOHDirective, 32 > MILOHContainer
void push_back(const T &Elt)
const_iterator end(StringRef path)
Get end iterator over path.
AArch64FunctionInfo - This class is derived from MachineFunctionInfo and contains private AArch64-spe...
void setVarArgsGPRSize(unsigned Size)
unsigned getVarArgsFPRSize() const
int getVarArgsStackIndex() const
void setVarArgsStackIndex(int Index)
void setVarArgsFPRIndex(int Index)
const_iterator begin(StringRef path)
Get begin iterator over path.
const MILOHContainer & getLOHContainer() const
MILOHDirective::LOHArgs MILOHArgs
void setVarArgsFPRSize(unsigned Size)
MachineFunctionInfo - This class can be derived from and used by targets to hold private target-speci...
MCLOHType getKind() const
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
unsigned getArgumentStackToRestore() const
void setArgumentStackToRestore(unsigned bytes)
SmallVectorImpl< const MachineInstr * > LOHArgs
AArch64FunctionInfo(MachineFunction &MF)
bool hasStackFrame() const
unsigned getLocalStackSize() const
void setLocalStackSize(unsigned Size)
void incNumLocalDynamicTLSAccesses()
std::pair< iterator, bool > insert(PtrType Ptr)
Inserts Ptr if and only if there is no element in the container equal to Ptr.
MCLOHType
Linker Optimization Hint Type.
unsigned getBytesInStackArgArea() const
const SetOfInstructions & getLOHRelated() const
int getVarArgsGPRIndex() const
void setVarArgsGPRIndex(int Index)
void setHasStackFrame(bool s)
unsigned getNumLocalDynamicTLSAccesses() const
MILOHDirective(MCLOHType Kind, const LOHArgs &Args)
void addLOHDirective(MCLOHType Kind, const MILOHArgs &Args)
Add a LOH directive of this Kind and this Args.
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small...
const LOHArgs & getArgs() const
int getVarArgsFPRIndex() const
static bool isValidMCLOHType(unsigned Kind)
unsigned getVarArgsGPRSize() const
void setBytesInStackArgArea(unsigned bytes)
const ARM::ArchExtKind Kind
SmallPtrSet< const MachineInstr *, 16 > SetOfInstructions