LLVM: llvm::AArch64FunctionInfo Class Reference (original) (raw)

AArch64FunctionInfo - This class is derived from MachineFunctionInfo and contains private AArch64-specific information for each MachineFunction. More...

#include "[Target/AArch64/AArch64MachineFunctionInfo.h](AArch64MachineFunctionInfo%5F8h%5Fsource.html)"

Public Member Functions
AArch64FunctionInfo (const Function &F, const AArch64Subtarget *STI)
MachineFunctionInfo * clone (BumpPtrAllocator &Allocator, MachineFunction &DestMF, const DenseMap< MachineBasicBlock *, MachineBasicBlock * > &Src2DstMBB) const override
Make a functionally equivalent copy of this MachineFunctionInfo in MF.
void setEarlyAllocSMESaveBuffer (Register Ptr)
Register getEarlyAllocSMESaveBuffer () const
void setZT0SpillSlotIndex (int FI)
int getZT0SpillSlotIndex () const
bool hasZT0SpillSlotIndex () const
Register getSMESaveBufferAddr () const
void setSMESaveBufferAddr (Register Reg)
unsigned isSMESaveBufferUsed () const
void setSMESaveBufferUsed (bool Used=true)
TPIDR2Object & getTPIDR2Obj ()
void setPredicateRegForFillSpill (unsigned Reg)
unsigned getPredicateRegForFillSpill () const
Register getPStateSMReg () const
void setPStateSMReg (Register Reg)
bool isSVECC () const
void setIsSVECC (bool s)
void initializeBaseYamlFields (const yaml::AArch64FunctionInfo &YamlMFI)
unsigned getBytesInStackArgArea () const
void setBytesInStackArgArea (unsigned bytes)
unsigned getArgumentStackToRestore () const
void setArgumentStackToRestore (unsigned bytes)
unsigned getTailCallReservedStack () const
void setTailCallReservedStack (unsigned bytes)
void setStackSizeSVE (uint64_t ZPR, uint64_t PPR)
uint64_t getStackSizeZPR () const
uint64_t getStackSizePPR () const
bool hasCalculatedStackSizeSVE () const
bool hasSVEStackSize () const
bool hasStackFrame () const
void setHasStackFrame (bool s)
bool isStackRealigned () const
void setStackRealigned (bool s)
bool hasCalleeSaveStackFreeSpace () const
void setCalleeSaveStackHasFreeSpace (bool s)
bool isSplitCSR () const
void setIsSplitCSR (bool s)
void setLocalStackSize (uint64_t Size)
uint64_t getLocalStackSize () const
void setOutliningStyle (const std::string &Style)
std::optional< std::string > getOutliningStyle () const
void setCalleeSavedStackSize (unsigned Size)
unsigned getCalleeSavedStackSize (const MachineFrameInfo &MFI) const
unsigned getCalleeSavedStackSize () const
void setSVECalleeSavedStackSize (unsigned ZPR, unsigned PPR)
unsigned getZPRCalleeSavedStackSize () const
unsigned getPPRCalleeSavedStackSize () const
unsigned getSVECalleeSavedStackSize () const
void incNumLocalDynamicTLSAccesses ()
unsigned getNumLocalDynamicTLSAccesses () const
bool isStackHazardIncludedInCalleeSaveArea () const
std::optional< bool > hasRedZone () const
void setHasRedZone (bool s)
int getVarArgsStackIndex () const
void setVarArgsStackIndex (int Index)
unsigned getVarArgsStackOffset () const
void setVarArgsStackOffset (unsigned Offset)
int getVarArgsGPRIndex () const
void setVarArgsGPRIndex (int Index)
unsigned getVarArgsGPRSize () const
void setVarArgsGPRSize (unsigned Size)
int getVarArgsFPRIndex () const
void setVarArgsFPRIndex (int Index)
unsigned getVarArgsFPRSize () const
void setVarArgsFPRSize (unsigned Size)
bool hasStackHazardSlotIndex () const
int getStackHazardSlotIndex () const
void setStackHazardSlotIndex (int Index)
int getStackHazardCSRSlotIndex () const
void setStackHazardCSRSlotIndex (int Index)
bool hasSplitSVEObjects () const
void setSplitSVEObjects (bool s)
bool hasSVE_AAPCS (const MachineFunction &MF) const
SMEAttrs getSMEFnAttrs () const
unsigned getSRetReturnReg () const
void setSRetReturnReg (unsigned Reg)
unsigned getJumpTableEntrySize (int Idx) const
MCSymbol * getJumpTableEntryPCRelSymbol (int Idx) const
void setJumpTableEntryInfo (int Idx, unsigned Size, MCSymbol *PCRelSym)
const SetOfInstructions & getLOHRelated () const
const MILOHContainer & getLOHContainer () const
void addLOHDirective (MCLOHType Kind, MILOHArgs Args)
Add a LOH directive of this Kind and this Args.
size_t clearLinkerOptimizationHints (const SmallPtrSetImpl< MachineInstr * > &MIs)
SmallVectorImpl< ForwardedRegister > & getForwardedMustTailRegParms ()
std::optional< int > getTaggedBasePointerIndex () const
void setTaggedBasePointerIndex (int Index)
unsigned getTaggedBasePointerOffset () const
void setTaggedBasePointerOffset (unsigned Offset)
int getCalleeSaveBaseToFrameRecordOffset () const
void setCalleeSaveBaseToFrameRecordOffset (int Offset)
bool shouldSignReturnAddress (const MachineFunction &MF) const
SignReturnAddress getSignReturnAddressCondition () const
bool needsShadowCallStackPrologueEpilogue (MachineFunction &MF) const
bool shouldSignWithBKey () const
bool hasELFSignedGOT () const
MCSymbol * getSigningInstrLabel () const
void setSigningInstrLabel (MCSymbol *Label)
bool isMTETagged () const
bool branchTargetEnforcement () const
bool branchProtectionPAuthLR () const
void setHasSwiftAsyncContext (bool HasContext)
bool hasSwiftAsyncContext () const
void setSwiftAsyncContextFrameIdx (int FI)
int getSwiftAsyncContextFrameIdx () const
bool needsDwarfUnwindInfo (const MachineFunction &MF) const
bool needsAsyncDwarfUnwindInfo (const MachineFunction &MF) const
bool hasStreamingModeChanges () const
void setHasStreamingModeChanges (bool HasChanges)
bool hasStackProbing () const
int64_t getStackProbeSize () const
Public Member Functions inherited from llvm::MachineFunctionInfo
virtual ~MachineFunctionInfo ()
Static Public Member Functions
static bool shouldSignReturnAddress (SignReturnAddress Condition, bool IsLRSpilled)
Static Public Member Functions inherited from llvm::MachineFunctionInfo
template<typename FuncInfoTy, typename SubtargetTy = TargetSubtargetInfo>
static FuncInfoTy * create (BumpPtrAllocator &Allocator, const Function &F, const SubtargetTy *STI)
Factory function: default behavior is to call new using the supplied allocator.
template
static Ty * create (BumpPtrAllocator &Allocator, const Ty &MFI)

