LLVM 20.0.0git
Public Member Functions | Public Attributes | List of all members
llvm::ARMFunctionInfo Class Reference

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

#include "Target/ARM/ARMMachineFunctionInfo.h"

Inheritance diagram for llvm::ARMFunctionInfo:
Inheritance graph
[legend]

Public Member Functions

 ARMFunctionInfo ()=default
 
 ARMFunctionInfo (const Function &F, const ARMSubtarget *STI)
 
MachineFunctionInfoclone (BumpPtrAllocator &Allocator, MachineFunction &DestMF, const DenseMap< MachineBasicBlock *, MachineBasicBlock * > &Src2DstMBB) const override
 Make a functionally equivalent copy of this MachineFunctionInfo in MF.
 
bool isThumbFunction () const
 
bool isThumb1OnlyFunction () const
 
bool isThumb2Function () const
 
bool isCmseNSEntryFunction () const
 
bool isCmseNSCallFunction () const
 
unsigned getArgRegsSaveSize () const
 
void setArgRegsSaveSize (unsigned s)
 
unsigned getReturnRegsCount () const
 
void setReturnRegsCount (unsigned s)
 
bool hasStackFrame () const
 
void setHasStackFrame (bool s)
 
bool shouldRestoreSPFromFP () const
 
void setShouldRestoreSPFromFP (bool s)
 
bool isLRSpilled () const
 
void setLRIsSpilled (bool s)
 
unsigned getFramePtrSpillOffset () const
 
void setFramePtrSpillOffset (unsigned o)
 
unsigned getNumAlignedDPRCS2Regs () const
 
void setNumAlignedDPRCS2Regs (unsigned n)
 
unsigned getGPRCalleeSavedArea1Offset () const
 
unsigned getGPRCalleeSavedArea2Offset () const
 
unsigned getDPRCalleeSavedArea1Offset () const
 
void setGPRCalleeSavedArea1Offset (unsigned o)
 
void setGPRCalleeSavedArea2Offset (unsigned o)
 
void setDPRCalleeSavedArea1Offset (unsigned o)
 
unsigned getFPCXTSaveAreaSize () const
 
unsigned getFrameRecordSavedAreaSize () const
 
unsigned getGPRCalleeSavedArea1Size () const
 
unsigned getGPRCalleeSavedArea2Size () const
 
unsigned getDPRCalleeSavedGapSize () const
 
unsigned getDPRCalleeSavedArea1Size () const
 
unsigned getGPRCalleeSavedArea3Size () const
 
void setFPCXTSaveAreaSize (unsigned s)
 
void setFrameRecordSavedAreaSize (unsigned s)
 
void setGPRCalleeSavedArea1Size (unsigned s)
 
void setGPRCalleeSavedArea2Size (unsigned s)
 
void setDPRCalleeSavedGapSize (unsigned s)
 
void setDPRCalleeSavedArea1Size (unsigned s)
 
void setGPRCalleeSavedArea3Size (unsigned s)
 
unsigned getArgumentStackSize () const
 
void setArgumentStackSize (unsigned size)
 
unsigned getArgumentStackToRestore () const
 
void setArgumentStackToRestore (unsigned v)
 
void initPICLabelUId (unsigned UId)
 
unsigned getNumPICLabels () const
 
unsigned createPICLabelUId ()
 
int getVarArgsFrameIndex () const
 
void setVarArgsFrameIndex (int Index)
 
bool hasITBlocks () const
 
void setHasITBlocks (bool h)
 
bool isSplitCSR () const
 
void setIsSplitCSR (bool s)
 
void recordCPEClone (unsigned CPIdx, unsigned CPCloneIdx)
 
unsigned getOriginalCPIdx (unsigned CloneIdx) const
 
DenseMap< constMachineBasicBlock *, unsigned >::iterator getCoalescedWeight (MachineBasicBlock *MBB)
 
void markGlobalAsPromotedToConstantPool (const GlobalVariable *GV)
 Indicate to the backend that GV has had its storage changed to inside a constant pool.
 
SmallPtrSet< const GlobalVariable *, 2 > & getGlobalsPromotedToConstantPool ()
 
int getPromotedConstpoolIncrease () const
 
void setPromotedConstpoolIncrease (int Sz)
 
void setPreservesR0 ()
 
bool getPreservesR0 () const
 
bool shouldSignReturnAddress () const
 
bool shouldSignReturnAddress (bool SpillsLR) const
 
bool branchTargetEnforcement () const
 
void initializeBaseYamlFields (const yaml::ARMFunctionInfo &YamlMFI)
 
- Public Member Functions inherited from llvm::MachineFunctionInfo
virtual ~MachineFunctionInfo ()
 
