|
LLVM 24.0.0git
|
SI implementation of the TargetRegisterInfo class. More...
#include "SIRegisterInfo.h"#include "AMDGPU.h"#include "AMDGPURegisterBankInfo.h"#include "GCNSubtarget.h"#include "MCTargetDesc/AMDGPUInstPrinter.h"#include "SIMachineFunctionInfo.h"#include "llvm/CodeGen/LiveIntervals.h"#include "llvm/CodeGen/LiveRegUnits.h"#include "llvm/CodeGen/MachineDominators.h"#include "llvm/CodeGen/MachineFrameInfo.h"#include "llvm/CodeGen/RegisterScavenging.h"#include "llvm/Support/Debug.h"#include "llvm/Support/raw_ostream.h"#include "AMDGPUGenRegisterInfo.inc"Go to the source code of this file.
Classes | |
| struct | llvm::SGPRSpillBuilder |
| struct | llvm::SGPRSpillBuilder::PerVGPRData |
Namespaces | |
| namespace | llvm |
| This is an optimization pass for GlobalISel generic memory operations. | |
Macros | |
| #define | DEBUG_TYPE "amdgpu-si-register-info" |
| #define | GET_REGINFO_TARGET_DESC |
Variables | |
| static cl::opt< bool > | EnableSpillSGPRToVGPR ("amdgpu-spill-sgpr-to-vgpr", cl::desc("Enable spilling SGPRs to VGPRs"), cl::ReallyHidden, cl::init(true)) |
| static cl::opt< bool > | EnableSpillCFISavedRegs ("amdgpu-spill-cfi-saved-regs", cl::desc("Enable spilling the registers required for CFI emission"), cl::ReallyHidden, cl::init(false)) |
| static cl::opt< unsigned > | StressVGPRLimit ("amdgpu-stress-vgpr", cl::Hidden, cl::init(0), cl::desc("Limit VGPRs to N registers by reserving the rest")) |
| static cl::opt< unsigned > | StressAGPRLimit ("amdgpu-stress-agpr", cl::Hidden, cl::init(0), cl::desc("Limit AGPRs to N registers by reserving the rest")) |
| static cl::opt< unsigned > | StressSGPRLimit ("amdgpu-stress-sgpr", cl::Hidden, cl::init(0), cl::desc("Limit SGPRs to N registers by reserving the rest")) |
| static const std::array< unsigned, 17 > | SubRegFromChannelTableWidthMap |
SI implementation of the TargetRegisterInfo class.
Definition in file SIRegisterInfo.cpp.
| #define DEBUG_TYPE "amdgpu-si-register-info" |
Definition at line 28 of file SIRegisterInfo.cpp.
| #define GET_REGINFO_TARGET_DESC |
Definition at line 32 of file SIRegisterInfo.cpp.
|
static |
Definition at line 1506 of file SIRegisterInfo.cpp.
References llvm::MachineInstrBuilder::add(), llvm::MachineInstrBuilder::addImm(), llvm::BuildMI(), llvm::MachineInstrBuilder::cloneMemRefs(), DL, llvm::MachineInstrBuilder::getInstr(), getOffsetMUBUFLoad(), getOffsetMUBUFStore(), MBB, MI, llvm::Offset, Opc, Reg, spillVGPRtoAGPR(), and TII.
Referenced by llvm::SIRegisterInfo::eliminateFrameIndex().
|
static |
Definition at line 68 of file SIRegisterInfo.cpp.
References llvm::LLVMContext::diagnose(), llvm::Function::getContext(), and MI.
Referenced by llvm::SGPRSpillBuilder::prepare(), and llvm::SGPRSpillBuilder::readWriteTmpVGPR().
|
static |
Definition at line 2544 of file SIRegisterInfo.cpp.
References llvm::MachineOperand::getImm(), llvm::MachineOperand::isImm(), llvm::Register::isValid(), llvm::Offset, and wrapsAround32().
Referenced by llvm::SIRegisterInfo::eliminateFrameIndex().
|
static |
Definition at line 3879 of file SIRegisterInfo.cpp.
References llvm::BitWidth.
Referenced by llvm::SIRegisterInfo::getAGPRClassForBitWidth().
|
static |
Definition at line 3953 of file SIRegisterInfo.cpp.
References llvm::BitWidth.
Referenced by llvm::SIRegisterInfo::getVectorSuperClassForBitWidth().
|
static |
Definition at line 3769 of file SIRegisterInfo.cpp.
References llvm::BitWidth.
Referenced by llvm::SIRegisterInfo::getVGPRClassForBitWidth().
|
static |
Definition at line 3847 of file SIRegisterInfo.cpp.
References llvm::BitWidth.
Referenced by llvm::SIRegisterInfo::getAGPRClassForBitWidth().
|
static |
Definition at line 3921 of file SIRegisterInfo.cpp.
References llvm::BitWidth.
Referenced by llvm::SIRegisterInfo::getVectorSuperClassForBitWidth().
|
static |
Definition at line 3737 of file SIRegisterInfo.cpp.
References llvm::BitWidth.
Referenced by llvm::SIRegisterInfo::getVGPRClassForBitWidth().
|
static |
Definition at line 1544 of file SIRegisterInfo.cpp.
References llvm::AMDGPU::getFlatScratchInstSTfromSS(), llvm::AMDGPU::getFlatScratchInstSVfromSS(), llvm::AMDGPU::hasNamedOperand(), llvm_unreachable, and TII.
Referenced by llvm::SIRegisterInfo::buildSpillLoadStore().
|
static |
Definition at line 1154 of file SIRegisterInfo.cpp.
References llvm_unreachable, MI, llvm::popcount(), TII, and uint64_t.
Referenced by llvm::SIRegisterInfo::eliminateFrameIndex().
|
static |
Definition at line 1424 of file SIRegisterInfo.cpp.
References Opc.
Referenced by llvm::SIRegisterInfo::buildSpillLoadStore().
|
static |
Definition at line 1401 of file SIRegisterInfo.cpp.
References Opc.
Referenced by llvm::SIRegisterInfo::buildSpillLoadStore().
|
static |
Definition at line 1366 of file SIRegisterInfo.cpp.
References Opc.
Referenced by buildMUBUFOffsetLoadStore().
|
static |
Definition at line 1343 of file SIRegisterInfo.cpp.
References Opc.
Referenced by buildMUBUFOffsetLoadStore().
|
static |
Definition at line 872 of file SIRegisterInfo.cpp.
References assert(), llvm::MachineOperand::getReg(), llvm::MachineOperand::isFI(), llvm::MachineOperand::isImm(), llvm::MachineOperand::isReg(), MI, and TRI.
Referenced by llvm::SIRegisterInfo::needsFrameBaseReg().
|
static |
Definition at line 2551 of file SIRegisterInfo.cpp.
References MI.
Referenced by llvm::SIRegisterInfo::eliminateFrameIndex().
|
static |
Definition at line 1460 of file SIRegisterInfo.cpp.
References llvm::MachineInstrBuilder::addReg(), llvm::SIFrameLowering::buildCFIForVRegToVRegSpill(), llvm::BuildMI(), DL, llvm::MachineFunction::getInfo(), llvm::getKillRegState(), llvm::MachineFunction::getRegInfo(), llvm::MachineRegisterInfo::getTargetRegisterInfo(), llvm::SIMachineFunctionInfo::getVGPRToAGPRSpill(), MBB, MI, Opc, Reg, llvm::MachineInstr::ReloadReuse, llvm::MachineInstr::setAsmPrinterFlag(), TII, and TRI.
Referenced by buildMUBUFOffsetLoadStore(), and llvm::SIRegisterInfo::buildSpillLoadStore().
|
static |
Definition at line 2536 of file SIRegisterInfo.cpp.
References LHS, RHS, and uint64_t.
Referenced by foldingOffsetChangesCarry().
|
static |
Referenced by llvm::SIRegisterInfo::isCFISavedRegsSpillEnabled().
|
static |
Referenced by llvm::SIRegisterInfo::SIRegisterInfo().
|
static |
Referenced by llvm::SIRegisterInfo::getReservedRegs().
|
static |
Referenced by llvm::SIRegisterInfo::getReservedRegs().
|
static |
Referenced by llvm::SIRegisterInfo::getReservedRegs().
Definition at line 65 of file SIRegisterInfo.cpp.
Referenced by llvm::SIRegisterInfo::getSubRegFromChannel(), and llvm::SIRegisterInfo::SIRegisterInfo().