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

X86MachineFunctionInfo - This class is derived from MachineFunction and contains private X86 target-specific information for each MachineFunction. More...

#include "Target/X86/X86MachineFunctionInfo.h"

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

Public Member Functions

 X86MachineFunctionInfo ()=default
 
 X86MachineFunctionInfo (const Function &F, const TargetSubtargetInfo *STI)
 
 X86MachineFunctionInfo (const X86MachineFunctionInfo &)=default
 
MachineFunctionInfoclone (BumpPtrAllocator &Allocator, MachineFunction &DestMF, const DenseMap< MachineBasicBlock *, MachineBasicBlock * > &Src2DstMBB) const override
 Make a functionally equivalent copy of this MachineFunctionInfo in MF.
 
void initializeBaseYamlFields (const yaml::X86MachineFunctionInfo &YamlMFI)
 
bool getForceFramePointer () const
 
void setForceFramePointer (bool forceFP)
 
bool getHasPushSequences () const
 
void setHasPushSequences (bool HasPush)
 
bool getRestoreBasePointer () const
 
void setRestoreBasePointer (const MachineFunction *MF)
 
void setRestoreBasePointer (unsigned CalleeSavedFrameSize)
 
int getRestoreBasePointerOffset () const
 
DenseMap< int, unsigned > & getWinEHXMMSlotInfo ()
 
const DenseMap< int, unsigned > & getWinEHXMMSlotInfo () const
 
unsigned getCalleeSavedFrameSize () const
 
void setCalleeSavedFrameSize (unsigned bytes)
 
unsigned getBytesToPopOnReturn () const
 
void setBytesToPopOnReturn (unsigned bytes)
 
int getRAIndex () const
 
void setRAIndex (int Index)
 
int getFAIndex () const
 
void setFAIndex (int Index)
 
int getTCReturnAddrDelta () const
 
void setTCReturnAddrDelta (int delta)
 
Register getSRetReturnReg () const
 
void setSRetReturnReg (Register Reg)
 
Register getGlobalBaseReg () const
 
void setGlobalBaseReg (Register Reg)
 
int getVarArgsFrameIndex () const
 
void setVarArgsFrameIndex (int Idx)
 
int getRegSaveFrameIndex () const
 
void setRegSaveFrameIndex (int Idx)
 
unsigned getVarArgsGPOffset () const
 
void setVarArgsGPOffset (unsigned Offset)
 
unsigned getVarArgsFPOffset () const
 
void setVarArgsFPOffset (unsigned Offset)
 
unsigned getArgumentStackSize () const
 
void setArgumentStackSize (unsigned size)
 
unsigned getNumLocalDynamicTLSAccesses () const
 
void incNumLocalDynamicTLSAccesses ()
 
bool getHasSEHFramePtrSave () const
 
void setHasSEHFramePtrSave (bool V)
 
int getSEHFramePtrSaveIndex () const
 
void setSEHFramePtrSaveIndex (int Index)
 
AMXProgModelEnum getAMXProgModel () const
 
void setAMXProgModel (AMXProgModelEnum Model)
 
SmallVectorImpl< ForwardedRegister > & getForwardedMustTailRegParms ()
 
bool isSplitCSR () const
 
void setIsSplitCSR (bool s)
 
bool getUsesRedZone () const
 
void setUsesRedZone (bool V)
 
bool hasDynAlloca () const
 
void setHasDynAlloca (bool v)
 
bool hasPreallocatedCall () const
 
void setHasPreallocatedCall (bool v)
 
bool hasSwiftAsyncContext () const
 
void setHasSwiftAsyncContext (bool v)
 
bool padForPush2Pop2 () const
 
void setPadForPush2Pop2 (bool V)
 
bool isCandidateForPush2Pop2 (Register Reg) const
 
void addCandidateForPush2Pop2 (Register Reg)
 
size_t getNumCandidatesForPush2Pop2 () const
 
bool hasCFIAdjustCfa () const
 
void setHasCFIAdjustCfa (bool v)
 
void setStackPtrSaveMI (MachineInstr *MI)
 
MachineInstrgetStackPtrSaveMI () const
 
std::optional< int > getSwiftAsyncContextFrameIdx () const
 
void setSwiftAsyncContextFrameIdx (int v)
 
size_t getPreallocatedIdForCallSite (const Value *CS)
 
