14 #ifndef LLVM_LIB_TARGET_AARCH64_AARCH64MACHINEFUNCTIONINFO_H 15 #define LLVM_LIB_TARGET_AARCH64_AARCH64MACHINEFUNCTIONINFO_H 42 unsigned BytesInStackArgArea = 0;
47 unsigned ArgumentStackToRestore = 0;
51 bool HasStackFrame =
false;
54 unsigned LocalStackSize;
57 unsigned CalleeSavedStackSize;
61 unsigned NumLocalDynamicTLSAccesses = 0;
65 int VarArgsStackIndex = 0;
69 int VarArgsGPRIndex = 0;
73 unsigned VarArgsGPRSize = 0;
77 int VarArgsFPRIndex = 0;
81 unsigned VarArgsFPRSize = 0;
85 bool IsSplitCSR =
false;
89 bool StackRealigned =
false;
93 bool CalleeSaveStackHasFreeSpace =
false;
121 ArgumentStackToRestore = bytes;
131 return CalleeSaveStackHasFreeSpace;
134 CalleeSaveStackHasFreeSpace = s;
148 return NumLocalDynamicTLSAccesses;
170 auto It = JumpTableEntryInfo.find(Idx);
171 if (It != JumpTableEntryInfo.end())
172 return It->second.first;
176 return JumpTableEntryInfo.find(Idx)->second.second;
179 JumpTableEntryInfo[Idx] = std::make_pair(Size, PCRelSym);
197 : Kind(Kind), Args(Args.
begin(), Args.
end()) {
213 LOHRelated.insert(Args.
begin(), Args.
end());
217 return ForwardedMustTailRegParms;
230 #endif // LLVM_LIB_TARGET_AARCH64_AARCH64MACHINEFUNCTIONINFO_H const_iterator end(StringRef path)
Get end iterator over path.
AArch64FunctionInfo - This class is derived from MachineFunctionInfo and contains private AArch64-spe...
const_iterator begin(StringRef path, Style style=Style::native)
Get begin iterator over path.
void setVarArgsGPRSize(unsigned Size)
This class represents lattice values for constants.
unsigned getNumLocalDynamicTLSAccesses() const
unsigned getLocalStackSize() const
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
int getVarArgsStackIndex() const
void setVarArgsStackIndex(int Index)
unsigned getJumpTableEntrySize(int Idx) const
const SetOfInstructions & getLOHRelated() const
MCLOHType getKind() const
void setVarArgsFPRIndex(int Index)
bool hasFnAttribute(Attribute::AttrKind Kind) const
Return true if the function has the attribute.
void setVarArgsFPRSize(unsigned Size)
MachineFunctionInfo - This class can be derived from and used by targets to hold private target-speci...
int getVarArgsGPRIndex() const
bool isStackRealigned() const
void setHasRedZone(bool s)
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
unsigned getArgumentStackToRestore() const
void setArgumentStackToRestore(unsigned bytes)
AArch64FunctionInfo(MachineFunction &MF)
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory)...
unsigned getCalleeSavedStackSize() const
void setLocalStackSize(unsigned Size)
AArch64FunctionInfo()=default
void setJumpTableEntryInfo(int Idx, unsigned Size, MCSymbol *PCRelSym)
void incNumLocalDynamicTLSAccesses()
unsigned getVarArgsGPRSize() const
unsigned getVarArgsFPRSize() const
MILOHDirective(MCLOHType Kind, LOHArgs Args)
void setCalleeSaveStackHasFreeSpace(bool s)
MCLOHType
Linker Optimization Hint Type.
void setVarArgsGPRIndex(int Index)
SmallVectorImpl< ForwardedRegister > & getForwardedMustTailRegParms()
MCSymbol * getJumpTableEntryPCRelSymbol(int Idx) const
void setHasStackFrame(bool s)
ArrayRef< const MachineInstr * > LOHArgs
unsigned getBytesInStackArgArea() const
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small...
void setStackRealigned(bool s)
bool hasCalleeSaveStackFreeSpace() const
const Function & getFunction() const
Return the LLVM function that this machine code represents.
Optional< bool > hasRedZone() const
const MILOHContainer & getLOHContainer() const
static bool isValidMCLOHType(unsigned Kind)
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.
int getVarArgsFPRIndex() const
bool hasStackFrame() const
void setCalleeSavedStackSize(unsigned Size)
void setIsSplitCSR(bool s)