AArch64FunctionInfo - This class is derived from MachineFunctionInfo and contains private AArch64-specific information for each MachineFunction.

Definition at line 56 of file AArch64MachineFunctionInfo.h.

MILOHArgs

MILOHContainer

SetOfInstructions

Definition at line 111 of file AArch64MachineFunctionInfo.cpp.

References assert(), llvm::dyn_cast_or_null(), llvm::mdconst::extract_or_null(), F, llvm::AArch64Subtarget::getFrameLowering(), GetSignReturnAddress(), llvm::TargetFrameLowering::getTransientStackAlign(), hasELFSignedGOTHelper(), llvm::AArch64Subtarget::isTargetWindows(), llvm::report_fatal_error(), ShouldSignWithBKey(), llvm::StringRef::size(), and llvm::Align::value().

Referenced by clone(), and needsAsyncDwarfUnwindInfo().

addLOHDirective()

void llvm::AArch64FunctionInfo::addLOHDirective ( MCLOHType Kind, MILOHArgs Args ) inline

branchProtectionPAuthLR()

bool llvm::AArch64FunctionInfo::branchProtectionPAuthLR ( ) const inline

branchTargetEnforcement()

bool llvm::AArch64FunctionInfo::branchTargetEnforcement ( ) const inline

clearLinkerOptimizationHints()

clone()

getArgumentStackToRestore()

unsigned llvm::AArch64FunctionInfo::getArgumentStackToRestore ( ) const inline

getBytesInStackArgArea()

unsigned llvm::AArch64FunctionInfo::getBytesInStackArgArea ( ) const inline

getCalleeSaveBaseToFrameRecordOffset()

int llvm::AArch64FunctionInfo::getCalleeSaveBaseToFrameRecordOffset ( ) const inline

getCalleeSavedStackSize() [1/2]

unsigned llvm::AArch64FunctionInfo::getCalleeSavedStackSize ( ) const inline