void setPreallocatedStackSize (size_t Id, size_t StackSize)
 
size_t getPreallocatedStackSize (const size_t Id)
 
void setPreallocatedArgOffsets (size_t Id, ArrayRef< size_t > AO)
 
ArrayRef< size_t > getPreallocatedArgOffsets (const size_t Id)
 
bool getFPClobberedByCall () const
 
void setFPClobberedByCall (bool C)
 
bool getBPClobberedByCall () const
 
void setBPClobberedByCall (bool C)
 
bool getFPClobberedByInvoke () const
 
void setFPClobberedByInvoke (bool C)
 
bool getBPClobberedByInvoke () const
 
void setBPClobberedByInvoke (bool C)
 
- 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.
 

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

X86MachineFunctionInfo - This class is derived from MachineFunction and contains private X86 target-specific information for each MachineFunction.

Definition at line 58 of file X86MachineFunctionInfo.h.

Constructor & Destructor Documentation

◆ X86MachineFunctionInfo() [1/3]

llvm::X86MachineFunctionInfo::X86MachineFunctionInfo ( )
default

◆ X86MachineFunctionInfo() [2/3]

llvm::X86MachineFunctionInfo::X86MachineFunctionInfo ( const Function F,
const TargetSubtargetInfo STI 
)
inline

Definition at line 186 of file X86MachineFunctionInfo.h.

◆ X86MachineFunctionInfo() [3/3]

llvm::X86MachineFunctionInfo::X86MachineFunctionInfo ( const X86MachineFunctionInfo )
default

Member Function Documentation

◆ addCandidateForPush2Pop2()

void llvm::X86MachineFunctionInfo::addCandidateForPush2Pop2 ( Register  Reg)
inline

Definition at line 293 of file X86MachineFunctionInfo.h.

References Reg.

Referenced by llvm::X86FrameLowering::assignCalleeSavedSpillSlots().

◆ clone()

MachineFunctionInfo * X86MachineFunctionInfo::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 24 of file X86MachineFunctionInfo.cpp.

References llvm::MachineFunction::cloneInfo().

◆ getAMXProgModel()

AMXProgModelEnum llvm::X86MachineFunctionInfo::getAMXProgModel ( ) const
inline

Definition at line 261 of file X86MachineFunctionInfo.h.

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

◆ getArgumentStackSize()

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

◆ getBPClobberedByCall()

bool llvm::X86MachineFunctionInfo::getBPClobberedByCall ( ) const
inline

Definition at line 341 of file X86MachineFunctionInfo.h.

Referenced by llvm::X86FrameLowering::spillFPBP().

◆ getBPClobberedByInvoke()

bool llvm::X86MachineFunctionInfo::getBPClobberedByInvoke ( ) const
inline

Definition at line 347 of file X86MachineFunctionInfo.h.

Referenced by llvm::X86RegisterInfo::getReservedRegs().

◆ getBytesToPopOnReturn()

unsigned llvm::X86MachineFunctionInfo::getBytesToPopOnReturn ( ) const
inline

Definition at line 219 of file X86MachineFunctionInfo.h.

◆ getCalleeSavedFrameSize()

unsigned llvm::X86MachineFunctionInfo::getCalleeSavedFrameSize ( ) const
inline

◆ getFAIndex()

int llvm::X86MachineFunctionInfo::getFAIndex ( ) const
inline

◆ getForceFramePointer()

bool llvm::X86MachineFunctionInfo::getForceFramePointer ( ) const
inline

Definition at line 197 of file X86MachineFunctionInfo.h.

Referenced by llvm::X86FrameLowering::hasFPImpl().

◆ getForwardedMustTailRegParms()

SmallVectorImpl< ForwardedRegister > & llvm::X86MachineFunctionInfo::getForwardedMustTailRegParms ( )
inline

Definition at line 268 of file X86MachineFunctionInfo.h.

◆ getFPClobberedByCall()

bool llvm::X86MachineFunctionInfo::getFPClobberedByCall ( ) const
inline

Definition at line 338 of file X86MachineFunctionInfo.h.

Referenced by llvm::X86FrameLowering::spillFPBP().

◆ getFPClobberedByInvoke()

bool llvm::X86MachineFunctionInfo::getFPClobberedByInvoke ( ) const
inline

