14 #ifndef LLVM_LIB_TARGET_AARCH64_AARCH64MACHINEFUNCTIONINFO_H
15 #define LLVM_LIB_TARGET_AARCH64_AARCH64MACHINEFUNCTIONINFO_H
38 unsigned BytesInStackArgArea = 0;
43 unsigned ArgumentStackToRestore = 0;
47 bool HasStackFrame =
false;
50 unsigned LocalStackSize;
53 unsigned CalleeSavedStackSize;
57 unsigned NumLocalDynamicTLSAccesses = 0;
61 int VarArgsStackIndex = 0;
65 int VarArgsGPRIndex = 0;
69 unsigned VarArgsGPRSize = 0;
73 int VarArgsFPRIndex = 0;
77 unsigned VarArgsFPRSize = 0;
81 bool IsSplitCSR =
false;
85 bool StackRealigned =
false;
89 bool CalleeSaveStackHasFreeSpace =
false;
103 ArgumentStackToRestore = bytes;
113 return CalleeSaveStackHasFreeSpace;
116 CalleeSaveStackHasFreeSpace = s;
130 return NumLocalDynamicTLSAccesses;
163 : Kind(Kind), Args(Args.
begin(), Args.
end()) {
190 #endif // LLVM_LIB_TARGET_AARCH64_AARCH64MACHINEFUNCTIONINFO_H
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
unsigned getArgumentStackToRestore() const
void setArgumentStackToRestore(unsigned bytes)
AArch64FunctionInfo(MachineFunction &MF)
unsigned getCalleeSavedStackSize() const
bool hasStackFrame() const
bool hasCalleeSaveStackFreeSpace() const
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory)...
unsigned getLocalStackSize() const
void setLocalStackSize(unsigned Size)
AArch64FunctionInfo()=default
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.
MILOHDirective(MCLOHType Kind, LOHArgs Args)
void setCalleeSaveStackHasFreeSpace(bool s)
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
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small...
void setStackRealigned(bool s)
int getVarArgsFPRIndex() const
static bool isValidMCLOHType(unsigned Kind)
unsigned getVarArgsGPRSize() const
bool isStackRealigned() const
void setBytesInStackArgArea(unsigned bytes)
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
void addLOHDirective(MCLOHType Kind, MILOHArgs Args)
Add a LOH directive of this Kind and this Args.
SmallPtrSet< const MachineInstr *, 16 > SetOfInstructions
ArrayRef< const MachineInstr * > LOHArgs
void setCalleeSavedStackSize(unsigned Size)
void setIsSplitCSR(bool s)