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

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

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

Public Types
enum class PushPopKind { None = 0 , StdExtZcmp, VendorXqccmp }
enum class InterruptStackKind { None = 0 , QCINest, QCINoNest, SiFiveCLICPreemptible, SiFiveCLICStackSwap, SiFiveCLICPreemptibleStackSwap }
Public Member Functions
RISCVMachineFunctionInfo (const Function &F, const RISCVSubtarget *STI)
MachineFunctionInfo * clone (BumpPtrAllocator &Allocator, MachineFunction &DestMF, const DenseMap< MachineBasicBlock *, MachineBasicBlock * > &Src2DstMBB) const override
Make a functionally equivalent copy of this MachineFunctionInfo in MF.
int getVarArgsFrameIndex () const
void setVarArgsFrameIndex (int Index)
unsigned getVarArgsSaveSize () const
void setVarArgsSaveSize (int Size)
int getMoveF64FrameIndex (MachineFunction &MF)
int getBranchRelaxationScratchFrameIndex () const
void setBranchRelaxationScratchFrameIndex (int Index)
unsigned getReservedSpillsSize () const
unsigned getLibCallStackSize () const
void setLibCallStackSize (unsigned Size)
bool useSaveRestoreLibCalls (const MachineFunction &MF) const
uint64_t getRVVStackSize () const
void setRVVStackSize (uint64_t Size)
Align getRVVStackAlign () const
void setRVVStackAlign (Align StackAlign)
uint64_t getRVVPadding () const
void setRVVPadding (uint64_t Padding)
unsigned getCalleeSavedStackSize () const
void setCalleeSavedStackSize (unsigned Size)
PushPopKind getPushPopKind (const MachineFunction &MF) const
bool isPushable (const MachineFunction &MF) const
unsigned getRVPushRegs () const
void setRVPushRegs (unsigned Regs)
unsigned getRVPushStackSize () const
void setRVPushStackSize (unsigned Size)
InterruptStackKind getInterruptStackKind (const MachineFunction &MF) const
bool useQCIInterrupt (const MachineFunction &MF) const
unsigned getQCIInterruptStackSize () const
void setQCIInterruptStackSize (unsigned Size)
bool useSiFiveInterrupt (const MachineFunction &MF) const
bool isSiFivePreemptibleInterrupt (const MachineFunction &MF) const
bool isSiFiveStackSwapInterrupt (const MachineFunction &MF) const
void pushInterruptCSRFrameIndex (int FI)
int getInterruptCSRFrameIndex (size_t Idx) const
bool hasImplicitFPUpdates (const MachineFunction &MF) const
void initializeBaseYamlFields (const yaml::RISCVMachineFunctionInfo &YamlMFI)
void addSExt32Register (Register Reg)
bool isSExt32Register (Register Reg) const
bool isVectorCall () const
void setIsVectorCall ()
bool hasDynamicAllocation () const
void setDynamicAllocation ()
Public Member Functions inherited from llvm::MachineFunctionInfo
virtual ~MachineFunctionInfo ()
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
static Ty * create (BumpPtrAllocator &Allocator, const Ty &MFI)

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

Definition at line 47 of file RISCVMachineFunctionInfo.h.

InterruptStackKind

Enumerator
None
QCINest
QCINoNest
SiFiveCLICPreemptible
SiFiveCLICStackSwap
SiFiveCLICPreemptibleStackSwap

Definition at line 159 of file RISCVMachineFunctionInfo.h.

PushPopKind

addSExt32Register()

void RISCVMachineFunctionInfo::addSExt32Register ( Register Reg )

clone()

getBranchRelaxationScratchFrameIndex()

int llvm::RISCVMachineFunctionInfo::getBranchRelaxationScratchFrameIndex ( ) const inline

getCalleeSavedStackSize()

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

getInterruptCSRFrameIndex()

int llvm::RISCVMachineFunctionInfo::getInterruptCSRFrameIndex ( size_t Idx) const inline

getInterruptStackKind()

Definition at line 60 of file RISCVMachineFunctionInfo.cpp.

References assert(), llvm::StringSwitch< T, R >::Case(), llvm::StringSwitch< T, R >::Default(), llvm::Function::getFnAttribute(), llvm::MachineFunction::getFunction(), llvm::Attribute::getValueAsString(), llvm::Function::hasFnAttribute(), None, QCINest, QCINoNest, SiFiveCLICPreemptible, SiFiveCLICPreemptibleStackSwap, and SiFiveCLICStackSwap.

