|
LLVM
8.0.1
|
#include "Target/AMDGPU/SIRegisterInfo.h"


Additional Inherited Members | |
Static Public Member Functions inherited from llvm::AMDGPURegisterInfo | |
| static unsigned | getSubRegFromChannel (unsigned Channel) |
Definition at line 29 of file SIRegisterInfo.h.
| SIRegisterInfo::SIRegisterInfo | ( | const GCNSubtarget & | ST | ) |
Definition at line 62 of file SIRegisterInfo.cpp.
References assert(), getRegUnitPressureSets(), llvm::GCNSubtarget::hasScalarStores(), isSGPRPressureSet(), and isVGPRPressureSet().
|
override |
Definition at line 989 of file SIRegisterInfo.cpp.
References llvm::MachineInstrBuilder::addReg(), llvm::SIMachineFunctionInfo::addToSpilledVGPRs(), assert(), llvm::BuildMI(), buildMUBUFOffsetLoadStore(), llvm::MachineOperand::ChangeToImmediate(), llvm::MachineOperand::ChangeToRegister(), llvm::MachineRegisterInfo::createVirtualRegister(), llvm::MDNode::get(), llvm::MachineFunction::getFrameInfo(), llvm::SIMachineFunctionInfo::getFrameOffsetReg(), llvm::MachineFunction::getInfo(), llvm::GCNSubtarget::getInstrInfo(), llvm::AMDGPU::getNamedOperandIdx(), getNumSubRegsForSpillOp(), llvm::MachineOperand::getReg(), llvm::MachineFunction::getRegInfo(), llvm::SIMachineFunctionInfo::getScratchWaveOffsetReg(), llvm::MachineFunction::getSubtarget(), llvm::AMDGPUSubtarget::getWavefrontSize(), llvm::AMDGPUSubtarget::hasInv2PiInlineImm(), llvm::AMDGPU::isInlinableLiteral32(), llvm::MachineOperand::isKill(), llvm::RegState::Kill, llvm::Log2_32(), MRI, restoreSGPR(), spillSGPR(), llvm::ARM_MB::ST, and TII.
Referenced by getCSRFirstUseCost().
| bool SIRegisterInfo::eliminateSGPRToVGPRSpillFrameIndex | ( | MachineBasicBlock::iterator | MI, |
| int | FI, | ||
| RegScavenger * | RS | ||
| ) | const |
Special case of eliminateFrameIndex.
Returns true if the SGPR was spilled to a VGPR and the stack slot can be safely eliminated when all other users are handled.
Definition at line 967 of file SIRegisterInfo.cpp.
References llvm_unreachable, restoreSGPR(), and spillSGPR().
Referenced by getCSRFirstUseCost(), and llvm::SIFrameLowering::processFunctionBeforeFrameFinalized().
| MachineInstr * SIRegisterInfo::findReachingDef | ( | unsigned | Reg, |
| unsigned | SubReg, | ||
| MachineInstr & | Use, | ||
| MachineRegisterInfo & | MRI, | ||
| LiveIntervals * | LIS | ||
| ) | const |
Definition at line 1607 of file SIRegisterInfo.cpp.
References assert(), llvm::tgtok::Def, llvm::VNInfo::def, llvm::Pass::getAnalysis(), llvm::LiveIntervals::getInstructionFromIndex(), llvm::LiveIntervals::getInstructionIndex(), llvm::LiveIntervals::getInterval(), llvm::MachineRegisterInfo::getMaxLaneMaskForVReg(), llvm::LiveIntervals::getRegUnit(), llvm::LiveRange::getVNInfoAt(), llvm::LiveIntervals::hasInterval(), llvm::LiveInterval::hasSubRanges(), llvm::SlotIndex::isValid(), llvm::MCRegisterInfo::DiffListIterator::isValid(), llvm::TargetRegisterInfo::isVirtualRegister(), llvm::MachineInstr::modifiesRegister(), and llvm::LiveInterval::subranges().
Referenced by isVGPRPressureSet(), and optimizeVcndVcmpPair().
| unsigned SIRegisterInfo::findUnusedRegister | ( | const MachineRegisterInfo & | MRI, |
| const TargetRegisterClass * | RC, | ||
| const MachineFunction & | MF | ||
| ) | const |
Returns a register that is not used at any point in the function.
If all registers are used, then this function will return
Definition at line 1386 of file SIRegisterInfo.cpp.
References llvm::MachineRegisterInfo::isAllocatable(), and llvm::MachineRegisterInfo::isPhysRegUsed().
Referenced by llvm::SIInstrInfo::calculateLDSSpillAddress(), and opCanUseInlineConstant().
|
override |
Definition at line 53 of file AMDGPURegisterInfo.cpp.
References llvm::CallingConv::C, llvm::CallingConv::Cold, llvm::CallingConv::Fast, llvm::Function::getCallingConv(), and llvm::MachineFunction::getFunction().
Referenced by spillSGPRToSMEM().
| const MCPhysReg * SIRegisterInfo::getCalleeSavedRegsViaCopy | ( | const MachineFunction * | MF | ) | const |
Definition at line 70 of file AMDGPURegisterInfo.cpp.
Referenced by llvm::SITargetLowering::insertCopiesSplitCSR(), llvm::SITargetLowering::LowerReturn(), and spillSGPRToSMEM().
|
override |
Definition at line 74 of file AMDGPURegisterInfo.cpp.
References llvm::CallingConv::C, llvm::CallingConv::Cold, and llvm::CallingConv::Fast.
Referenced by llvm::SITargetLowering::isEligibleForTailCallOptimization(), and spillSGPRToSMEM().
|
override |
Definition at line 1581 of file SIRegisterInfo.cpp.
References llvm::RegisterBank::getID(), llvm::MachineOperand::getReg(), llvm::MachineRegisterInfo::getRegBankOrNull(), llvm_unreachable, MRI, and Size.
Referenced by llvm::AMDGPUInstructionSelector::AMDGPUInstructionSelector(), buildEXP(), getConstant(), and isVGPRPressureSet().
|
inlineoverride |
Definition at line 71 of file SIRegisterInfo.h.
References eliminateFrameIndex(), eliminateSGPRToVGPRSpillFrameIndex(), getFrameIndexInstrOffset(), getFrameRegister(), getMUBUFInstrOffset(), getPointerRegClass(), getRegAsmName(), isFrameOffsetLegal(), Kind, materializeFrameBaseRegister(), MI, needsFrameBaseReg(), requiresFrameIndexReplacementScavenging(), requiresFrameIndexScavenging(), requiresRegisterScavenging(), requiresVirtualBaseRegisters(), resolveFrameIndex(), restoreSGPR(), spillSGPR(), and trackLivenessAfterRegAlloc().
| const TargetRegisterClass * SIRegisterInfo::getEquivalentSGPRClass | ( | const TargetRegisterClass * | VRC | ) | const |
SRC Definition at line 1300 of file SIRegisterInfo.cpp.
References llvm_unreachable.
Referenced by isSGPRReg(), and tryChangeVGPRtoSGPRinCopy().
| const TargetRegisterClass * SIRegisterInfo::getEquivalentVGPRClass | ( | const TargetRegisterClass * | SRC | ) | const |
SRC Definition at line 1280 of file SIRegisterInfo.cpp.
References llvm_unreachable.
Referenced by foldVGPRCopyIntoRegSequence(), and isSGPRReg().
|
override |
Definition at line 282 of file SIRegisterInfo.cpp.
References assert(), getMUBUFInstrOffset(), llvm::AMDGPU::getNamedOperandIdx(), llvm::MachineInstr::getOpcode(), and llvm::SIInstrInfo::isMUBUF().
Referenced by getCSRFirstUseCost().
|
override |
Definition at line 86 of file AMDGPURegisterInfo.cpp.
References llvm::SIMachineFunctionInfo::getFrameOffsetReg(), and llvm::MachineFunction::getInfo().
Referenced by getCSRFirstUseCost(), and llvm::SIFrameLowering::getFrameIndexReference().
Definition at line 123 of file SIRegisterInfo.h.
References getPhysRegClass().
Referenced by llvm::SIInstrInfo::copyPhysReg(), and hasAnyNonFlatUseOfReg().
| int64_t SIRegisterInfo::getMUBUFInstrOffset | ( | const MachineInstr * | MI | ) | const |
Definition at line 274 of file SIRegisterInfo.cpp.
References assert(), llvm::MachineOperand::getImm(), llvm::AMDGPU::getNamedOperandIdx(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), and llvm::SIInstrInfo::isMUBUF().
Referenced by getCSRFirstUseCost(), getFrameIndexInstrOffset(), isFrameOffsetLegal(), and needsFrameBaseReg().
| const TargetRegisterClass * SIRegisterInfo::getPhysRegClass | ( | unsigned | Reg | ) | const |
Return the 'base' register class for this register.
e.g. SGPR0 => SReg_32, VGPR => VGPR_32 SGPR0_SGPR1 -> SReg_32, etc.
Definition at line 1228 of file SIRegisterInfo.cpp.
References assert(), and llvm::TargetRegisterInfo::isVirtualRegister().
Referenced by llvm::SIInstrInfo::copyPhysReg(), llvm::createR600ISelDag(), llvm::SIInstrInfo::FoldImmediate(), getCopyRegClasses(), getHWRegIndex(), getRegClassForReg(), isSGPRReg(), restoreSGPR(), and spillSGPR().
|
override |
Definition at line 386 of file SIRegisterInfo.cpp.
Referenced by getCSRFirstUseCost().
Definition at line 1166 of file SIRegisterInfo.cpp.
References llvm::TargetRegisterInfo::getRegAsmName(), and REG_RANGE.
Referenced by getCSRFirstUseCost().
| const TargetRegisterClass * SIRegisterInfo::getRegClassForReg | ( | const MachineRegisterInfo & | MRI, |
| unsigned | Reg | ||
| ) | const |
Definition at line 1500 of file SIRegisterInfo.cpp.
References getPhysRegClass(), llvm::MachineRegisterInfo::getRegClass(), and llvm::TargetRegisterInfo::isVirtualRegister().
Referenced by buildEXP(), buildMUBUFOffsetLoadStore(), getVGPRPressureSet(), isVGPR(), and llvm::SIInstrInfo::verifyInstruction().
|
override |
Definition at line 1536 of file SIRegisterInfo.cpp.
References llvm::MachineFunction::getFunction(), llvm::TargetRegisterClass::getID(), llvm::MachineFunction::getInfo(), llvm::GCNSubtarget::getMaxNumSGPRs(), llvm::GCNSubtarget::getMaxNumVGPRs(), llvm::AMDGPUSubtarget::getOccupancyWithLocalMemSize(), llvm::MachineFunction::getSubtarget(), and llvm::ARM_MB::ST.
Referenced by getRegPressureSetLimit(), and isVGPRPressureSet().
|
override |
Definition at line 1554 of file SIRegisterInfo.cpp.
References getRegPressureLimit(), getSGPRPressureSet(), and getVGPRPressureSet().
Referenced by llvm::GCNMaxOccupancySchedStrategy::initialize(), and isVGPRPressureSet().
| ArrayRef< int16_t > SIRegisterInfo::getRegSplitParts | ( | const TargetRegisterClass * | RC, |
| unsigned | EltSize | ||
| ) | const |
Definition at line 1396 of file SIRegisterInfo.cpp.
References assert(), llvm::AMDGPU::getRegBitWidth(), llvm_unreachable, llvm::makeArrayRef(), and llvm::TargetRegisterClass::MC.
Referenced by llvm::SIInstrInfo::copyPhysReg(), isVGPRPressureSet(), llvm::SIInstrInfo::materializeImmediate(), restoreSGPR(), and spillSGPR().
Definition at line 1567 of file SIRegisterInfo.cpp.
References llvm::Empty.
Referenced by hasPressureSet(), isVGPRPressureSet(), and SIRegisterInfo().
|
override |
Definition at line 147 of file SIRegisterInfo.cpp.
References assert(), llvm::SIMachineFunctionInfo::getFrameOffsetReg(), llvm::MachineFunction::getInfo(), llvm::GCNSubtarget::getMaxNumSGPRs(), llvm::GCNSubtarget::getMaxNumVGPRs(), llvm::SIMachineFunctionInfo::getScratchRSrcReg(), llvm::SIMachineFunctionInfo::getScratchWaveOffsetReg(), llvm::SIMachineFunctionInfo::getStackPtrOffsetReg(), llvm::MachineFunction::getSubtarget(), llvm::AMDGPURegisterInfo::reserveRegisterTuples(), and llvm::ARM_MB::ST.
Referenced by spillSGPRToSMEM().
| unsigned SIRegisterInfo::getReturnAddressReg | ( | const MachineFunction & | MF | ) | const |
Definition at line 1575 of file SIRegisterInfo.cpp.
Referenced by llvm::SITargetLowering::EmitInstrWithCustomInserter(), isVGPRPressureSet(), llvm::SITargetLowering::LowerCall(), and llvm::SITargetLowering::LowerReturn().
|
inline |
Definition at line 192 of file SIRegisterInfo.h.
Referenced by getRegPressureSetLimit(), llvm::GCNMaxOccupancySchedStrategy::initialize(), and llvm::SIScheduleDAGMI::SIScheduleDAGMI().
| const TargetRegisterClass * SIRegisterInfo::getSubRegClass | ( | const TargetRegisterClass * | RC, |
| unsigned | SubIdx | ||
| ) | const |
RC for the given SubIdx. If SubIdx equals NoSubRegister, RC will be returned. Definition at line 1318 of file SIRegisterInfo.cpp.
References isSGPRClass(), and llvm_unreachable.
Referenced by foldVGPRCopyIntoRegSequence(), llvm::SIInstrInfo::isLegalRegOperand(), and isSGPRReg().
|
inline |
Definition at line 193 of file SIRegisterInfo.h.
References getRegClassForReg(), and isVGPR().
Referenced by getRegPressureSetLimit(), llvm::GCNMaxOccupancySchedStrategy::initialize(), and llvm::SIScheduleDAGMI::SIScheduleDAGMI().
| bool SIRegisterInfo::hasVGPRs | ( | const TargetRegisterClass * | RC | ) | const |
Definition at line 1258 of file SIRegisterInfo.cpp.
References llvm_unreachable, and Size.
Referenced by findSingleRegDef(), findSRegBaseAndIndex(), hasVGPROperands(), hoistAndMergeSGPRInits(), isSGPRClass(), isSGPRReg(), isSGPRToVGPRCopy(), isVGPR(), isVGPRToSGPRCopy(), llvm::SIInstrInfo::loadRegFromStackSlot(), phiHasVGPROperands(), llvm::SIInstrInfo::storeRegToStackSlot(), and llvm::SIInstrInfo::verifyInstruction().
|
override |
Definition at line 375 of file SIRegisterInfo.cpp.
References getMUBUFInstrOffset(), and llvm::SIInstrInfo::isMUBUF().
Referenced by getCSRFirstUseCost().
|
inline |
Definition at line 132 of file SIRegisterInfo.h.
References hasVGPRs().
Referenced by buildEXP(), llvm::SIInstrInfo::canInsertSelect(), llvm::SIInstrInfo::copyPhysReg(), llvm::SIInstrInfo::FoldImmediate(), foldVGPRCopyIntoRegSequence(), llvm::SIInstrInfo::getMovOpcode(), llvm::AMDGPURegisterBankInfo::getRegBankFromRegClass(), getSubRegClass(), hoistAndMergeSGPRInits(), isEqual(), isSGPRClassID(), isSGPRReg(), isSGPRToVGPRCopy(), isVGPRToSGPRCopy(), llvm::SIInstrInfo::loadRegFromStackSlot(), llvm::SIInstrInfo::materializeImmediate(), restoreSGPR(), setM0ToIndexFromSGPR(), spillSGPR(), llvm::SIInstrInfo::storeRegToStackSlot(), stripExtractLoElt(), and llvm::SIInstrInfo::usesConstantBus().
Definition at line 137 of file SIRegisterInfo.h.
References getRegClass(), and isSGPRClass().
Definition at line 199 of file SIRegisterInfo.h.
References llvm::BitVector::test().
Referenced by SIRegisterInfo().
|
inline |
Definition at line 141 of file SIRegisterInfo.h.
References getEquivalentSGPRClass(), getEquivalentVGPRClass(), getPhysRegClass(), llvm::MachineRegisterInfo::getRegClass(), getSubRegClass(), hasVGPRs(), isSGPRClass(), llvm::TargetRegisterInfo::isVirtualRegister(), and shouldRewriteCopySrc().
Referenced by addRegsToSet(), llvm::SIInstrInfo::convertToThreeAddress(), findSingleRegDef(), findSRegBaseAndIndex(), llvm::SITargetLowering::isSDNodeSourceOfDivergence(), llvm::SIInstrInfo::isVGPRCopy(), and tryConstantFoldOp().
| bool SIRegisterInfo::isVGPR | ( | const MachineRegisterInfo & | MRI, |
| unsigned | Reg | ||
| ) | const |
Definition at line 1508 of file SIRegisterInfo.cpp.
References assert(), getRegClassForReg(), and hasVGPRs().
Referenced by addRegsToSet(), llvm::SIInstrInfo::canShrink(), findSingleRegDef(), llvm::SIInstrInfo::FoldImmediate(), getVGPRPressureSet(), matchSwap(), and tryAddToFoldList().
Definition at line 202 of file SIRegisterInfo.h.
References findReachingDef(), getConstrainedRegClassForOperand(), getRegPressureLimit(), getRegPressureSetLimit(), getRegSplitParts(), getRegUnitPressureSets(), getReturnAddressReg(), shouldCoalesce(), SubReg, and llvm::BitVector::test().
Referenced by SIRegisterInfo().
|
override |
Definition at line 303 of file SIRegisterInfo.cpp.
References llvm::MachineBasicBlock::begin(), llvm::BuildMI(), llvm::MachineRegisterInfo::createVirtualRegister(), llvm::MachineBasicBlock::end(), llvm::MDNode::get(), llvm::GCNSubtarget::getInstrInfo(), llvm::MachineBasicBlock::getParent(), llvm::MachineFunction::getRegInfo(), llvm::MachineFunction::getSubtarget(), llvm::MipsISD::Ins, llvm::RegState::Kill, MRI, and TII.
Referenced by getCSRFirstUseCost().
|
override |
Definition at line 294 of file SIRegisterInfo.cpp.
References getMUBUFInstrOffset(), and llvm::MachineInstr::mayLoadOrStore().
Referenced by getCSRFirstUseCost().
Definition at line 183 of file SIRegisterInfo.h.
References findUnusedRegister(), MRI, llvm::AMDGPU::OPERAND_SRC_FIRST, and llvm::AMDGPU::OPERAND_SRC_LAST.
Referenced by llvm::SIInstrInfo::isImmOperandLegal().
Definition at line 174 of file SIRegisterInfo.h.
References llvm::AMDGPU::OPERAND_REG_IMM_FIRST, and llvm::AMDGPU::OPERAND_REG_IMM_LAST.
Referenced by llvm::SIInstrInfo::isImmOperandLegal().
|
override |
Definition at line 253 of file SIRegisterInfo.cpp.
References llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::getInfo(), llvm::MachineFunction::getSubtarget(), and llvm::MachineFrameInfo::hasStackObjects().
Referenced by getCSRFirstUseCost().
|
override |
Definition at line 242 of file SIRegisterInfo.cpp.
References llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::getInfo(), llvm::MachineFrameInfo::hasStackObjects(), Info, and llvm::AMDGPUMachineFunction::isEntryFunction().
Referenced by getCSRFirstUseCost().
|
override |
Definition at line 231 of file SIRegisterInfo.cpp.
References llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::getInfo(), llvm::MachineFrameInfo::hasCalls(), llvm::MachineFrameInfo::hasStackObjects(), Info, and llvm::AMDGPUMachineFunction::isEntryFunction().
Referenced by getCSRFirstUseCost().
|
override |
Definition at line 263 of file SIRegisterInfo.cpp.
Referenced by getCSRFirstUseCost().
| unsigned SIRegisterInfo::reservedPrivateSegmentBufferReg | ( | const MachineFunction & | MF | ) | const |
Return the end register initially reserved for the scratch buffer in case spilling is needed.
Definition at line 109 of file SIRegisterInfo.cpp.
References llvm::alignDown(), llvm::GCNSubtarget::getMaxNumSGPRs(), llvm::MachineFunction::getSubtarget(), and llvm::ARM_MB::ST.
Referenced by getAllSGPRs(), reservePrivateMemoryRegs(), and spillSGPRToSMEM().
| unsigned SIRegisterInfo::reservedPrivateSegmentWaveByteOffsetReg | ( | const MachineFunction & | MF | ) | const |
Return the end register initially reserved for the scratch wave offset in case spilling is needed.
Definition at line 135 of file SIRegisterInfo.cpp.
References findPrivateSegmentWaveByteOffsetRegIndex(), llvm::GCNSubtarget::getMaxNumSGPRs(), llvm::MachineFunction::getSubtarget(), and llvm::ARM_MB::ST.
Referenced by getAllSGPRs(), reservePrivateMemoryRegs(), and spillSGPRToSMEM().
| unsigned SIRegisterInfo::reservedStackPtrOffsetReg | ( | const MachineFunction & | MF | ) | const |
Definition at line 142 of file SIRegisterInfo.cpp.
Referenced by llvm::SITargetLowering::finalizeLowering(), and spillSGPRToSMEM().
|
override |
Definition at line 338 of file SIRegisterInfo.cpp.
References assert(), llvm::MachineOperand::ChangeToRegister(), llvm::MachineOperand::getImm(), llvm::MachineFunction::getInfo(), llvm::GCNSubtarget::getInstrInfo(), llvm::MachineBasicBlock::getParent(), llvm::MachineInstr::getParent(), llvm::MachineFunction::getSubtarget(), llvm::MachineOperand::isFI(), llvm_unreachable, llvm::MachineInstr::operands(), and TII.
Referenced by getCSRFirstUseCost().
| bool SIRegisterInfo::restoreSGPR | ( | MachineBasicBlock::iterator | MI, |
| int | FI, | ||
| RegScavenger * | RS, | ||
| bool | OnlyToVGPR = false |
||
| ) | const |
Definition at line 821 of file SIRegisterInfo.cpp.
References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addMemOperand(), llvm::MachineInstrBuilder::addReg(), llvm::AMDGPU::HSAMD::Kernel::Arg::Key::Align, assert(), llvm::BuildMI(), llvm::MachineRegisterInfo::createVirtualRegister(), llvm::ArrayRef< T >::empty(), llvm::MDNode::get(), llvm::MachinePointerInfo::getFixedStack(), llvm::MachineFunction::getFrameInfo(), llvm::SIMachineFunctionInfo::getFrameOffsetReg(), llvm::MachineFunction::getInfo(), llvm::GCNSubtarget::getInstrInfo(), llvm::MachineFunction::getMachineMemOperand(), llvm::MachineFrameInfo::getObjectAlignment(), llvm::MachineFrameInfo::getObjectOffset(), getPhysRegClass(), llvm::MachineFunction::getRegInfo(), getRegSplitParts(), llvm::SIMachineFunctionInfo::getScratchRSrcReg(), llvm::SIMachineFunctionInfo::getSGPRToVGPRSpills(), getSpillEltSize(), llvm::MachineFunction::getSubtarget(), llvm::AMDGPUSubtarget::getWavefrontSize(), llvm::RegState::ImplicitDefine, llvm::RegScavenger::isRegUsed(), isSGPRClass(), llvm::RegState::Kill, llvm::SIMachineFunctionInfo::SpilledReg::Lane, llvm::MinAlign(), llvm::MachineMemOperand::MOLoad, MRI, llvm::ArrayRef< T >::size(), spillSGPRToSMEM(), llvm::ARM_MB::ST, SubReg, TII, and llvm::SIMachineFunctionInfo::SpilledReg::VGPR.
Referenced by eliminateFrameIndex(), eliminateSGPRToVGPRSpillFrameIndex(), and getCSRFirstUseCost().
|
override |
Definition at line 1515 of file SIRegisterInfo.cpp.
Referenced by isVGPRPressureSet().
|
override |
Definition at line 1358 of file SIRegisterInfo.cpp.
Referenced by isSGPRReg().
| bool SIRegisterInfo::spillSGPR | ( | MachineBasicBlock::iterator | MI, |
| int | FI, | ||
| RegScavenger * | RS, | ||
| bool | OnlyToVGPR = false |
||
| ) | const |
If OnlyToVGPR is true, this will only succeed if this.
Definition at line 643 of file SIRegisterInfo.cpp.
References llvm::MachineInstrBuilder::addFrameIndex(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addMemOperand(), llvm::MachineInstrBuilder::addReg(), llvm::SIMachineFunctionInfo::addToSpilledSGPRs(), llvm::AMDGPU::HSAMD::Kernel::Arg::Key::Align, assert(), llvm::BuildMI(), llvm::MachineRegisterInfo::createVirtualRegister(), llvm::ArrayRef< T >::empty(), llvm::MachineFunction::front(), llvm::MDNode::get(), llvm::MachinePointerInfo::getFixedStack(), llvm::MachineFunction::getFrameInfo(), llvm::SIMachineFunctionInfo::getFrameOffsetReg(), llvm::MachineFunction::getInfo(), llvm::GCNSubtarget::getInstrInfo(), llvm::getKillRegState(), llvm::MachineFunction::getMachineMemOperand(), llvm::MachineFrameInfo::getObjectAlignment(), llvm::MachineFrameInfo::getObjectOffset(), llvm::MachineBasicBlock::getParent(), getPhysRegClass(), llvm::MachineFunction::getRegInfo(), getRegSplitParts(), llvm::SIMachineFunctionInfo::getScratchRSrcReg(), llvm::SIMachineFunctionInfo::getScratchWaveOffsetReg(), llvm::SIMachineFunctionInfo::getSGPRToVGPRSpills(), getSpillEltSize(), llvm::SIMachineFunctionInfo::getStackPtrOffsetReg(), llvm::MachineFunction::getSubtarget(), llvm::AMDGPUSubtarget::getWavefrontSize(), llvm::RegState::Implicit, llvm::RegScavenger::isRegUsed(), isSGPRClass(), llvm::RegState::Kill, llvm::SIMachineFunctionInfo::SpilledReg::Lane, llvm::MinAlign(), llvm::MachineMemOperand::MOStore, MRI, llvm::ArrayRef< T >::size(), spillSGPRToSMEM(), llvm::ARM_MB::ST, SubReg, TII, llvm::RegState::Undef, and llvm::SIMachineFunctionInfo::SpilledReg::VGPR.
Referenced by eliminateFrameIndex(), eliminateSGPRToVGPRSpillFrameIndex(), and getCSRFirstUseCost().
|
inline |
Definition at line 47 of file SIRegisterInfo.h.
References getCalleeSavedRegs(), getCalleeSavedRegsViaCopy(), getCallPreservedMask(), getReservedRegs(), reservedPrivateSegmentBufferReg(), reservedPrivateSegmentWaveByteOffsetReg(), and reservedStackPtrOffsetReg().
Referenced by restoreSGPR(), and spillSGPR().
|
inline |
Definition at line 43 of file SIRegisterInfo.h.
Referenced by llvm::SIFrameLowering::processFunctionBeforeFrameFinalized().
|
override |
Definition at line 269 of file SIRegisterInfo.cpp.
Referenced by getCSRFirstUseCost().
1.8.13