Definition at line 344 of file X86MachineFunctionInfo.h.

Referenced by llvm::X86RegisterInfo::getReservedRegs().

◆ getGlobalBaseReg()

Register llvm::X86MachineFunctionInfo::getGlobalBaseReg ( ) const
inline

Definition at line 234 of file X86MachineFunctionInfo.h.

Referenced by llvm::X86InstrInfo::getGlobalBaseReg().

◆ getHasPushSequences()

bool llvm::X86MachineFunctionInfo::getHasPushSequences ( ) const
inline

◆ getHasSEHFramePtrSave()

bool llvm::X86MachineFunctionInfo::getHasSEHFramePtrSave ( ) const
inline

◆ getNumCandidatesForPush2Pop2()

size_t llvm::X86MachineFunctionInfo::getNumCandidatesForPush2Pop2 ( ) const
inline

◆ getNumLocalDynamicTLSAccesses()

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

Definition at line 252 of file X86MachineFunctionInfo.h.

◆ getPreallocatedArgOffsets()

ArrayRef< size_t > llvm::X86MachineFunctionInfo::getPreallocatedArgOffsets ( const size_t  Id)
inline

Definition at line 333 of file X86MachineFunctionInfo.h.

References assert().

Referenced by llvm::X86TargetLowering::EmitInstrWithCustomInserter().

◆ getPreallocatedIdForCallSite()

size_t llvm::X86MachineFunctionInfo::getPreallocatedIdForCallSite ( const Value CS)
inline

◆ getPreallocatedStackSize()

size_t llvm::X86MachineFunctionInfo::getPreallocatedStackSize ( const size_t  Id)
inline

Definition at line 324 of file X86MachineFunctionInfo.h.

References assert().

Referenced by llvm::X86TargetLowering::EmitInstrWithCustomInserter().

◆ getRAIndex()

int llvm::X86MachineFunctionInfo::getRAIndex ( ) const
inline

◆ getRegSaveFrameIndex()

int llvm::X86MachineFunctionInfo::getRegSaveFrameIndex ( ) const
inline

Definition at line 240 of file X86MachineFunctionInfo.h.

◆ getRestoreBasePointer()

bool llvm::X86MachineFunctionInfo::getRestoreBasePointer ( ) const
inline

◆ getRestoreBasePointerOffset()

int llvm::X86MachineFunctionInfo::getRestoreBasePointerOffset ( ) const
inline

Definition at line 208 of file X86MachineFunctionInfo.h.

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

◆ getSEHFramePtrSaveIndex()

int llvm::X86MachineFunctionInfo::getSEHFramePtrSaveIndex ( ) const
inline

◆ getSRetReturnReg()

Register llvm::X86MachineFunctionInfo::getSRetReturnReg ( ) const
inline

Definition at line 231 of file X86MachineFunctionInfo.h.

◆ getStackPtrSaveMI()

MachineInstr * llvm::X86MachineFunctionInfo::getStackPtrSaveMI ( ) const
inline

◆ getSwiftAsyncContextFrameIdx()

std::optional< int > llvm::X86MachineFunctionInfo::getSwiftAsyncContextFrameIdx ( ) const
inline

Definition at line 306 of file X86MachineFunctionInfo.h.

◆ getTCReturnAddrDelta()

int llvm::X86MachineFunctionInfo::getTCReturnAddrDelta ( ) const
inline

◆ getUsesRedZone()

bool llvm::X86MachineFunctionInfo::getUsesRedZone ( ) const
inline

◆ getVarArgsFPOffset()

unsigned llvm::X86MachineFunctionInfo::getVarArgsFPOffset ( ) const
inline

Definition at line 246 of file X86MachineFunctionInfo.h.

◆ getVarArgsFrameIndex()

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

Definition at line 237 of file X86MachineFunctionInfo.h.

◆ getVarArgsGPOffset()

unsigned llvm::X86MachineFunctionInfo::getVarArgsGPOffset ( ) const
inline

Definition at line 243 of file X86MachineFunctionInfo.h.

◆ getWinEHXMMSlotInfo() [1/2]

DenseMap< int, unsigned > & llvm::X86MachineFunctionInfo::getWinEHXMMSlotInfo ( )
inline

◆ getWinEHXMMSlotInfo() [2/2]