Referenced by hasImplicitFPUpdates(), isSiFivePreemptibleInterrupt(), isSiFiveStackSwapInterrupt(), llvm::RISCVFrameLowering::spillCalleeSavedRegisters(), useQCIInterrupt(), and useSiFiveInterrupt().

getLibCallStackSize()

unsigned llvm::RISCVMachineFunctionInfo::getLibCallStackSize ( ) const inline

getMoveF64FrameIndex()

int llvm::RISCVMachineFunctionInfo::getMoveF64FrameIndex ( MachineFunction & MF) inline

getPushPopKind()

Definition at line 88 of file RISCVMachineFunctionInfo.cpp.

References llvm::TargetOptions::DisableFramePointerElim(), llvm::MachineFunction::getSubtarget(), llvm::MachineFunction::getTarget(), None, llvm::TargetMachine::Options, StdExtZcmp, useSiFiveInterrupt(), and VendorXqccmp.

Referenced by hasImplicitFPUpdates(), isPushable(), llvm::RISCVFrameLowering::restoreCalleeSavedRegisters(), and llvm::RISCVFrameLowering::spillCalleeSavedRegisters().

getQCIInterruptStackSize()

unsigned llvm::RISCVMachineFunctionInfo::getQCIInterruptStackSize ( ) const inline

getReservedSpillsSize()

unsigned llvm::RISCVMachineFunctionInfo::getReservedSpillsSize ( ) const inline

getRVPushRegs()

unsigned llvm::RISCVMachineFunctionInfo::getRVPushRegs ( ) const inline

getRVPushStackSize()

unsigned llvm::RISCVMachineFunctionInfo::getRVPushStackSize ( ) const inline

getRVVPadding()

uint64_t llvm::RISCVMachineFunctionInfo::getRVVPadding ( ) const inline

getRVVStackAlign()

Align llvm::RISCVMachineFunctionInfo::getRVVStackAlign ( ) const inline

getRVVStackSize()

uint64_t llvm::RISCVMachineFunctionInfo::getRVVStackSize ( ) const inline

getVarArgsFrameIndex()

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

getVarArgsSaveSize()

unsigned llvm::RISCVMachineFunctionInfo::getVarArgsSaveSize ( ) const inline

hasDynamicAllocation()

bool llvm::RISCVMachineFunctionInfo::hasDynamicAllocation ( ) const inline

hasImplicitFPUpdates()

initializeBaseYamlFields()

isPushable()

isSExt32Register()

bool RISCVMachineFunctionInfo::isSExt32Register ( Register Reg ) const

isSiFivePreemptibleInterrupt()

isSiFiveStackSwapInterrupt()

isVectorCall()

bool llvm::RISCVMachineFunctionInfo::isVectorCall ( ) const inline

pushInterruptCSRFrameIndex()

void llvm::RISCVMachineFunctionInfo::pushInterruptCSRFrameIndex ( int FI) inline

setBranchRelaxationScratchFrameIndex()

void llvm::RISCVMachineFunctionInfo::setBranchRelaxationScratchFrameIndex ( int Index) inline

setCalleeSavedStackSize()

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

setDynamicAllocation()

void llvm::RISCVMachineFunctionInfo::setDynamicAllocation ( ) inline

setIsVectorCall()

void llvm::RISCVMachineFunctionInfo::setIsVectorCall ( ) inline

setLibCallStackSize()

void llvm::RISCVMachineFunctionInfo::setLibCallStackSize ( unsigned Size) inline

setQCIInterruptStackSize()

void llvm::RISCVMachineFunctionInfo::setQCIInterruptStackSize ( unsigned Size) inline

setRVPushRegs()

void llvm::RISCVMachineFunctionInfo::setRVPushRegs ( unsigned Regs) inline

setRVPushStackSize()

void llvm::RISCVMachineFunctionInfo::setRVPushStackSize ( unsigned Size) inline

setRVVPadding()

void llvm::RISCVMachineFunctionInfo::setRVVPadding ( uint64_t Padding) inline

setRVVStackAlign()

void llvm::RISCVMachineFunctionInfo::setRVVStackAlign ( Align StackAlign) inline

setRVVStackSize()

void llvm::RISCVMachineFunctionInfo::setRVVStackSize ( uint64_t Size) inline

setVarArgsFrameIndex()

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

setVarArgsSaveSize()

void llvm::RISCVMachineFunctionInfo::setVarArgsSaveSize ( int Size) inline

useQCIInterrupt()

useSaveRestoreLibCalls()

useSiFiveInterrupt()


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