virtual MachineFunctionInfoclone (BumpPtrAllocator &Allocator, MachineFunction &DestMF, const DenseMap< MachineBasicBlock *, MachineBasicBlock * > &Src2DstMBB) const
 Make a functionally equivalent copy of this MachineFunctionInfo in MF.
 

Public Attributes

DenseMap< unsigned, unsignedEHPrologueRemappedRegs
 
DenseMap< unsigned, unsignedEHPrologueOffsetInRegs
 

Additional Inherited Members

- 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<typename Ty >
static Ty * create (BumpPtrAllocator &Allocator, const Ty &MFI)
 

Detailed Description

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

Definition at line 34 of file ARMMachineFunctionInfo.h.

Constructor & Destructor Documentation

◆ ARMFunctionInfo() [1/2]

llvm::ARMFunctionInfo::ARMFunctionInfo ( )
default

◆ ARMFunctionInfo() [2/2]

ARMFunctionInfo::ARMFunctionInfo ( const Function F,
const ARMSubtarget STI 
)
explicit

Member Function Documentation

◆ branchTargetEnforcement()

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

◆ clone()

MachineFunctionInfo * ARMFunctionInfo::clone ( BumpPtrAllocator Allocator,
MachineFunction DestMF,
const DenseMap< MachineBasicBlock *, MachineBasicBlock * > &  Src2DstMBB 
) const
overridevirtual

Make a functionally equivalent copy of this MachineFunctionInfo in MF.

This requires remapping MachineBasicBlock references from the original parent to values in the new function. Targets may assume that virtual register and frame index values are preserved in the new function.

Reimplemented from llvm::MachineFunctionInfo.

Definition at line 65 of file ARMMachineFunctionInfo.cpp.

References llvm::MachineFunction::cloneInfo().

◆ createPICLabelUId()

unsigned llvm::ARMFunctionInfo::createPICLabelUId ( )
inline

◆ getArgRegsSaveSize()

unsigned llvm::ARMFunctionInfo::getArgRegsSaveSize ( ) const
inline

◆ getArgumentStackSize()

unsigned llvm::ARMFunctionInfo::getArgumentStackSize ( ) const
inline

◆ getArgumentStackToRestore()

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

Definition at line 223 of file ARMMachineFunctionInfo.h.

Referenced by getArgumentStackToRestore().

◆ getCoalescedWeight()

DenseMap< constMachineBasicBlock *, unsigned >::iterator llvm::ARMFunctionInfo::getCoalescedWeight ( MachineBasicBlock MBB)
inline

◆ getDPRCalleeSavedArea1Offset()

unsigned llvm::ARMFunctionInfo::getDPRCalleeSavedArea1Offset ( ) const
inline

Definition at line 198 of file ARMMachineFunctionInfo.h.

◆ getDPRCalleeSavedArea1Size()

unsigned llvm::ARMFunctionInfo::getDPRCalleeSavedArea1Size ( ) const
inline

◆ getDPRCalleeSavedGapSize()

unsigned llvm::ARMFunctionInfo::getDPRCalleeSavedGapSize ( ) const
inline

Definition at line 208 of file ARMMachineFunctionInfo.h.

Referenced by llvm::ARMFrameLowering::emitEpilogue().

◆ getFPCXTSaveAreaSize()

unsigned llvm::ARMFunctionInfo::getFPCXTSaveAreaSize ( ) const
inline

Definition at line 204 of file ARMMachineFunctionInfo.h.

Referenced by llvm::ARMFrameLowering::emitEpilogue().

◆ getFramePtrSpillOffset()

unsigned llvm::ARMFunctionInfo::getFramePtrSpillOffset ( ) const
inline

◆ getFrameRecordSavedAreaSize()

unsigned llvm::ARMFunctionInfo::getFrameRecordSavedAreaSize ( ) const
inline

Definition at line 205 of file ARMMachineFunctionInfo.h.

Referenced by llvm::Thumb1FrameLowering::emitEpilogue().

◆ getGlobalsPromotedToConstantPool()

SmallPtrSet< const GlobalVariable *, 2 > & llvm::ARMFunctionInfo::getGlobalsPromotedToConstantPool ( )
inline

◆ getGPRCalleeSavedArea1Offset()

unsigned llvm::ARMFunctionInfo::getGPRCalleeSavedArea1Offset ( ) const
inline

Definition at line 196 of file ARMMachineFunctionInfo.h.

◆ getGPRCalleeSavedArea1Size()

unsigned llvm::ARMFunctionInfo::getGPRCalleeSavedArea1Size ( ) const
inline

◆ getGPRCalleeSavedArea2Offset()

unsigned llvm::ARMFunctionInfo::getGPRCalleeSavedArea2Offset ( ) const
inline

Definition at line 197 of file ARMMachineFunctionInfo.h.

◆ getGPRCalleeSavedArea2Size()

