LLVM 22.0.0git
llvm::RISCVRegisterInfo Struct Reference

#include "Target/RISCV/RISCVRegisterInfo.h"

Inheritance diagram for llvm::RISCVRegisterInfo:
[legend]

Public Member Functions

 RISCVRegisterInfo (unsigned HwMode)
const uint32_tgetCallPreservedMask (const MachineFunction &MF, CallingConv::ID) const override
unsigned getCSRFirstUseCost () const override
const MCPhysReggetCalleeSavedRegs (const MachineFunction *MF) const override
const MCPhysReggetIPRACSRegs (const MachineFunction *MF) const override
BitVector getReservedRegs (const MachineFunction &MF) const override
bool isAsmClobberable (const MachineFunction &MF, MCRegister PhysReg) const override
const uint32_tgetNoPreservedMask () const override
void adjustReg (MachineBasicBlock &MBB, MachineBasicBlock::iterator II, const DebugLoc &DL, Register DestReg, Register SrcReg, StackOffset Offset, MachineInstr::MIFlag Flag, MaybeAlign RequiredAlign) const
bool eliminateFrameIndex (MachineBasicBlock::iterator MI, int SPAdj, unsigned FIOperandNum, RegScavenger *RS=nullptr) const override
bool requiresVirtualBaseRegisters (const MachineFunction &MF) const override
bool needsFrameBaseReg (MachineInstr *MI, int64_t Offset) const override
bool isFrameOffsetLegal (const MachineInstr *MI, Register BaseReg, int64_t Offset) const override
Register materializeFrameBaseRegister (MachineBasicBlock *MBB, int FrameIdx, int64_t Offset) const override
void resolveFrameIndex (MachineInstr &MI, Register BaseReg, int64_t Offset) const override
int64_t getFrameIndexInstrOffset (const MachineInstr *MI, int Idx) const override
void lowerSegmentSpillReload (MachineBasicBlock::iterator II, bool IsSpill) const
Register getFrameRegister (const MachineFunction &MF) const override
StringRef getRegAsmName (MCRegister Reg) const override
bool requiresRegisterScavenging (const MachineFunction &MF) const override
bool requiresFrameIndexScavenging (const MachineFunction &MF) const override
const TargetRegisterClassgetPointerRegClass (const MachineFunction &MF, unsigned Kind=0) const override
const TargetRegisterClassgetLargestLegalSuperClass (const TargetRegisterClass *RC, const MachineFunction &) const override
void getOffsetOpcodes (const StackOffset &Offset, SmallVectorImpl< uint64_t > &Ops) const override
unsigned getRegisterCostTableIndex (const MachineFunction &MF) const override
float getSpillWeightScaleFactor (const TargetRegisterClass *RC) const override
bool getRegAllocationHints (Register VirtReg, ArrayRef< MCPhysReg > Order, SmallVectorImpl< MCPhysReg > &Hints, const MachineFunction &MF, const VirtRegMap *VRM, const LiveRegMatrix *Matrix) const override
Register findVRegWithEncoding (const TargetRegisterClass &RegClass, uint16_t Encoding) const

Static Public Member Functions

static bool isVRRegClass (const TargetRegisterClass *RC)
static bool isVRNRegClass (const TargetRegisterClass *RC)
static bool isRVVRegClass (const TargetRegisterClass *RC)

Detailed Description

Definition at line 57 of file RISCVRegisterInfo.h.

Constructor & Destructor Documentation

◆ RISCVRegisterInfo()

RISCVRegisterInfo::RISCVRegisterInfo ( unsigned HwMode)

Definition at line 57 of file RISCVRegisterInfo.cpp.

Member Function Documentation

◆ adjustReg()

◆ eliminateFrameIndex()

◆ findVRegWithEncoding()

Register RISCVRegisterInfo::findVRegWithEncoding ( const TargetRegisterClass & RegClass,
uint16_t Encoding ) const

◆ getCalleeSavedRegs()

◆ getCallPreservedMask()

◆ getCSRFirstUseCost()

unsigned llvm::RISCVRegisterInfo::getCSRFirstUseCost ( ) const
inlineoverride

Definition at line 64 of file RISCVRegisterInfo.h.

◆ getFrameIndexInstrOffset()

