LLVM 19.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.
 
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)
 
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 hasVirtualTileReg () const
 
void setHasVirtualTileReg (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)
 
- 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 26 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 149 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 250 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 16 of file X86MachineFunctionInfo.cpp.

References llvm::MachineFunction::cloneInfo().

◆ getArgumentStackSize()

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

◆ getBytesToPopOnReturn()

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

Definition at line 180 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 158 of file X86MachineFunctionInfo.h.

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

◆ getForwardedMustTailRegParms()

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

Definition at line 222 of file X86MachineFunctionInfo.h.

◆ getGlobalBaseReg()

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

Definition at line 195 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 213 of file X86MachineFunctionInfo.h.

◆ getPreallocatedArgOffsets()

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

Definition at line 290 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 281 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 201 of file X86MachineFunctionInfo.h.

◆ getRestoreBasePointer()

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

◆ getRestoreBasePointerOffset()

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

Definition at line 169 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 192 of file X86MachineFunctionInfo.h.

◆ getStackPtrSaveMI()

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

◆ getSwiftAsyncContextFrameIdx()

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

Definition at line 263 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 207 of file X86MachineFunctionInfo.h.

◆ getVarArgsFrameIndex()

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

Definition at line 198 of file X86MachineFunctionInfo.h.

◆ getVarArgsGPOffset()

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

Definition at line 204 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 172 of file X86MachineFunctionInfo.h.

◆ hasCFIAdjustCfa()

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

Definition at line 257 of file X86MachineFunctionInfo.h.

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

◆ hasDynAlloca()

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

Definition at line 232 of file X86MachineFunctionInfo.h.

◆ hasPreallocatedCall()

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

◆ hasSwiftAsyncContext()

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

◆ hasVirtualTileReg()

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

Definition at line 241 of file X86MachineFunctionInfo.h.

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

◆ incNumLocalDynamicTLSAccesses()

void llvm::X86MachineFunctionInfo::incNumLocalDynamicTLSAccesses ( )
inline

Definition at line 214 of file X86MachineFunctionInfo.h.

Referenced by LowerToTLSLocalDynamicModel().

◆ isCandidateForPush2Pop2()

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

◆ isSplitCSR()

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

◆ padForPush2Pop2()

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

◆ setArgumentStackSize()

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

Definition at line 211 of file X86MachineFunctionInfo.h.

References llvm::size().

◆ setBytesToPopOnReturn()

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

Definition at line 181 of file X86MachineFunctionInfo.h.

◆ setCalleeSavedFrameSize()

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

◆ setFAIndex()

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

Definition at line 187 of file X86MachineFunctionInfo.h.

◆ setForceFramePointer()

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

Definition at line 159 of file X86MachineFunctionInfo.h.

◆ setGlobalBaseReg()

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

Definition at line 196 of file X86MachineFunctionInfo.h.

References Reg.

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

◆ setHasCFIAdjustCfa()

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

Definition at line 258 of file X86MachineFunctionInfo.h.

◆ setHasDynAlloca()

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

Definition at line 233 of file X86MachineFunctionInfo.h.

◆ setHasPreallocatedCall()

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

◆ setHasPushSequences()

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

Definition at line 162 of file X86MachineFunctionInfo.h.

◆ setHasSEHFramePtrSave()

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

◆ setHasSwiftAsyncContext()

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

Definition at line 239 of file X86MachineFunctionInfo.h.

◆ setHasVirtualTileReg()

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

Definition at line 242 of file X86MachineFunctionInfo.h.

◆ setIsSplitCSR()

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

Definition at line 227 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 277 of file X86MachineFunctionInfo.h.

◆ setRAIndex()

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

◆ setRegSaveFrameIndex()

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

Definition at line 202 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 166 of file X86MachineFunctionInfo.h.

◆ setSEHFramePtrSaveIndex()

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

◆ setSRetReturnReg()

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

Definition at line 193 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 266 of file X86MachineFunctionInfo.h.

◆ setTCReturnAddrDelta()

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

Definition at line 190 of file X86MachineFunctionInfo.h.

◆ setUsesRedZone()

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

Definition at line 230 of file X86MachineFunctionInfo.h.

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

◆ setVarArgsFPOffset()

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

Definition at line 208 of file X86MachineFunctionInfo.h.

References llvm::Offset.

◆ setVarArgsFrameIndex()

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

Definition at line 199 of file X86MachineFunctionInfo.h.

References Idx.

◆ setVarArgsGPOffset()

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

Definition at line 205 of file X86MachineFunctionInfo.h.

References llvm::Offset.


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