const DenseMap< int, unsigned > & llvm::X86MachineFunctionInfo::getWinEHXMMSlotInfo ( ) const
inline

Definition at line 211 of file X86MachineFunctionInfo.h.

◆ hasCFIAdjustCfa()

bool llvm::X86MachineFunctionInfo::hasCFIAdjustCfa ( ) const
inline

Definition at line 300 of file X86MachineFunctionInfo.h.

Referenced by llvm::X86FrameLowering::getDwarfFrameBase().

◆ hasDynAlloca()

bool llvm::X86MachineFunctionInfo::hasDynAlloca ( ) const
inline

Definition at line 278 of file X86MachineFunctionInfo.h.

◆ hasPreallocatedCall()

bool llvm::X86MachineFunctionInfo::hasPreallocatedCall ( ) const
inline

◆ hasSwiftAsyncContext()

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

◆ incNumLocalDynamicTLSAccesses()

void llvm::X86MachineFunctionInfo::incNumLocalDynamicTLSAccesses ( )
inline

Definition at line 253 of file X86MachineFunctionInfo.h.

Referenced by LowerToTLSLocalDynamicModel().

◆ initializeBaseYamlFields()

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

◆ isCandidateForPush2Pop2()

bool llvm::X86MachineFunctionInfo::isCandidateForPush2Pop2 ( Register  Reg) const
inline

◆ isSplitCSR()

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

◆ padForPush2Pop2()

bool llvm::X86MachineFunctionInfo::padForPush2Pop2 ( ) const
inline

◆ setAMXProgModel()

void llvm::X86MachineFunctionInfo::setAMXProgModel ( AMXProgModelEnum  Model)
inline

◆ setArgumentStackSize()

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

Definition at line 250 of file X86MachineFunctionInfo.h.

References llvm::size().

◆ setBPClobberedByCall()

void llvm::X86MachineFunctionInfo::setBPClobberedByCall ( bool  C)
inline

Definition at line 342 of file X86MachineFunctionInfo.h.

References llvm::CallingConv::C.

◆ setBPClobberedByInvoke()

void llvm::X86MachineFunctionInfo::setBPClobberedByInvoke ( bool  C)
inline

Definition at line 348 of file X86MachineFunctionInfo.h.

References llvm::CallingConv::C.

◆ setBytesToPopOnReturn()

void llvm::X86MachineFunctionInfo::setBytesToPopOnReturn ( unsigned  bytes)
inline

Definition at line 220 of file X86MachineFunctionInfo.h.

◆ setCalleeSavedFrameSize()

void llvm::X86MachineFunctionInfo::setCalleeSavedFrameSize ( unsigned  bytes)
inline

◆ setFAIndex()

void llvm::X86MachineFunctionInfo::setFAIndex ( int  Index)
inline

Definition at line 226 of file X86MachineFunctionInfo.h.

References Index.

◆ setForceFramePointer()

void llvm::X86MachineFunctionInfo::setForceFramePointer ( bool  forceFP)
inline

Definition at line 198 of file X86MachineFunctionInfo.h.

◆ setFPClobberedByCall()

void llvm::X86MachineFunctionInfo::setFPClobberedByCall ( bool  C)
inline

Definition at line 339 of file X86MachineFunctionInfo.h.

References llvm::CallingConv::C.

◆ setFPClobberedByInvoke()

void llvm::X86MachineFunctionInfo::setFPClobberedByInvoke ( bool  C)
inline

Definition at line 345 of file X86MachineFunctionInfo.h.

References llvm::CallingConv::C.

◆ setGlobalBaseReg()

void llvm::X86MachineFunctionInfo::setGlobalBaseReg ( Register  Reg)
inline

Definition at line 235 of file X86MachineFunctionInfo.h.

References Reg.

Referenced by llvm::X86InstrInfo::getGlobalBaseReg().

◆ setHasCFIAdjustCfa()

void llvm::X86MachineFunctionInfo::setHasCFIAdjustCfa ( bool  v)
inline

Definition at line 301 of file X86MachineFunctionInfo.h.

◆ setHasDynAlloca()

void llvm::X86MachineFunctionInfo::setHasDynAlloca ( bool  v)
inline

Definition at line 279 of file X86MachineFunctionInfo.h.

◆ setHasPreallocatedCall()