getCalleeSavedStackSize() [2/2]

Definition at line 376 of file AArch64MachineFunctionInfo.h.

References llvm::alignTo(), assert(), llvm::TargetStackID::Default, llvm::MachineFrameInfo::getCalleeSavedInfo(), getCalleeSavedStackSize(), llvm::MachineFrameInfo::getObjectOffset(), llvm::MachineFrameInfo::getObjectSize(), llvm::MachineFrameInfo::getStackID(), getSwiftAsyncContextFrameIdx(), Info, llvm::MachineFrameInfo::isCalleeSavedInfoValid(), llvm::Offset, and Size.

Referenced by computeCalleeSaveRegisterPairs(), llvm::AArch64FrameLowering::determineCalleeSaves(), llvm::AArch64FrameLowering::getFrameIndexReferenceFromSP(), and llvm::AArch64FrameLowering::resolveFrameOffsetReference().

getEarlyAllocSMESaveBuffer()

Register llvm::AArch64FunctionInfo::getEarlyAllocSMESaveBuffer ( ) const inline

getForwardedMustTailRegParms()

getJumpTableEntryPCRelSymbol()

MCSymbol * llvm::AArch64FunctionInfo::getJumpTableEntryPCRelSymbol ( int Idx) const inline

getJumpTableEntrySize()

unsigned llvm::AArch64FunctionInfo::getJumpTableEntrySize ( int Idx) const inline

getLocalStackSize()

uint64_t llvm::AArch64FunctionInfo::getLocalStackSize ( ) const inline

getLOHContainer()

const MILOHContainer & llvm::AArch64FunctionInfo::getLOHContainer ( ) const inline

getLOHRelated()

const SetOfInstructions & llvm::AArch64FunctionInfo::getLOHRelated ( ) const inline

getNumLocalDynamicTLSAccesses()

unsigned llvm::AArch64FunctionInfo::getNumLocalDynamicTLSAccesses ( ) const inline

getOutliningStyle()

std::optional< std::string > llvm::AArch64FunctionInfo::getOutliningStyle ( ) const inline

getPPRCalleeSavedStackSize()

unsigned llvm::AArch64FunctionInfo::getPPRCalleeSavedStackSize ( ) const inline

getPredicateRegForFillSpill()

unsigned llvm::AArch64FunctionInfo::getPredicateRegForFillSpill ( ) const inline

getPStateSMReg()

Register llvm::AArch64FunctionInfo::getPStateSMReg ( ) const inline

getSigningInstrLabel()

MCSymbol * llvm::AArch64FunctionInfo::getSigningInstrLabel ( ) const inline

getSignReturnAddressCondition()

SignReturnAddress llvm::AArch64FunctionInfo::getSignReturnAddressCondition ( ) const inline

getSMEFnAttrs()

SMEAttrs llvm::AArch64FunctionInfo::getSMEFnAttrs ( ) const inline

getSMESaveBufferAddr()

Register llvm::AArch64FunctionInfo::getSMESaveBufferAddr ( ) const inline

getSRetReturnReg()

unsigned llvm::AArch64FunctionInfo::getSRetReturnReg ( ) const inline

getStackHazardCSRSlotIndex()

int llvm::AArch64FunctionInfo::getStackHazardCSRSlotIndex ( ) const inline

getStackHazardSlotIndex()

int llvm::AArch64FunctionInfo::getStackHazardSlotIndex ( ) const inline

getStackProbeSize()

int64_t llvm::AArch64FunctionInfo::getStackProbeSize ( ) const inline

getStackSizePPR()

uint64_t llvm::AArch64FunctionInfo::getStackSizePPR ( ) const inline

getStackSizeZPR()

uint64_t llvm::AArch64FunctionInfo::getStackSizeZPR ( ) const inline

getSVECalleeSavedStackSize()

unsigned llvm::AArch64FunctionInfo::getSVECalleeSavedStackSize ( ) const inline

getSwiftAsyncContextFrameIdx()

int llvm::AArch64FunctionInfo::getSwiftAsyncContextFrameIdx ( ) const inline

getTaggedBasePointerIndex()

std::optional< int > llvm::AArch64FunctionInfo::getTaggedBasePointerIndex ( ) const inline

getTaggedBasePointerOffset()

unsigned llvm::AArch64FunctionInfo::getTaggedBasePointerOffset ( ) const inline

getTailCallReservedStack()

unsigned llvm::AArch64FunctionInfo::getTailCallReservedStack ( ) const inline

getTPIDR2Obj()