unsigned llvm::ARMFunctionInfo::getGPRCalleeSavedArea2Size ( ) const
inline

◆ getGPRCalleeSavedArea3Size()

unsigned llvm::ARMFunctionInfo::getGPRCalleeSavedArea3Size ( ) const
inline

Definition at line 210 of file ARMMachineFunctionInfo.h.

Referenced by llvm::ARMFrameLowering::emitEpilogue().

◆ getNumAlignedDPRCS2Regs()

unsigned llvm::ARMFunctionInfo::getNumAlignedDPRCS2Regs ( ) const
inline

◆ getNumPICLabels()

unsigned llvm::ARMFunctionInfo::getNumPICLabels ( ) const
inline

Definition at line 230 of file ARMMachineFunctionInfo.h.

◆ getOriginalCPIdx()

unsigned llvm::ARMFunctionInfo::getOriginalCPIdx ( unsigned  CloneIdx) const
inline

◆ getPreservesR0()

bool llvm::ARMFunctionInfo::getPreservesR0 ( ) const
inline

Definition at line 285 of file ARMMachineFunctionInfo.h.

Referenced by llvm::ARMFrameLowering::getCalleeSaves().

◆ getPromotedConstpoolIncrease()

int llvm::ARMFunctionInfo::getPromotedConstpoolIncrease ( ) const
inline

Definition at line 274 of file ARMMachineFunctionInfo.h.

Referenced by promoteToConstantPool().

◆ getReturnRegsCount()

unsigned llvm::ARMFunctionInfo::getReturnRegsCount ( ) const
inline

◆ getVarArgsFrameIndex()

int llvm::ARMFunctionInfo::getVarArgsFrameIndex ( ) const
inline

Definition at line 238 of file ARMMachineFunctionInfo.h.

Referenced by LowerVASTART().

◆ hasITBlocks()

bool llvm::ARMFunctionInfo::hasITBlocks ( ) const
inline

◆ hasStackFrame()

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

◆ initializeBaseYamlFields()

void ARMFunctionInfo::initializeBaseYamlFields ( const yaml::ARMFunctionInfo YamlMFI)

Definition at line 23 of file ARMMachineFunctionInfo.cpp.

References llvm::yaml::ARMFunctionInfo::LRSpilled.

◆ initPICLabelUId()

void llvm::ARMFunctionInfo::initPICLabelUId ( unsigned  UId)
inline

Definition at line 226 of file ARMMachineFunctionInfo.h.

◆ isCmseNSCallFunction()

bool llvm::ARMFunctionInfo::isCmseNSCallFunction ( ) const
inline

Definition at line 173 of file ARMMachineFunctionInfo.h.

◆ isCmseNSEntryFunction()

bool llvm::ARMFunctionInfo::isCmseNSEntryFunction ( ) const
inline

◆ isLRSpilled()

bool llvm::ARMFunctionInfo::isLRSpilled ( ) const
inline

◆ isSplitCSR()

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

◆ isThumb1OnlyFunction()

bool llvm::ARMFunctionInfo::isThumb1OnlyFunction ( ) const
inline

◆ isThumb2Function()

bool llvm::ARMFunctionInfo::isThumb2Function ( ) const
inline

◆ isThumbFunction()

bool llvm::ARMFunctionInfo::isThumbFunction ( ) const
inline

◆ markGlobalAsPromotedToConstantPool()

void llvm::ARMFunctionInfo::markGlobalAsPromotedToConstantPool ( const GlobalVariable GV)
inline

Indicate to the backend that GV has had its storage changed to inside a constant pool.

This means it no longer needs to be emitted as a global variable.

Definition at line 268 of file ARMMachineFunctionInfo.h.

References llvm::SmallPtrSetImpl< PtrType >::insert().

Referenced by promoteToConstantPool().

◆ recordCPEClone()

void llvm::ARMFunctionInfo::recordCPEClone ( unsigned  CPIdx,
unsigned  CPCloneIdx 
)
inline

◆ setArgRegsSaveSize()

void llvm::ARMFunctionInfo::setArgRegsSaveSize ( unsigned  s)
inline

Definition at line 176 of file ARMMachineFunctionInfo.h.

◆ setArgumentStackSize()

void llvm::ARMFunctionInfo::setArgumentStackSize ( unsigned  size)
inline

Definition at line 221 of file ARMMachineFunctionInfo.h.

References llvm::size().

◆ setArgumentStackToRestore()

void llvm::ARMFunctionInfo::setArgumentStackToRestore ( unsigned  v)
inline

Definition at line 224 of file ARMMachineFunctionInfo.h.

◆ setDPRCalleeSavedArea1Offset()

void llvm::ARMFunctionInfo::setDPRCalleeSavedArea1Offset ( unsigned  o)
inline

◆ setDPRCalleeSavedArea1Size()