void llvm::X86MachineFunctionInfo::setHasPreallocatedCall ( bool  v)
inline

◆ setHasPushSequences()

void llvm::X86MachineFunctionInfo::setHasPushSequences ( bool  HasPush)
inline

Definition at line 201 of file X86MachineFunctionInfo.h.

◆ setHasSEHFramePtrSave()

void llvm::X86MachineFunctionInfo::setHasSEHFramePtrSave ( bool  V)
inline

◆ setHasSwiftAsyncContext()

void llvm::X86MachineFunctionInfo::setHasSwiftAsyncContext ( bool  v)
inline

Definition at line 285 of file X86MachineFunctionInfo.h.

◆ setIsSplitCSR()

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

Definition at line 273 of file X86MachineFunctionInfo.h.

◆ setPadForPush2Pop2()

void llvm::X86MachineFunctionInfo::setPadForPush2Pop2 ( bool  V)
inline

◆ setPreallocatedArgOffsets()

void llvm::X86MachineFunctionInfo::setPreallocatedArgOffsets ( size_t  Id,
ArrayRef< size_t >  AO 
)
inline

◆ setPreallocatedStackSize()

void llvm::X86MachineFunctionInfo::setPreallocatedStackSize ( size_t  Id,
size_t  StackSize 
)
inline

Definition at line 320 of file X86MachineFunctionInfo.h.

◆ setRAIndex()

void llvm::X86MachineFunctionInfo::setRAIndex ( int  Index)
inline

Definition at line 223 of file X86MachineFunctionInfo.h.

References Index.

Referenced by llvm::X86TargetLowering::getReturnAddressFrameIndex().

◆ setRegSaveFrameIndex()

void llvm::X86MachineFunctionInfo::setRegSaveFrameIndex ( int  Idx)
inline

Definition at line 241 of file X86MachineFunctionInfo.h.

References Idx.

◆ setRestoreBasePointer() [1/2]

void X86MachineFunctionInfo::setRestoreBasePointer ( const MachineFunction MF)

◆ setRestoreBasePointer() [2/2]

void llvm::X86MachineFunctionInfo::setRestoreBasePointer ( unsigned  CalleeSavedFrameSize)
inline

Definition at line 205 of file X86MachineFunctionInfo.h.

◆ setSEHFramePtrSaveIndex()

void llvm::X86MachineFunctionInfo::setSEHFramePtrSaveIndex ( int  Index)
inline

Definition at line 259 of file X86MachineFunctionInfo.h.

References Index.

Referenced by llvm::X86FrameLowering::assignCalleeSavedSpillSlots().

◆ setSRetReturnReg()

void llvm::X86MachineFunctionInfo::setSRetReturnReg ( Register  Reg)
inline

Definition at line 232 of file X86MachineFunctionInfo.h.

References Reg.

◆ setStackPtrSaveMI()

void llvm::X86MachineFunctionInfo::setStackPtrSaveMI ( MachineInstr MI)
inline

◆ setSwiftAsyncContextFrameIdx()

void llvm::X86MachineFunctionInfo::setSwiftAsyncContextFrameIdx ( int  v)
inline

Definition at line 309 of file X86MachineFunctionInfo.h.

◆ setTCReturnAddrDelta()

void llvm::X86MachineFunctionInfo::setTCReturnAddrDelta ( int  delta)
inline

Definition at line 229 of file X86MachineFunctionInfo.h.

◆ setUsesRedZone()

void llvm::X86MachineFunctionInfo::setUsesRedZone ( bool  V)
inline

Definition at line 276 of file X86MachineFunctionInfo.h.

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

◆ setVarArgsFPOffset()

void llvm::X86MachineFunctionInfo::setVarArgsFPOffset ( unsigned  Offset)
inline

Definition at line 247 of file X86MachineFunctionInfo.h.

References llvm::Offset.

◆ setVarArgsFrameIndex()

void llvm::X86MachineFunctionInfo::setVarArgsFrameIndex ( int  Idx)
inline

Definition at line 238 of file X86MachineFunctionInfo.h.

References Idx.

◆ setVarArgsGPOffset()

void llvm::X86MachineFunctionInfo::setVarArgsGPOffset ( unsigned  Offset)
inline

Definition at line 244 of file X86MachineFunctionInfo.h.

References llvm::Offset.


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