LLVM 23.0.0git
llvm::RISCVMachineFunctionInfo Class Reference

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

#include "Target/RISCV/RISCVMachineFunctionInfo.h"

Inheritance diagram for llvm::RISCVMachineFunctionInfo:
[legend]

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)
MachineFunctionInfoclone (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)
unsigned getArgumentStackSize () const
void setArgumentStackSize (unsigned size)
void addIncomingByValArgs (SDValue Val)
SDValue getIncomingByValArgs (unsigned Idx)
unsigned getIncomingByValArgsSize () const
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<typename Ty>
static Ty * create (BumpPtrAllocator &Allocator, const Ty &MFI)

Detailed Description

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

Definition at line 47 of file RISCVMachineFunctionInfo.h.

Member Enumeration Documentation

◆ InterruptStackKind

Enumerator
None 
QCINest 
QCINoNest 
SiFiveCLICPreemptible 
SiFiveCLICStackSwap 
SiFiveCLICPreemptibleStackSwap 

Definition at line 174 of file RISCVMachineFunctionInfo.h.

◆ PushPopKind

Enumerator
None 
StdExtZcmp 
VendorXqccmp 

Definition at line 160 of file RISCVMachineFunctionInfo.h.

Constructor & Destructor Documentation

◆ RISCVMachineFunctionInfo()

Member Function Documentation

◆ addIncomingByValArgs()

void llvm::RISCVMachineFunctionInfo::addIncomingByValArgs ( SDValue Val)
inline

◆ addSExt32Register()

void RISCVMachineFunctionInfo::addSExt32Register ( Register Reg)

Definition at line 141 of file RISCVMachineFunctionInfo.cpp.

Referenced by unpackFromRegLoc().

◆ clone()

MachineFunctionInfo * RISCVMachineFunctionInfo::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 23 of file RISCVMachineFunctionInfo.cpp.

References llvm::MachineFunction::cloneInfo(), and RISCVMachineFunctionInfo().

◆ getArgumentStackSize()

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

Definition at line 153 of file RISCVMachineFunctionInfo.h.

◆ getBranchRelaxationScratchFrameIndex()

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

◆ getCalleeSavedStackSize()

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

Definition at line 150 of file RISCVMachineFunctionInfo.h.

◆ getIncomingByValArgs()

SDValue llvm::RISCVMachineFunctionInfo::getIncomingByValArgs ( unsigned Idx)
inline

Definition at line 157 of file RISCVMachineFunctionInfo.h.

Referenced by llvm::RISCVTargetLowering::LowerCall().

◆ getIncomingByValArgsSize()

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

Definition at line 158 of file RISCVMachineFunctionInfo.h.

◆ getInterruptCSRFrameIndex()

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

Definition at line 216 of file RISCVMachineFunctionInfo.h.

◆ getInterruptStackKind()

◆ getLibCallStackSize()

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

Definition at line 129 of file RISCVMachineFunctionInfo.h.

◆ getMoveF64FrameIndex()

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

◆ getPushPopKind()

◆ getQCIInterruptStackSize()

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

Definition at line 191 of file RISCVMachineFunctionInfo.h.

◆ getReservedSpillsSize()

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

Definition at line 125 of file RISCVMachineFunctionInfo.h.

◆ getRVPushRegs()

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

◆ getRVPushStackSize()

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

Definition at line 171 of file RISCVMachineFunctionInfo.h.

◆ getRVVPadding()

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

Definition at line 147 of file RISCVMachineFunctionInfo.h.

◆ getRVVStackAlign()

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

Definition at line 144 of file RISCVMachineFunctionInfo.h.

◆ getRVVStackSize()

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

Definition at line 141 of file RISCVMachineFunctionInfo.h.

◆ getVarArgsFrameIndex()

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

Definition at line 105 of file RISCVMachineFunctionInfo.h.

◆ getVarArgsSaveSize()

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

Definition at line 108 of file RISCVMachineFunctionInfo.h.

◆ hasDynamicAllocation()

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

Definition at line 234 of file RISCVMachineFunctionInfo.h.

◆ hasImplicitFPUpdates()

bool RISCVMachineFunctionInfo::hasImplicitFPUpdates ( const MachineFunction & MF) const

◆ initializeBaseYamlFields()

void RISCVMachineFunctionInfo::initializeBaseYamlFields ( const yaml::RISCVMachineFunctionInfo & YamlMFI)

◆ isPushable()

bool llvm::RISCVMachineFunctionInfo::isPushable ( const MachineFunction & MF) const
inline

◆ isSExt32Register()

bool RISCVMachineFunctionInfo::isSExt32Register ( Register Reg) const

Definition at line 145 of file RISCVMachineFunctionInfo.cpp.

References llvm::is_contained().

Referenced by isSignExtendedW().

◆ isSiFivePreemptibleInterrupt()

bool llvm::RISCVMachineFunctionInfo::isSiFivePreemptibleInterrupt ( const MachineFunction & MF) const
inline

◆ isSiFiveStackSwapInterrupt()

bool llvm::RISCVMachineFunctionInfo::isSiFiveStackSwapInterrupt ( const MachineFunction & MF) const
inline

◆ isVectorCall()

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

Definition at line 231 of file RISCVMachineFunctionInfo.h.

◆ pushInterruptCSRFrameIndex()

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

◆ setArgumentStackSize()

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

Definition at line 154 of file RISCVMachineFunctionInfo.h.

References llvm::size().

Referenced by llvm::RISCVTargetLowering::LowerFormalArguments().

◆ setBranchRelaxationScratchFrameIndex()

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

Definition at line 121 of file RISCVMachineFunctionInfo.h.

◆ setCalleeSavedStackSize()

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

Definition at line 151 of file RISCVMachineFunctionInfo.h.

References Size.

◆ setDynamicAllocation()

void llvm::RISCVMachineFunctionInfo::setDynamicAllocation ( )
inline

Definition at line 235 of file RISCVMachineFunctionInfo.h.

◆ setIsVectorCall()

void llvm::RISCVMachineFunctionInfo::setIsVectorCall ( )
inline

◆ setLibCallStackSize()

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

Definition at line 130 of file RISCVMachineFunctionInfo.h.

References Size.

◆ setQCIInterruptStackSize()

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

Definition at line 192 of file RISCVMachineFunctionInfo.h.

References Size.

◆ setRVPushRegs()

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

Definition at line 169 of file RISCVMachineFunctionInfo.h.

◆ setRVPushStackSize()

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

Definition at line 172 of file RISCVMachineFunctionInfo.h.

References Size.

◆ setRVVPadding()

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

Definition at line 148 of file RISCVMachineFunctionInfo.h.

◆ setRVVStackAlign()

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

Definition at line 145 of file RISCVMachineFunctionInfo.h.

◆ setRVVStackSize()

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

Definition at line 142 of file RISCVMachineFunctionInfo.h.

References Size.

◆ setVarArgsFrameIndex()

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

◆ setVarArgsSaveSize()

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

Definition at line 109 of file RISCVMachineFunctionInfo.h.

References Size.

Referenced by llvm::RISCVTargetLowering::LowerFormalArguments().

◆ useQCIInterrupt()

◆ useSaveRestoreLibCalls()

◆ useSiFiveInterrupt()

bool llvm::RISCVMachineFunctionInfo::useSiFiveInterrupt ( const MachineFunction & MF) const
inline

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