void llvm::ARMFunctionInfo::setDPRCalleeSavedArea1Size ( unsigned  s)
inline

◆ setDPRCalleeSavedGapSize()

void llvm::ARMFunctionInfo::setDPRCalleeSavedGapSize ( unsigned  s)
inline

Definition at line 216 of file ARMMachineFunctionInfo.h.

Referenced by llvm::ARMFrameLowering::emitPrologue().

◆ setFPCXTSaveAreaSize()

void llvm::ARMFunctionInfo::setFPCXTSaveAreaSize ( unsigned  s)
inline

Definition at line 212 of file ARMMachineFunctionInfo.h.

Referenced by llvm::ARMFrameLowering::emitPrologue().

◆ setFramePtrSpillOffset()

void llvm::ARMFunctionInfo::setFramePtrSpillOffset ( unsigned  o)
inline

◆ setFrameRecordSavedAreaSize()

void llvm::ARMFunctionInfo::setFrameRecordSavedAreaSize ( unsigned  s)
inline

Definition at line 213 of file ARMMachineFunctionInfo.h.

Referenced by llvm::Thumb1FrameLowering::emitPrologue().

◆ setGPRCalleeSavedArea1Offset()

void llvm::ARMFunctionInfo::setGPRCalleeSavedArea1Offset ( unsigned  o)
inline

◆ setGPRCalleeSavedArea1Size()

void llvm::ARMFunctionInfo::setGPRCalleeSavedArea1Size ( unsigned  s)
inline

◆ setGPRCalleeSavedArea2Offset()

void llvm::ARMFunctionInfo::setGPRCalleeSavedArea2Offset ( unsigned  o)
inline

◆ setGPRCalleeSavedArea2Size()

void llvm::ARMFunctionInfo::setGPRCalleeSavedArea2Size ( unsigned  s)
inline

◆ setGPRCalleeSavedArea3Size()

void llvm::ARMFunctionInfo::setGPRCalleeSavedArea3Size ( unsigned  s)
inline

Definition at line 218 of file ARMMachineFunctionInfo.h.

Referenced by llvm::ARMFrameLowering::emitPrologue().

◆ setHasITBlocks()

void llvm::ARMFunctionInfo::setHasITBlocks ( bool  h)
inline

Definition at line 242 of file ARMMachineFunctionInfo.h.

◆ setHasStackFrame()

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

◆ setIsSplitCSR()

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

Definition at line 245 of file ARMMachineFunctionInfo.h.

◆ setLRIsSpilled()

void llvm::ARMFunctionInfo::setLRIsSpilled ( bool  s)
inline

◆ setNumAlignedDPRCS2Regs()

void llvm::ARMFunctionInfo::setNumAlignedDPRCS2Regs ( unsigned  n)
inline

Definition at line 194 of file ARMMachineFunctionInfo.h.

◆ setPreservesR0()

void llvm::ARMFunctionInfo::setPreservesR0 ( )
inline

Definition at line 284 of file ARMMachineFunctionInfo.h.

◆ setPromotedConstpoolIncrease()

void llvm::ARMFunctionInfo::setPromotedConstpoolIncrease ( int  Sz)
inline

Definition at line 277 of file ARMMachineFunctionInfo.h.

Referenced by promoteToConstantPool().

◆ setReturnRegsCount()

void llvm::ARMFunctionInfo::setReturnRegsCount ( unsigned  s)
inline

Definition at line 179 of file ARMMachineFunctionInfo.h.

◆ setShouldRestoreSPFromFP()

void llvm::ARMFunctionInfo::setShouldRestoreSPFromFP ( bool  s)
inline

◆ setVarArgsFrameIndex()

void llvm::ARMFunctionInfo::setVarArgsFrameIndex ( int  Index)
inline

Definition at line 239 of file ARMMachineFunctionInfo.h.

References Index.

◆ shouldRestoreSPFromFP()

bool llvm::ARMFunctionInfo::shouldRestoreSPFromFP ( ) const
inline

◆ shouldSignReturnAddress() [1/2]

bool llvm::ARMFunctionInfo::shouldSignReturnAddress ( ) const
inline

◆ shouldSignReturnAddress() [2/2]

bool llvm::ARMFunctionInfo::shouldSignReturnAddress ( bool  SpillsLR) const
inline

Definition at line 291 of file ARMMachineFunctionInfo.h.

Member Data Documentation

◆ EHPrologueOffsetInRegs

DenseMap<unsigned, unsigned> llvm::ARMFunctionInfo::EHPrologueOffsetInRegs

Definition at line 282 of file ARMMachineFunctionInfo.h.

◆ EHPrologueRemappedRegs

DenseMap<unsigned, unsigned> llvm::ARMFunctionInfo::EHPrologueRemappedRegs

Definition at line 281 of file ARMMachineFunctionInfo.h.


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