TPIDR2Object & llvm::AArch64FunctionInfo::getTPIDR2Obj ( ) inline

getVarArgsFPRIndex()

int llvm::AArch64FunctionInfo::getVarArgsFPRIndex ( ) const inline

getVarArgsFPRSize()

unsigned llvm::AArch64FunctionInfo::getVarArgsFPRSize ( ) const inline

getVarArgsGPRIndex()

int llvm::AArch64FunctionInfo::getVarArgsGPRIndex ( ) const inline

getVarArgsGPRSize()

unsigned llvm::AArch64FunctionInfo::getVarArgsGPRSize ( ) const inline

getVarArgsStackIndex()

int llvm::AArch64FunctionInfo::getVarArgsStackIndex ( ) const inline

getVarArgsStackOffset()

unsigned llvm::AArch64FunctionInfo::getVarArgsStackOffset ( ) const inline

getZPRCalleeSavedStackSize()

unsigned llvm::AArch64FunctionInfo::getZPRCalleeSavedStackSize ( ) const inline

getZT0SpillSlotIndex()

int llvm::AArch64FunctionInfo::getZT0SpillSlotIndex ( ) const inline

hasCalculatedStackSizeSVE()

bool llvm::AArch64FunctionInfo::hasCalculatedStackSizeSVE ( ) const inline

hasCalleeSaveStackFreeSpace()

bool llvm::AArch64FunctionInfo::hasCalleeSaveStackFreeSpace ( ) const inline

hasELFSignedGOT()

bool llvm::AArch64FunctionInfo::hasELFSignedGOT ( ) const inline

hasRedZone()

std::optional< bool > llvm::AArch64FunctionInfo::hasRedZone ( ) const inline

hasSplitSVEObjects()

bool llvm::AArch64FunctionInfo::hasSplitSVEObjects ( ) const inline

hasStackFrame()

bool llvm::AArch64FunctionInfo::hasStackFrame ( ) const inline

hasStackHazardSlotIndex()

bool llvm::AArch64FunctionInfo::hasStackHazardSlotIndex ( ) const inline

hasStackProbing()

bool llvm::AArch64FunctionInfo::hasStackProbing ( ) const inline

hasStreamingModeChanges()

bool llvm::AArch64FunctionInfo::hasStreamingModeChanges ( ) const inline

hasSVE_AAPCS()

hasSVEStackSize()

bool llvm::AArch64FunctionInfo::hasSVEStackSize ( ) const inline

hasSwiftAsyncContext()

bool llvm::AArch64FunctionInfo::hasSwiftAsyncContext ( ) const inline

hasZT0SpillSlotIndex()

bool llvm::AArch64FunctionInfo::hasZT0SpillSlotIndex ( ) const inline

incNumLocalDynamicTLSAccesses()

void llvm::AArch64FunctionInfo::incNumLocalDynamicTLSAccesses ( ) inline

initializeBaseYamlFields()

isMTETagged()

bool llvm::AArch64FunctionInfo::isMTETagged ( ) const inline

isSMESaveBufferUsed()

unsigned llvm::AArch64FunctionInfo::isSMESaveBufferUsed ( ) const inline

isSplitCSR()

bool llvm::AArch64FunctionInfo::isSplitCSR ( ) const inline

isStackHazardIncludedInCalleeSaveArea()

bool llvm::AArch64FunctionInfo::isStackHazardIncludedInCalleeSaveArea ( ) const inline

isStackRealigned()

bool llvm::AArch64FunctionInfo::isStackRealigned ( ) const inline

isSVECC()

bool llvm::AArch64FunctionInfo::isSVECC ( ) const inline

needsAsyncDwarfUnwindInfo()

needsDwarfUnwindInfo()

needsShadowCallStackPrologueEpilogue()

setArgumentStackToRestore()

void llvm::AArch64FunctionInfo::setArgumentStackToRestore ( unsigned bytes) inline

setBytesInStackArgArea()

void llvm::AArch64FunctionInfo::setBytesInStackArgArea ( unsigned bytes) inline

setCalleeSaveBaseToFrameRecordOffset()

void llvm::AArch64FunctionInfo::setCalleeSaveBaseToFrameRecordOffset ( int Offset) inline

setCalleeSavedStackSize()

void llvm::AArch64FunctionInfo::setCalleeSavedStackSize ( unsigned Size) inline

setCalleeSaveStackHasFreeSpace()

void llvm::AArch64FunctionInfo::setCalleeSaveStackHasFreeSpace ( bool s) inline

setEarlyAllocSMESaveBuffer()

