LLVM 20.0.0git
|
Classes | |
struct | PerVGPRData |
Public Member Functions | |
SGPRSpillBuilder (const SIRegisterInfo &TRI, const SIInstrInfo &TII, bool IsWave32, MachineBasicBlock::iterator MI, int Index, RegScavenger *RS) | |
SGPRSpillBuilder (const SIRegisterInfo &TRI, const SIInstrInfo &TII, bool IsWave32, MachineBasicBlock::iterator MI, Register Reg, bool IsKill, int Index, RegScavenger *RS) | |
PerVGPRData | getPerVGPRData () |
void | prepare () |
void | restore () |
void | readWriteTmpVGPR (unsigned Offset, bool IsLoad) |
void | setMI (MachineBasicBlock *NewMBB, MachineBasicBlock::iterator NewMI) |
Public Attributes | |
Register | SuperReg |
MachineBasicBlock::iterator | MI |
ArrayRef< int16_t > | SplitParts |
unsigned | NumSubRegs |
bool | IsKill |
const DebugLoc & | DL |
Register | TmpVGPR = AMDGPU::NoRegister |
int | TmpVGPRIndex = 0 |
bool | TmpVGPRLive = false |
Register | SavedExecReg = AMDGPU::NoRegister |
int | Index |
unsigned | EltSize = 4 |
RegScavenger * | RS |
MachineBasicBlock * | MBB |
MachineFunction & | MF |
SIMachineFunctionInfo & | MFI |
const SIInstrInfo & | TII |
const SIRegisterInfo & | TRI |
bool | IsWave32 |
Register | ExecReg |
unsigned | MovOpc |
unsigned | NotOpc |
Definition at line 78 of file SIRegisterInfo.cpp.
|
inline |
Definition at line 118 of file SIRegisterInfo.cpp.
|
inline |
Definition at line 124 of file SIRegisterInfo.cpp.
References assert(), EltSize, llvm::ArrayRef< T >::empty(), ExecReg, llvm::SIRegisterInfo::getRegSplitParts(), IsWave32, MovOpc, NotOpc, NumSubRegs, llvm::ArrayRef< T >::size(), SplitParts, SuperReg, and TRI.
|
inline |
Definition at line 150 of file SIRegisterInfo.cpp.
References llvm::Data, IsWave32, and NumSubRegs.
Referenced by prepare(), llvm::SIRegisterInfo::restoreSGPR(), llvm::SIRegisterInfo::spillEmergencySGPR(), and llvm::SIRegisterInfo::spillSGPR().
|
inline |
Definition at line 171 of file SIRegisterInfo.cpp.
References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), assert(), llvm::RegScavenger::assignRegToScavengingIndex(), llvm::BuildMI(), llvm::SIRegisterInfo::buildVGPRSpillLoadStore(), DL, emitUnsupportedError(), ExecReg, llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::getFunction(), getPerVGPRData(), llvm::SIMachineFunctionInfo::getScavengeFI(), I, llvm::RegState::ImplicitDefine, llvm::RegScavenger::isRegUsed(), IsWave32, MBB, MF, MFI, MI, MovOpc, NotOpc, RS, SavedExecReg, llvm::RegScavenger::scavengeRegisterBackwards(), llvm::RegScavenger::setRegUsed(), SuperReg, TII, TmpVGPR, TmpVGPRIndex, TmpVGPRLive, TRI, and llvm::SGPRSpillBuilder::PerVGPRData::VGPRLanes.
Referenced by llvm::SIRegisterInfo::restoreSGPR(), llvm::SIRegisterInfo::spillEmergencySGPR(), and llvm::SIRegisterInfo::spillSGPR().
Definition at line 295 of file SIRegisterInfo.cpp.
References llvm::MachineInstrBuilder::addReg(), llvm::BuildMI(), llvm::SIRegisterInfo::buildVGPRSpillLoadStore(), DL, emitUnsupportedError(), ExecReg, llvm::MachineFunction::getFunction(), llvm::MachineInstr::getOperand(), Index, llvm::RegScavenger::isRegUsed(), MBB, MF, MI, NotOpc, llvm::Offset, RS, SavedExecReg, llvm::MachineOperand::setIsDead(), TII, and TRI.
Referenced by llvm::SIRegisterInfo::restoreSGPR(), and llvm::SIRegisterInfo::spillSGPR().
|
inline |
Definition at line 254 of file SIRegisterInfo.cpp.
References llvm::MachineInstrBuilder::addReg(), llvm::RegScavenger::assignRegToScavengingIndex(), llvm::BuildMI(), llvm::SIRegisterInfo::buildVGPRSpillLoadStore(), DL, ExecReg, I, llvm::RegState::ImplicitKill, llvm::RegState::Kill, MBB, MI, MovOpc, NotOpc, RS, SavedExecReg, TII, TmpVGPR, TmpVGPRIndex, TmpVGPRLive, and TRI.
Referenced by llvm::SIRegisterInfo::restoreSGPR(), llvm::SIRegisterInfo::spillEmergencySGPR(), and llvm::SIRegisterInfo::spillSGPR().
|
inline |
Definition at line 319 of file SIRegisterInfo.cpp.
References assert(), llvm::MachineBasicBlock::getParent(), MBB, MF, and MI.
Referenced by llvm::SIRegisterInfo::spillEmergencySGPR().
Definition at line 91 of file SIRegisterInfo.cpp.
Referenced by llvm::SIRegisterInfo::buildVGPRSpillLoadStore(), prepare(), readWriteTmpVGPR(), restore(), llvm::SIRegisterInfo::restoreSGPR(), llvm::SIRegisterInfo::spillEmergencySGPR(), and llvm::SIRegisterInfo::spillSGPR().
unsigned llvm::SGPRSpillBuilder::EltSize = 4 |
Definition at line 105 of file SIRegisterInfo.cpp.
Referenced by llvm::SIRegisterInfo::buildVGPRSpillLoadStore(), and SGPRSpillBuilder().
Register llvm::SGPRSpillBuilder::ExecReg |
Definition at line 114 of file SIRegisterInfo.cpp.
Referenced by prepare(), readWriteTmpVGPR(), restore(), and SGPRSpillBuilder().
int llvm::SGPRSpillBuilder::Index |
Definition at line 104 of file SIRegisterInfo.cpp.
Referenced by readWriteTmpVGPR().
bool llvm::SGPRSpillBuilder::IsKill |
Definition at line 90 of file SIRegisterInfo.cpp.
Referenced by llvm::SIRegisterInfo::spillEmergencySGPR(), and llvm::SIRegisterInfo::spillSGPR().
bool llvm::SGPRSpillBuilder::IsWave32 |
Definition at line 113 of file SIRegisterInfo.cpp.
Referenced by getPerVGPRData(), prepare(), and SGPRSpillBuilder().
MachineBasicBlock* llvm::SGPRSpillBuilder::MBB |
Definition at line 108 of file SIRegisterInfo.cpp.
Referenced by llvm::SIRegisterInfo::buildVGPRSpillLoadStore(), prepare(), readWriteTmpVGPR(), restore(), llvm::SIRegisterInfo::restoreSGPR(), setMI(), llvm::SIRegisterInfo::spillEmergencySGPR(), and llvm::SIRegisterInfo::spillSGPR().
MachineFunction& llvm::SGPRSpillBuilder::MF |
Definition at line 109 of file SIRegisterInfo.cpp.
Referenced by llvm::SIRegisterInfo::buildVGPRSpillLoadStore(), prepare(), readWriteTmpVGPR(), and setMI().
SIMachineFunctionInfo& llvm::SGPRSpillBuilder::MFI |
Definition at line 110 of file SIRegisterInfo.cpp.
Referenced by llvm::SIRegisterInfo::buildVGPRSpillLoadStore(), prepare(), llvm::SIRegisterInfo::restoreSGPR(), llvm::SIRegisterInfo::spillEmergencySGPR(), and llvm::SIRegisterInfo::spillSGPR().
MachineBasicBlock::iterator llvm::SGPRSpillBuilder::MI |
Definition at line 87 of file SIRegisterInfo.cpp.
Referenced by llvm::SIRegisterInfo::buildVGPRSpillLoadStore(), prepare(), readWriteTmpVGPR(), restore(), and setMI().
unsigned llvm::SGPRSpillBuilder::MovOpc |
Definition at line 115 of file SIRegisterInfo.cpp.
Referenced by prepare(), restore(), and SGPRSpillBuilder().
unsigned llvm::SGPRSpillBuilder::NotOpc |
Definition at line 116 of file SIRegisterInfo.cpp.
Referenced by prepare(), readWriteTmpVGPR(), restore(), and SGPRSpillBuilder().
unsigned llvm::SGPRSpillBuilder::NumSubRegs |
Definition at line 89 of file SIRegisterInfo.cpp.
Referenced by getPerVGPRData(), llvm::SIRegisterInfo::restoreSGPR(), SGPRSpillBuilder(), llvm::SIRegisterInfo::spillEmergencySGPR(), and llvm::SIRegisterInfo::spillSGPR().
RegScavenger* llvm::SGPRSpillBuilder::RS |
Definition at line 107 of file SIRegisterInfo.cpp.
Referenced by llvm::SIRegisterInfo::buildVGPRSpillLoadStore(), prepare(), readWriteTmpVGPR(), and restore().
Register llvm::SGPRSpillBuilder::SavedExecReg = AMDGPU::NoRegister |
Definition at line 102 of file SIRegisterInfo.cpp.
Referenced by prepare(), readWriteTmpVGPR(), and restore().
ArrayRef<int16_t> llvm::SGPRSpillBuilder::SplitParts |
Definition at line 88 of file SIRegisterInfo.cpp.
Referenced by llvm::SIRegisterInfo::restoreSGPR(), SGPRSpillBuilder(), llvm::SIRegisterInfo::spillEmergencySGPR(), and llvm::SIRegisterInfo::spillSGPR().
Register llvm::SGPRSpillBuilder::SuperReg |
Definition at line 86 of file SIRegisterInfo.cpp.
Referenced by prepare(), llvm::SIRegisterInfo::restoreSGPR(), SGPRSpillBuilder(), llvm::SIRegisterInfo::spillEmergencySGPR(), and llvm::SIRegisterInfo::spillSGPR().
const SIInstrInfo& llvm::SGPRSpillBuilder::TII |
Definition at line 111 of file SIRegisterInfo.cpp.
Referenced by prepare(), readWriteTmpVGPR(), restore(), llvm::SIRegisterInfo::restoreSGPR(), llvm::SIRegisterInfo::spillEmergencySGPR(), and llvm::SIRegisterInfo::spillSGPR().
Register llvm::SGPRSpillBuilder::TmpVGPR = AMDGPU::NoRegister |
Definition at line 96 of file SIRegisterInfo.cpp.
Referenced by llvm::SIRegisterInfo::buildVGPRSpillLoadStore(), prepare(), restore(), llvm::SIRegisterInfo::restoreSGPR(), llvm::SIRegisterInfo::spillEmergencySGPR(), and llvm::SIRegisterInfo::spillSGPR().
int llvm::SGPRSpillBuilder::TmpVGPRIndex = 0 |
Definition at line 98 of file SIRegisterInfo.cpp.
bool llvm::SGPRSpillBuilder::TmpVGPRLive = false |
Definition at line 100 of file SIRegisterInfo.cpp.
const SIRegisterInfo& llvm::SGPRSpillBuilder::TRI |
Definition at line 112 of file SIRegisterInfo.cpp.
Referenced by prepare(), readWriteTmpVGPR(), restore(), and SGPRSpillBuilder().