LLVM
8.0.1
|
SI implementation of the TargetRegisterInfo class. More...
#include "SIRegisterInfo.h"
#include "AMDGPURegisterBankInfo.h"
#include "AMDGPUSubtarget.h"
#include "SIInstrInfo.h"
#include "SIMachineFunctionInfo.h"
#include "MCTargetDesc/AMDGPUMCTargetDesc.h"
#include "llvm/CodeGen/LiveIntervals.h"
#include "llvm/CodeGen/MachineDominators.h"
#include "llvm/CodeGen/MachineFrameInfo.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/RegisterScavenging.h"
#include "llvm/CodeGen/SlotIndexes.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/LLVMContext.h"
#include "AMDGPURegAsmNames.inc.cpp"
Go to the source code of this file.
Macros | |
#define | AMDGPU_REG_ASM_NAMES |
#define | REG_RANGE(BeginReg, EndReg, RegTable) |
Functions | |
static bool | hasPressureSet (const int *PSets, unsigned PSetID) |
static unsigned | findPrivateSegmentWaveByteOffsetRegIndex (unsigned RegCount) |
static unsigned | getNumSubRegsForSpillOp (unsigned Op) |
static int | getOffsetMUBUFStore (unsigned Opc) |
static int | getOffsetMUBUFLoad (unsigned Opc) |
static bool | buildMUBUFOffsetLoadStore (const SIInstrInfo *TII, MachineFrameInfo &MFI, MachineBasicBlock::iterator MI, int Index, int64_t Offset) |
static std::pair< unsigned, unsigned > | getSpillEltSize (unsigned SuperRegSize, bool Store) |
Variables | |
static cl::opt< bool > | EnableSpillSGPRToSMEM ("amdgpu-spill-sgpr-to-smem", cl::desc("Use scalar stores to spill SGPRs if supported by subtarget"), cl::init(false)) |
static cl::opt< bool > | EnableSpillSGPRToVGPR ("amdgpu-spill-sgpr-to-vgpr", cl::desc("Enable spilling VGPRs to SGPRs"), cl::ReallyHidden, cl::init(true)) |
SI implementation of the TargetRegisterInfo class.
Definition in file SIRegisterInfo.cpp.
#define AMDGPU_REG_ASM_NAMES |
#define REG_RANGE | ( | BeginReg, | |
EndReg, | |||
RegTable | |||
) |
Referenced by llvm::SIRegisterInfo::getRegAsmName().
|
static |
Definition at line 485 of file SIRegisterInfo.cpp.
References llvm::ARM_AM::add, llvm::MachineInstrBuilder::add(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addMemOperand(), llvm::MachineInstrBuilder::addReg(), llvm::AMDGPU::HSAMD::Kernel::Arg::Key::Align, assert(), llvm::BuildMI(), llvm::RegScavenger::FindUnusedReg(), llvm::MDNode::get(), llvm::getDefRegState(), llvm::MachineMemOperand::getFlags(), llvm::MachineFunction::getFrameInfo(), llvm::TargetRegisterClass::getID(), llvm::GCNSubtarget::getInstrInfo(), llvm::getKillRegState(), llvm::MachineFunction::getMachineMemOperand(), llvm::SIInstrInfo::getNamedOperand(), llvm::MachineFrameInfo::getObjectAlignment(), llvm::MachineFrameInfo::getObjectOffset(), getOffsetMUBUFLoad(), getOffsetMUBUFStore(), llvm::MachineMemOperand::getPointerInfo(), llvm::AMDGPU::getRegBitWidth(), llvm::SIRegisterInfo::getRegClassForReg(), llvm::MachineFunction::getRegInfo(), llvm::AMDGPURegisterInfo::getSubRegFromChannel(), llvm::MachineFunction::getSubtarget(), llvm::AMDGPUSubtarget::getWavefrontSize(), llvm::MachinePointerInfo::getWithOffset(), llvm::RegState::Implicit, llvm::MCInstrDesc::mayStore(), MI, llvm::MinAlign(), Size, llvm::ARM_MB::ST, SubReg, and TII.
Referenced by llvm::SIRegisterInfo::eliminateFrameIndex().
Definition at line 118 of file SIRegisterInfo.cpp.
References Reg.
Referenced by llvm::SIRegisterInfo::reservedPrivateSegmentWaveByteOffsetReg().
Definition at line 394 of file SIRegisterInfo.cpp.
References llvm_unreachable.
Referenced by llvm::SIRegisterInfo::eliminateFrameIndex().
|
static |
Definition at line 450 of file SIRegisterInfo.cpp.
Referenced by buildMUBUFOffsetLoadStore().
|
static |
Definition at line 429 of file SIRegisterInfo.cpp.
Referenced by buildMUBUFOffsetLoadStore().
Definition at line 627 of file SIRegisterInfo.cpp.
Referenced by llvm::SIRegisterInfo::restoreSGPR(), and llvm::SIRegisterInfo::spillSGPR().
Definition at line 32 of file SIRegisterInfo.cpp.
References EnableSpillSGPRToSMEM, EnableSpillSGPRToVGPR, llvm::SIRegisterInfo::getRegUnitPressureSets(), llvm::cl::init(), llvm::MCRegisterInfo::DiffListIterator::isValid(), llvm::cl::ReallyHidden, Reg, and llvm::BitVector::set().
|
static |
Referenced by hasPressureSet().
|
static |
Referenced by hasPressureSet().