int64_t RISCVRegisterInfo::getFrameIndexInstrOffset ( const MachineInstr * MI,
int Idx ) const
override

◆ getFrameRegister()

Register RISCVRegisterInfo::getFrameRegister ( const MachineFunction & MF) const
override

Definition at line 744 of file RISCVRegisterInfo.cpp.

References llvm::TargetFrameLowering::hasFP().

◆ getIPRACSRegs()

const MCPhysReg * RISCVRegisterInfo::getIPRACSRegs ( const MachineFunction * MF) const
override

Definition at line 62 of file RISCVRegisterInfo.cpp.

◆ getLargestLegalSuperClass()

const TargetRegisterClass * RISCVRegisterInfo::getLargestLegalSuperClass ( const TargetRegisterClass * RC,
const MachineFunction &  ) const
override

Definition at line 793 of file RISCVRegisterInfo.cpp.

◆ getNoPreservedMask()

const uint32_t * RISCVRegisterInfo::getNoPreservedMask ( ) const
override

Definition at line 190 of file RISCVRegisterInfo.cpp.

◆ getOffsetOpcodes()

void RISCVRegisterInfo::getOffsetOpcodes ( const StackOffset & Offset,
SmallVectorImpl< uint64_t > & Ops ) const
override

◆ getPointerRegClass()

const TargetRegisterClass * llvm::RISCVRegisterInfo::getPointerRegClass ( const MachineFunction & MF,
unsigned Kind = 0 ) const
inlineoverride

Definition at line 126 of file RISCVRegisterInfo.h.

◆ getRegAllocationHints()

◆ getRegAsmName()

StringRef RISCVRegisterInfo::getRegAsmName ( MCRegister Reg) const
override

Definition at line 749 of file RISCVRegisterInfo.cpp.

References llvm::TargetRegisterInfo::getRegAsmName().

◆ getRegisterCostTableIndex()

unsigned RISCVRegisterInfo::getRegisterCostTableIndex ( const MachineFunction & MF) const
override

◆ getReservedRegs()

◆ getSpillWeightScaleFactor()

float RISCVRegisterInfo::getSpillWeightScaleFactor ( const TargetRegisterClass * RC) const
override

Definition at line 842 of file RISCVRegisterInfo.cpp.

◆ isAsmClobberable()

bool RISCVRegisterInfo::isAsmClobberable ( const MachineFunction & MF,
MCRegister PhysReg ) const
override

◆ isFrameOffsetLegal()

bool RISCVRegisterInfo::isFrameOffsetLegal ( const MachineInstr * MI,
Register BaseReg,
int64_t Offset ) const
override

Definition at line 679 of file RISCVRegisterInfo.cpp.

References assert(), getFrameIndexInstrOffset(), llvm::isInt(), MI, and llvm::Offset.

Referenced by needsFrameBaseReg().

◆ isRVVRegClass()

◆ isVRNRegClass()

bool llvm::RISCVRegisterInfo::isVRNRegClass ( const TargetRegisterClass * RC)
inlinestatic

◆ isVRRegClass()

bool llvm::RISCVRegisterInfo::isVRRegClass ( const TargetRegisterClass * RC)
inlinestatic

◆ lowerSegmentSpillReload()

◆ materializeFrameBaseRegister()

◆ needsFrameBaseReg()

◆ requiresFrameIndexScavenging()

bool llvm::RISCVRegisterInfo::requiresFrameIndexScavenging ( const MachineFunction & MF) const
inlineoverride

Definition at line 121 of file RISCVRegisterInfo.h.

◆ requiresRegisterScavenging()

bool llvm::RISCVRegisterInfo::requiresRegisterScavenging ( const MachineFunction & MF) const
inlineoverride

Definition at line 117 of file RISCVRegisterInfo.h.

◆ requiresVirtualBaseRegisters()

bool RISCVRegisterInfo::requiresVirtualBaseRegisters ( const MachineFunction & MF) const
override

Definition at line 614 of file RISCVRegisterInfo.cpp.

◆ resolveFrameIndex()

void RISCVRegisterInfo::resolveFrameIndex ( MachineInstr & MI,
Register BaseReg,
int64_t Offset ) const
override

Definition at line 716 of file RISCVRegisterInfo.cpp.

References assert(), getFrameIndexInstrOffset(), MI, and llvm::Offset.


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