void llvm::AArch64FunctionInfo::setEarlyAllocSMESaveBuffer ( Register Ptr) inline

setHasRedZone()

void llvm::AArch64FunctionInfo::setHasRedZone ( bool s) inline

setHasStackFrame()

void llvm::AArch64FunctionInfo::setHasStackFrame ( bool s) inline

setHasStreamingModeChanges()

void llvm::AArch64FunctionInfo::setHasStreamingModeChanges ( bool HasChanges) inline

setHasSwiftAsyncContext()

void llvm::AArch64FunctionInfo::setHasSwiftAsyncContext ( bool HasContext) inline

setIsSplitCSR()

void llvm::AArch64FunctionInfo::setIsSplitCSR ( bool s) inline

setIsSVECC()

void llvm::AArch64FunctionInfo::setIsSVECC ( bool s) inline

setJumpTableEntryInfo()

void llvm::AArch64FunctionInfo::setJumpTableEntryInfo ( int Idx, unsigned Size, MCSymbol * PCRelSym ) inline

setLocalStackSize()

void llvm::AArch64FunctionInfo::setLocalStackSize ( uint64_t Size) inline

setOutliningStyle()

void llvm::AArch64FunctionInfo::setOutliningStyle ( const std::string & Style) inline

setPredicateRegForFillSpill()

void llvm::AArch64FunctionInfo::setPredicateRegForFillSpill ( unsigned Reg) inline

setPStateSMReg()

void llvm::AArch64FunctionInfo::setPStateSMReg ( Register Reg) inline

setSigningInstrLabel()

void llvm::AArch64FunctionInfo::setSigningInstrLabel ( MCSymbol * Label) inline

setSMESaveBufferAddr()

void llvm::AArch64FunctionInfo::setSMESaveBufferAddr ( Register Reg) inline

setSMESaveBufferUsed()

void llvm::AArch64FunctionInfo::setSMESaveBufferUsed ( bool Used = true) inline

setSplitSVEObjects()

void llvm::AArch64FunctionInfo::setSplitSVEObjects ( bool s) inline

setSRetReturnReg()

void llvm::AArch64FunctionInfo::setSRetReturnReg ( unsigned Reg) inline

setStackHazardCSRSlotIndex()

void llvm::AArch64FunctionInfo::setStackHazardCSRSlotIndex ( int Index) inline

setStackHazardSlotIndex()

void llvm::AArch64FunctionInfo::setStackHazardSlotIndex ( int Index) inline

setStackRealigned()

void llvm::AArch64FunctionInfo::setStackRealigned ( bool s) inline

setStackSizeSVE()

setSVECalleeSavedStackSize()

void llvm::AArch64FunctionInfo::setSVECalleeSavedStackSize ( unsigned ZPR, unsigned PPR ) inline

setSwiftAsyncContextFrameIdx()

void llvm::AArch64FunctionInfo::setSwiftAsyncContextFrameIdx ( int FI) inline

setTaggedBasePointerIndex()

void llvm::AArch64FunctionInfo::setTaggedBasePointerIndex ( int Index) inline

setTaggedBasePointerOffset()

void llvm::AArch64FunctionInfo::setTaggedBasePointerOffset ( unsigned Offset) inline

setTailCallReservedStack()

void llvm::AArch64FunctionInfo::setTailCallReservedStack ( unsigned bytes) inline

setVarArgsFPRIndex()

void llvm::AArch64FunctionInfo::setVarArgsFPRIndex ( int Index) inline

setVarArgsFPRSize()

void llvm::AArch64FunctionInfo::setVarArgsFPRSize ( unsigned Size) inline

setVarArgsGPRIndex()

void llvm::AArch64FunctionInfo::setVarArgsGPRIndex ( int Index) inline

setVarArgsGPRSize()

void llvm::AArch64FunctionInfo::setVarArgsGPRSize ( unsigned Size) inline

setVarArgsStackIndex()

void llvm::AArch64FunctionInfo::setVarArgsStackIndex ( int Index) inline

setVarArgsStackOffset()

void llvm::AArch64FunctionInfo::setVarArgsStackOffset ( unsigned Offset) inline

setZT0SpillSlotIndex()

void llvm::AArch64FunctionInfo::setZT0SpillSlotIndex ( int FI) inline

shouldSignReturnAddress() [1/2]

shouldSignReturnAddress() [2/2]

shouldSignWithBKey()

bool llvm::AArch64FunctionInfo::shouldSignWithBKey ( ) const inline

The documentation for this class was generated from the following files: