LLVM  16.0.0git
Public Member Functions | Static Public Member Functions | List of all members
llvm::R600RegisterInfo Struct Referencefinal

#include "Target/AMDGPU/R600RegisterInfo.h"

Inheritance diagram for llvm::R600RegisterInfo:
Inheritance graph
Collaboration diagram for llvm::R600RegisterInfo:
Collaboration graph

Public Member Functions

 R600RegisterInfo ()
BitVector getReservedRegs (const MachineFunction &MF) const override
const MCPhysReggetCalleeSavedRegs (const MachineFunction *MF) const override
Register getFrameRegister (const MachineFunction &MF) const override
unsigned getHWRegChan (unsigned reg) const
 get the HW encoding for a register's channel. More...
unsigned getHWRegIndex (unsigned Reg) const
const TargetRegisterClassgetCFGStructurizerRegClass (MVT VT) const
 get the register class of the specified type to use in the CFGStructurizer More...
bool trackLivenessAfterRegAlloc (const MachineFunction &MF) const override
bool isPhysRegLiveAcrossClauses (Register Reg) const
bool eliminateFrameIndex (MachineBasicBlock::iterator MI, int SPAdj, unsigned FIOperandNum, RegScavenger *RS=nullptr) const override
void reserveRegisterTuples (BitVector &Reserved, unsigned Reg) const

Static Public Member Functions

static unsigned getSubRegFromChannel (unsigned Channel)

Detailed Description

Definition at line 22 of file R600RegisterInfo.h.

Constructor & Destructor Documentation

◆ R600RegisterInfo()

llvm::R600RegisterInfo::R600RegisterInfo ( )

Definition at line 23 of file R600RegisterInfo.h.

Member Function Documentation

◆ eliminateFrameIndex()

bool R600RegisterInfo::eliminateFrameIndex ( MachineBasicBlock::iterator  MI,
int  SPAdj,
unsigned  FIOperandNum,
RegScavenger RS = nullptr 
) const

Definition at line 106 of file R600RegisterInfo.cpp.

References llvm_unreachable.

◆ getCalleeSavedRegs()

const MCPhysReg * R600RegisterInfo::getCalleeSavedRegs ( const MachineFunction MF) const

Definition at line 68 of file R600RegisterInfo.cpp.

References CalleeSavedReg.

◆ getCFGStructurizerRegClass()

const TargetRegisterClass * R600RegisterInfo::getCFGStructurizerRegClass ( MVT  VT) const

get the register class of the specified type to use in the CFGStructurizer

Definition at line 85 of file R600RegisterInfo.cpp.

References llvm::MVT::i32, and llvm::MVT::SimpleTy.

◆ getFrameRegister()

Register R600RegisterInfo::getFrameRegister ( const MachineFunction MF) const

◆ getHWRegChan()

unsigned R600RegisterInfo::getHWRegChan ( unsigned  reg) const

get the HW encoding for a register's channel.

Definition at line 77 of file R600RegisterInfo.cpp.

References HW_CHAN_SHIFT.

Referenced by llvm::R600InstrInfo::expandPostRAPseudo(), and llvm::R600InstrInfo::fitsConstReadLimitations().

◆ getHWRegIndex()

unsigned R600RegisterInfo::getHWRegIndex ( unsigned  Reg) const

Definition at line 81 of file R600RegisterInfo.cpp.

References GET_REG_INDEX.

Referenced by llvm::R600InstrInfo::expandPostRAPseudo().

◆ getReservedRegs()

BitVector R600RegisterInfo::getReservedRegs ( const MachineFunction MF) const

◆ getSubRegFromChannel()

unsigned R600RegisterInfo::getSubRegFromChannel ( unsigned  Channel)
the sub reg enum value for the given Channel (e.g. getSubRegFromChannel(0) -> R600::sub0)

Definition at line 24 of file R600RegisterInfo.cpp.

References assert(), and size.

Referenced by llvm::R600InstrInfo::copyPhysReg().

◆ isPhysRegLiveAcrossClauses()

bool R600RegisterInfo::isPhysRegLiveAcrossClauses ( Register  Reg) const

Definition at line 93 of file R600RegisterInfo.cpp.

References assert().

Referenced by llvm::R600InstrInfo::isLegalToSplitMBBAt().

◆ reserveRegisterTuples()

void R600RegisterInfo::reserveRegisterTuples ( BitVector Reserved,
unsigned  Reg 
) const

Definition at line 113 of file R600RegisterInfo.cpp.

References llvm::Reserved.

Referenced by getReservedRegs().

◆ trackLivenessAfterRegAlloc()

bool llvm::R600RegisterInfo::trackLivenessAfterRegAlloc ( const MachineFunction MF) const

Definition at line 42 of file R600RegisterInfo.h.

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