LLVM
15.0.0git
|
This class keeps track of the SPI_SP_INPUT_ADDR config register, which tells the hardware which interpolation parameters to load. More...
#include "Target/AMDGPU/SIMachineFunctionInfo.h"
Classes | |
struct | SGPRSpillVGPR |
struct | SpilledReg |
struct | VGPRSpillToAGPR |
Public Attributes | |
SmallSetVector< Register, 8 > | WWMReservedRegs |
SmallVector< int, 8 > | WWMReservedFrameIndexes |
Track stack slots used for save/restore of reserved WWM VGPRs in the prolog/epilog. More... | |
Register | SGPRForFPSaveRestoreCopy |
If this is set, an SGPR used for save/restore of the register used for the frame pointer. More... | |
Optional< int > | FramePointerSaveIndex |
Register | SGPRForBPSaveRestoreCopy |
If this is set, an SGPR used for save/restore of the register used for the base pointer. More... | |
Optional< int > | BasePointerSaveIndex |
Friends | |
class | GCNTargetMachine |
Additional Inherited Members | |
![]() | |
template<typename Ty > | |
static Ty * | create (BumpPtrAllocator &Allocator, MachineFunction &MF) |
Factory function: default behavior is to call new using the supplied allocator. More... | |
![]() | |
uint64_t | ExplicitKernArgSize = 0 |
Align | MaxKernArgAlign |
uint32_t | LDSSize = 0 |
Number of bytes in the LDS that are being used. More... | |
uint32_t | GDSSize = 0 |
uint32_t | StaticLDSSize = 0 |
Number of bytes in the LDS allocated statically. More... | |
uint32_t | StaticGDSSize = 0 |
Align | DynLDSAlign |
Align for dynamic shared memory if any. More... | |
AMDGPU::SIModeRegisterDefaults | Mode |
bool | IsEntryFunction = false |
bool | IsModuleEntryFunction = false |
bool | NoSignedZerosFPMath = false |
bool | MemoryBound = false |
bool | WaveLimiter = false |
This class keeps track of the SPI_SP_INPUT_ADDR config register, which tells the hardware which interpolation parameters to load.
Definition at line 348 of file SIMachineFunctionInfo.h.
SIMachineFunctionInfo::SIMachineFunctionInfo | ( | const MachineFunction & | MF | ) |
Definition at line 32 of file SIMachineFunctionInfo.cpp.
References llvm::CallingConv::AMDGPU_Gfx, llvm::CallingConv::AMDGPU_GS, llvm::CallingConv::AMDGPU_HS, llvm::CallingConv::AMDGPU_KERNEL, llvm::CallingConv::AMDGPU_PS, llvm::ArgDescriptor::createRegister(), F, llvm::AMDGPUArgumentUsageInfo::FixedABIFunctionInfo, llvm::MachineFunction::getFunction(), llvm::AMDGPU::getInitialPSInputAddr(), llvm::AMDGPUMachineFunction::getLDSSize(), llvm::MachineFunction::getSubtarget(), llvm::AMDGPUSubtarget::GFX9, HasCalls, llvm::AMDGPUMachineFunction::isEntryFunction(), llvm::AMDGPU::isGraphics(), llvm::max(), llvm::AMDGPUMachineFunction::MaxKernArgAlign, mayUseAGPRs(), S, llvm::CallingConv::SPIR_KERNEL, and llvm::ARM_MB::ST.
Register SIMachineFunctionInfo::addDispatchID | ( | const SIRegisterInfo & | TRI | ) |
Definition at line 233 of file SIMachineFunctionInfo.cpp.
References llvm::ArgDescriptor::createRegister(), llvm::TargetRegisterInfo::getMatchingSuperReg(), and TRI.
Register SIMachineFunctionInfo::addDispatchPtr | ( | const SIRegisterInfo & | TRI | ) |
Definition at line 211 of file SIMachineFunctionInfo.cpp.
References llvm::ArgDescriptor::createRegister(), llvm::TargetRegisterInfo::getMatchingSuperReg(), and TRI.
Register SIMachineFunctionInfo::addFlatScratchInit | ( | const SIRegisterInfo & | TRI | ) |
Definition at line 240 of file SIMachineFunctionInfo.cpp.
References llvm::ArgDescriptor::createRegister(), llvm::TargetRegisterInfo::getMatchingSuperReg(), and TRI.
Register SIMachineFunctionInfo::addImplicitBufferPtr | ( | const SIRegisterInfo & | TRI | ) |
Definition at line 247 of file SIMachineFunctionInfo.cpp.
References llvm::ArgDescriptor::createRegister(), llvm::TargetRegisterInfo::getMatchingSuperReg(), and TRI.
Register SIMachineFunctionInfo::addKernargSegmentPtr | ( | const SIRegisterInfo & | TRI | ) |
Definition at line 225 of file SIMachineFunctionInfo.cpp.
References llvm::ArgDescriptor::createRegister(), llvm::TargetRegisterInfo::getMatchingSuperReg(), and TRI.
Register SIMachineFunctionInfo::addPrivateSegmentBuffer | ( | const SIRegisterInfo & | TRI | ) |
Definition at line 202 of file SIMachineFunctionInfo.cpp.
References llvm::ArgDescriptor::createRegister(), llvm::TargetRegisterInfo::getMatchingSuperReg(), and TRI.
|
inline |
Definition at line 652 of file SIMachineFunctionInfo.h.
References llvm::ArgDescriptor::createRegister().
Register SIMachineFunctionInfo::addQueuePtr | ( | const SIRegisterInfo & | TRI | ) |
Definition at line 218 of file SIMachineFunctionInfo.cpp.
References llvm::ArgDescriptor::createRegister(), llvm::TargetRegisterInfo::getMatchingSuperReg(), and TRI.
|
inline |
Definition at line 848 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIRegisterInfo::spillEmergencySGPR(), and llvm::SIRegisterInfo::spillSGPR().
|
inline |
Definition at line 852 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIRegisterInfo::buildVGPRSpillLoadStore(), and llvm::SIRegisterInfo::eliminateFrameIndex().
|
inline |
Definition at line 615 of file SIMachineFunctionInfo.h.
References llvm::ArgDescriptor::createRegister().
|
inline |
Definition at line 621 of file SIMachineFunctionInfo.h.
References llvm::ArgDescriptor::createRegister().
|
inline |
Definition at line 627 of file SIMachineFunctionInfo.h.
References llvm::ArgDescriptor::createRegister().
|
inline |
Definition at line 633 of file SIMachineFunctionInfo.h.
References llvm::ArgDescriptor::createRegister().
bool SIMachineFunctionInfo::allocateSGPRSpillToVGPR | ( | MachineFunction & | MF, |
int | FI | ||
) |
Reserve a slice of a VGPR to support spilling for FrameIndex FI
.
Definition at line 276 of file SIMachineFunctionInfo.cpp.
References Align, assert(), BB, llvm::MachineFrameInfo::CreateSpillStackObject(), llvm::LLVMContext::diagnose(), llvm::DS_Error, llvm::Function::getContext(), llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::getFunction(), llvm::MachineFrameInfo::getObjectSize(), llvm::MachineFunction::getRegInfo(), llvm::MachineFunction::getSubtarget(), I, llvm::AMDGPUMachineFunction::isEntryFunction(), MRI, llvm::ARM_MB::ST, and TRI.
Referenced by getVGPRSpillLaneOrTempRegister().
bool SIMachineFunctionInfo::allocateVGPRSpillToAGPR | ( | MachineFunction & | MF, |
int | FI, | ||
bool | isAGPRtoVGPR | ||
) |
Reserve AGPRs or VGPRs to support spilling for FrameIndex FI
.
Either AGPR is spilled to VGPR to vice versa. Returns true if a FI
can be eliminated completely.
Definition at line 350 of file SIMachineFunctionInfo.cpp.
References assert(), llvm::find_if(), llvm::Function::getCallingConv(), llvm::TargetRegisterInfo::getCallPreservedMask(), llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::getFunction(), llvm::MCRegisterInfo::getNumRegs(), llvm::MachineFrameInfo::getObjectSize(), llvm::MachineFunction::getRegInfo(), llvm::TargetRegisterClass::getRegisters(), llvm::MachineFunction::getSubtarget(), I, llvm::MachineFrameInfo::isSpillSlotObjectIndex(), MRI, llvm::BitVector::push_back(), llvm::BitVector::resize(), llvm::BitVector::set(), llvm::BitVector::setBitsInMask(), llvm::ARM_MB::ST, and TRI.
Referenced by llvm::SIFrameLowering::processFunctionBeforeFrameFinalized().
void SIMachineFunctionInfo::allocateWWMReservedSpillSlots | ( | MachineFrameInfo & | MFI, |
const SIRegisterInfo & | TRI | ||
) |
Definition at line 453 of file SIMachineFunctionInfo.cpp.
References assert(), llvm::MachineFrameInfo::CreateSpillStackObject(), llvm::TargetRegisterInfo::getSpillAlign(), llvm::TargetRegisterInfo::getSpillSize(), I, llvm::SmallVectorImpl< T >::resize(), TRI, WWMReservedFrameIndexes, and WWMReservedRegs.
Referenced by llvm::SIFrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 751 of file SIMachineFunctionInfo.h.
Definition at line 564 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIRegisterInfo::getReservedRegs(), and llvm::SIFrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 727 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPUCallLowering::passSpecialInputs().
|
inline |
Definition at line 731 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 932 of file SIMachineFunctionInfo.h.
References TII.
Referenced by llvm::SITargetLowering::getTgtMemIntrinsic(), and llvm::AMDGPUMIRFormatter::parseCustomPseudoSourceValue().
|
inline |
Definition at line 597 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPUCallLowering::areCalleeOutgoingArgsTailCallable(), and llvm::SITargetLowering::isEligibleForTailCallOptimization().
|
inline |
Definition at line 886 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 778 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::assignCalleeSavedSpillSlots(), llvm::SIFrameLowering::determineCalleeSavesSGPR(), llvm::SIFrameLowering::emitEntryFunctionPrologue(), llvm::SIFrameLowering::emitEpilogue(), llvm::SIFrameLowering::emitPrologue(), llvm::SIRegisterInfo::getFrameRegister(), llvm::SIRegisterInfo::getReservedRegs(), and llvm::SIRegisterInfo::spillSGPR().
|
inline |
Definition at line 745 of file SIMachineFunctionInfo.h.
Referenced by buildGitPtr().
Register SIMachineFunctionInfo::getGITPtrLoReg | ( | const MachineFunction & | MF | ) | const |
Definition at line 492 of file SIMachineFunctionInfo.cpp.
References llvm::CallingConv::AMDGPU_GS, llvm::CallingConv::AMDGPU_HS, llvm::Function::getCallingConv(), llvm::MachineFunction::getFunction(), llvm::MachineFunction::getSubtarget(), and llvm::ARM_MB::ST.
Referenced by buildGitPtr(), and llvm::SIFrameLowering::emitEntryFunctionPrologue().
|
inline |
Definition at line 946 of file SIMachineFunctionInfo.h.
References TII.
Referenced by llvm::SITargetLowering::getTgtMemIntrinsic(), and llvm::AMDGPUMIRFormatter::parseCustomPseudoSourceValue().
|
inline |
Definition at line 939 of file SIMachineFunctionInfo.h.
References TII.
Referenced by llvm::SITargetLowering::getTgtMemIntrinsic(), and llvm::AMDGPUMIRFormatter::parseCustomPseudoSourceValue().
|
inline |
Definition at line 804 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 896 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 912 of file SIMachineFunctionInfo.h.
Referenced by limitOccupancy().
|
inline |
Definition at line 959 of file SIMachineFunctionInfo.h.
References llvm::AMDGPUMachineFunction::isMemoryBound(), and llvm::AMDGPUMachineFunction::needsWaveLimiter().
Referenced by llvm::GCNScheduleDAGMILive::schedule().
|
inline |
Definition at line 891 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 907 of file SIMachineFunctionInfo.h.
Referenced by llvm::GCNScheduleDAGMILive::schedule().
|
inline |
Definition at line 759 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::emitEntryFunctionPrologue(), and llvm::GCNSubtarget::getMaxNumSGPRs().
|
inline |
Definition at line 840 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 844 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 755 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 955 of file SIMachineFunctionInfo.h.
Referenced by llvm::GCNMaxOccupancySchedStrategy::initialize().
Definition at line 595 of file SIMachineFunctionInfo.h.
Referenced by llvm::yaml::SIMachineFunctionInfo::SIMachineFunctionInfo().
|
inline |
Definition at line 740 of file SIMachineFunctionInfo.h.
References Arg.
Referenced by llvm::SIFrameLowering::emitEntryFunctionPrologue().
|
inline |
Definition at line 736 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPULegalizerInfo::legalizeWorkitemIDIntrinsic(), and llvm::AMDGPULegalizerInfo::loadInputValue().
|
inline |
Definition at line 763 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 856 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 860 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 800 of file SIMachineFunctionInfo.h.
int SIMachineFunctionInfo::getScavengeFI | ( | MachineFrameInfo & | MFI, |
const SIRegisterInfo & | TRI | ||
) |
Definition at line 467 of file SIMachineFunctionInfo.cpp.
References llvm::MachineFrameInfo::CreateFixedObject(), llvm::MachineFrameInfo::CreateStackObject(), llvm::TargetRegisterInfo::getSpillAlign(), llvm::TargetRegisterInfo::getSpillSize(), llvm::AMDGPUMachineFunction::isEntryFunction(), and TRI.
Referenced by llvm::SGPRSpillBuilder::prepare(), and llvm::SIFrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Returns the physical register reserved for use as the resource descriptor for scratch accesses.
Definition at line 769 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIRegisterInfo::buildSpillLoadStore(), llvm::SIRegisterInfo::getReservedRegs(), and llvm::AMDGPUCallLowering::handleImplicitCallArguments().
|
inline |
Definition at line 562 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::determineCalleeSaves(), llvm::SIFrameLowering::emitEpilogue(), llvm::SIFrameLowering::emitPrologue(), and llvm::SIRegisterInfo::getReservedRegs().
|
inline |
Definition at line 556 of file SIMachineFunctionInfo.h.
References llvm::DenseMapBase< DenseMap< KeyT, ValueT, DenseMapInfo< KeyT >, llvm::detail::DenseMapPair< KeyT, ValueT > >, KeyT, ValueT, DenseMapInfo< KeyT >, llvm::detail::DenseMapPair< KeyT, ValueT > >::end(), llvm::DenseMapBase< DenseMap< KeyT, ValueT, DenseMapInfo< KeyT >, llvm::detail::DenseMapPair< KeyT, ValueT > >, KeyT, ValueT, DenseMapInfo< KeyT >, llvm::detail::DenseMapPair< KeyT, ValueT > >::find(), llvm::ISD::FrameIndex, I, and llvm::makeArrayRef().
Referenced by llvm::SIFrameLowering::emitEpilogue(), llvm::SIFrameLowering::emitPrologue(), getVGPRSpillLaneOrTempRegister(), llvm::SIRegisterInfo::restoreSGPR(), and llvm::SIRegisterInfo::spillSGPR().
|
inline |
Definition at line 796 of file SIMachineFunctionInfo.h.
Referenced by buildEpilogRestore(), buildPrologSpill(), llvm::SIRegisterInfo::buildSpillLoadStore(), llvm::SIFrameLowering::determineCalleeSavesSGPR(), llvm::SIFrameLowering::eliminateCallFramePseudoInstr(), llvm::SIRegisterInfo::eliminateFrameIndex(), llvm::SIFrameLowering::emitEntryFunctionPrologue(), llvm::SIFrameLowering::emitEpilogue(), llvm::SIFrameLowering::emitPrologue(), llvm::SIRegisterInfo::getFrameRegister(), llvm::SIRegisterInfo::getReservedRegs(), llvm::SIInstrInfo::loadRegFromStackSlot(), llvm::SIRegisterInfo::spillSGPR(), and llvm::SIInstrInfo::storeRegToStackSlot().
|
inline |
Definition at line 568 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIRegisterInfo::getReservedRegs(), and llvm::SIFrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 572 of file SIMachineFunctionInfo.h.
References llvm::DenseMapBase< DenseMap< KeyT, ValueT, DenseMapInfo< KeyT >, llvm::detail::DenseMapPair< KeyT, ValueT > >, KeyT, ValueT, DenseMapInfo< KeyT >, llvm::detail::DenseMapPair< KeyT, ValueT > >::end(), llvm::DenseMapBase< DenseMap< KeyT, ValueT, DenseMapInfo< KeyT >, llvm::detail::DenseMapPair< KeyT, ValueT > >, KeyT, ValueT, DenseMapInfo< KeyT >, llvm::detail::DenseMapPair< KeyT, ValueT > >::find(), llvm::ISD::FrameIndex, and I.
Referenced by spillVGPRtoAGPR().
|
inline |
Definition at line 902 of file SIMachineFunctionInfo.h.
Referenced by llvm::GCNSubtarget::getMaxNumSGPRs(), and llvm::GCNSubtarget::getMaxNumVGPRs().
|
inline |
Dim's
work group ID. Definition at line 917 of file SIMachineFunctionInfo.h.
References assert(), hasWorkGroupIDX(), hasWorkGroupIDY(), hasWorkGroupIDZ(), and llvm_unreachable.
|
inline |
Definition at line 679 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 667 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 683 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::emitEntryFunctionPrologue(), and llvm::GCNSubtarget::getReservedNumSGPRs().
|
inline |
Definition at line 719 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 723 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 675 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 824 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 663 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 703 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 671 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPU::HSAMD::MetadataStreamerV5::emitHiddenKernelArgs().
|
inline |
Definition at line 808 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::determineCalleeSavesSGPR().
|
inline |
Definition at line 816 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 687 of file SIMachineFunctionInfo.h.
Referenced by getWorkGroupIDSGPR().
|
inline |
Definition at line 691 of file SIMachineFunctionInfo.h.
Referenced by getWorkGroupIDSGPR().
|
inline |
Definition at line 695 of file SIMachineFunctionInfo.h.
Referenced by getWorkGroupIDSGPR().
|
inline |
Definition at line 699 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 707 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 711 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 715 of file SIMachineFunctionInfo.h.
bool SIMachineFunctionInfo::haveFreeLanesForSGPRSpill | ( | const MachineFunction & | MF, |
unsigned | NumLane | ||
) | const |
returns
true if NumLanes
slots are available in VGPRs already used for SGPR spilling.
Definition at line 268 of file SIMachineFunctionInfo.cpp.
References llvm::MachineFunction::getSubtarget(), and llvm::ARM_MB::ST.
Referenced by getVGPRSpillLaneOrTempRegister().
|
inline |
Definition at line 972 of file SIMachineFunctionInfo.h.
References limitOccupancy().
bool SIMachineFunctionInfo::initializeBaseYamlFields | ( | const yaml::SIMachineFunctionInfo & | YamlMFI, |
const MachineFunction & | MF, | ||
PerFunctionMIParsingState & | PFS, | ||
SMDiagnostic & | Error, | ||
SMRange & | SourceRange | ||
) |
Definition at line 606 of file SIMachineFunctionInfo.cpp.
References llvm::assumeAligned(), llvm::yaml::SIMachineFunctionInfo::BytesInStackArgArea, llvm::SourceMgr::DK_Error, llvm::yaml::SIMachineFunctionInfo::DynLDSAlign, llvm::yaml::SIMachineFunctionInfo::ExplicitKernArgSize, llvm::yaml::SIMachineFunctionInfo::GDSSize, llvm::MemoryBuffer::getBufferIdentifier(), llvm::MachineFunction::getFrameInfo(), llvm::SourceMgr::getMainFileID(), llvm::SourceMgr::getMemoryBuffer(), llvm::yaml::SIMachineFunctionInfo::HasSpilledSGPRs, llvm::yaml::SIMachineFunctionInfo::HasSpilledVGPRs, llvm::yaml::SIMachineFunctionInfo::HighBitsOf32BitAddress, llvm::yaml::SIMachineFunctionInfo::IsEntryFunction, llvm::yaml::SIMachineFunctionInfo::LDSSize, llvm::yaml::SIMachineFunctionInfo::MaxKernArgAlign, llvm::yaml::SIMachineFunctionInfo::MemoryBound, llvm::None, llvm::yaml::SIMachineFunctionInfo::NoSignedZerosFPMath, llvm::yaml::SIMachineFunctionInfo::Occupancy, llvm::yaml::SIMachineFunctionInfo::ReturnsVoid, llvm::yaml::SIMachineFunctionInfo::ScavengeFI, llvm::PerFunctionMIParsingState::SM, llvm::toString(), and llvm::yaml::SIMachineFunctionInfo::WaveLimiter.
Referenced by llvm::GCNTargetMachine::parseMachineFunctionInfo().
Definition at line 254 of file SIMachineFunctionInfo.cpp.
References I.
|
inline |
Definition at line 864 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 832 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::emitEpilogue().
void SIMachineFunctionInfo::limitOccupancy | ( | const MachineFunction & | MF | ) |
Definition at line 195 of file SIMachineFunctionInfo.cpp.
References llvm::MachineFunction::getFunction(), llvm::AMDGPUMachineFunction::getLDSSize(), getMaxWavesPerEU(), llvm::MachineFunction::getSubtarget(), and llvm::ARM_MB::ST.
Referenced by increaseOccupancy(), and llvm::GCNScheduleDAGMILive::schedule().
|
inline |
Definition at line 967 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 868 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 872 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 978 of file SIMachineFunctionInfo.h.
bool SIMachineFunctionInfo::mayUseAGPRs | ( | const MachineFunction & | MF | ) | const |
Definition at line 645 of file SIMachineFunctionInfo.cpp.
References BB, Callee, llvm::MachineFunction::getFunction(), I, llvm::Intrinsic::not_intrinsic, and llvm::InlineAsm::ParseConstraints().
Referenced by SIMachineFunctionInfo().
bool SIMachineFunctionInfo::removeDeadFrameIndices | ( | MachineFrameInfo & | MFI, |
bool | ResetSGPRSpillStackIDs | ||
) |
If ResetSGPRSpillStackIDs
is true, reset the stack ID from sgpr-spill to the default stack.
Definition at line 415 of file SIMachineFunctionInfo.cpp.
References BasePointerSaveIndex, llvm::TargetStackID::Default, llvm::numbers::e, FramePointerSaveIndex, llvm::MachineFrameInfo::getObjectIndexBegin(), llvm::MachineFrameInfo::getObjectIndexEnd(), llvm::MachineFrameInfo::getStackID(), i, llvm::make_early_inc_range(), llvm::MachineFrameInfo::RemoveStackObject(), llvm::MachineFrameInfo::setStackID(), and llvm::TargetStackID::SGPRSpill.
Referenced by llvm::SIFrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 552 of file SIMachineFunctionInfo.h.
References WWMReservedRegs.
Referenced by llvm::GCNTargetMachine::parseMachineFunctionInfo().
|
inline |
Definition at line 876 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPUCallLowering::lowerReturn().
|
inline |
Definition at line 601 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 782 of file SIMachineFunctionInfo.h.
References assert().
|
inline |
Definition at line 828 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 812 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIInstrInfo::loadRegFromStackSlot(), and llvm::SIInstrInfo::storeRegToStackSlot().
|
inline |
Definition at line 820 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIInstrInfo::storeRegToStackSlot().
|
inline |
Definition at line 880 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPUCallLowering::lowerReturn().
|
inline |
Definition at line 836 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::emitPrologue().
|
inline |
Definition at line 659 of file SIMachineFunctionInfo.h.
References llvm::ArgDescriptor::createRegister().
|
inline |
Definition at line 773 of file SIMachineFunctionInfo.h.
References assert().
|
inline |
Definition at line 787 of file SIMachineFunctionInfo.h.
References assert().
|
inline |
Definition at line 527 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::processFunctionBeforeFrameIndicesReplaced().
|
inline |
Definition at line 578 of file SIMachineFunctionInfo.h.
References llvm::DenseMapBase< DenseMap< KeyT, ValueT, DenseMapInfo< KeyT >, llvm::detail::DenseMapPair< KeyT, ValueT > >, KeyT, ValueT, DenseMapInfo< KeyT >, llvm::detail::DenseMapPair< KeyT, ValueT > >::end(), llvm::DenseMapBase< DenseMap< KeyT, ValueT, DenseMapInfo< KeyT >, llvm::detail::DenseMapPair< KeyT, ValueT > >, KeyT, ValueT, DenseMapInfo< KeyT >, llvm::detail::DenseMapPair< KeyT, ValueT > >::find(), llvm::ISD::FrameIndex, and I.
Referenced by llvm::SIFrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 640 of file SIMachineFunctionInfo.h.
References Arg.
|
inline |
Definition at line 644 of file SIMachineFunctionInfo.h.
References Arg.
|
inline |
Definition at line 648 of file SIMachineFunctionInfo.h.
References Arg.
bool SIMachineFunctionInfo::usesAGPRs | ( | const MachineFunction & | MF | ) | const |
Definition at line 677 of file SIMachineFunctionInfo.cpp.
References E, llvm::Function::getCallingConv(), llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::getFunction(), llvm::MachineRegisterInfo::getNumVirtRegs(), llvm::MachineRegisterInfo::getRegClassOrNull(), llvm::MachineFunction::getRegInfo(), llvm::MachineRegisterInfo::getType(), llvm::MachineFrameInfo::hasCalls(), I, llvm::Register::index2VirtReg(), llvm::SIRegisterInfo::isAGPRClass(), llvm::AMDGPU::isEntryFunctionCC(), llvm::MachineRegisterInfo::isPhysRegUsed(), llvm::LLT::isValid(), MRI, and llvm::MachineRegisterInfo::use_empty().
Referenced by llvm::SIRegisterInfo::getReservedRegs().
|
inline |
Definition at line 495 of file SIMachineFunctionInfo.h.
References assert(), WWMReservedFrameIndexes, WWMReservedRegs, and llvm::zip().
Referenced by llvm::SIFrameLowering::emitEpilogue(), and llvm::SIFrameLowering::emitPrologue().
|
friend |
Definition at line 349 of file SIMachineFunctionInfo.h.
Definition at line 540 of file SIMachineFunctionInfo.h.
Referenced by allSGPRSpillsAreDead(), llvm::SIFrameLowering::determineCalleeSaves(), llvm::SIFrameLowering::emitEpilogue(), llvm::SIFrameLowering::emitPrologue(), and removeDeadFrameIndices().
Definition at line 535 of file SIMachineFunctionInfo.h.
Referenced by allSGPRSpillsAreDead(), llvm::SIFrameLowering::determineCalleeSaves(), llvm::SIFrameLowering::emitEpilogue(), llvm::SIFrameLowering::emitPrologue(), and removeDeadFrameIndices().
Register llvm::SIMachineFunctionInfo::SGPRForBPSaveRestoreCopy |
If this is set, an SGPR used for save/restore of the register used for the base pointer.
Definition at line 539 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::assignCalleeSavedSpillSlots(), llvm::SIFrameLowering::determineCalleeSaves(), llvm::SIFrameLowering::emitEpilogue(), and llvm::SIFrameLowering::emitPrologue().
Register llvm::SIMachineFunctionInfo::SGPRForFPSaveRestoreCopy |
If this is set, an SGPR used for save/restore of the register used for the frame pointer.
Definition at line 534 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::assignCalleeSavedSpillSlots(), llvm::SIFrameLowering::determineCalleeSaves(), llvm::SIFrameLowering::emitEpilogue(), and llvm::SIFrameLowering::emitPrologue().
SmallVector<int, 8> llvm::SIMachineFunctionInfo::WWMReservedFrameIndexes |
Track stack slots used for save/restore of reserved WWM VGPRs in the prolog/epilog.
FIXME: This is temporary state only needed in PrologEpilogInserter, and doesn't really belong here. It does not require serialization
Definition at line 490 of file SIMachineFunctionInfo.h.
Referenced by allocateWWMReservedSpillSlots(), and wwmAllocation().
SmallSetVector<Register, 8> llvm::SIMachineFunctionInfo::WWMReservedRegs |
Definition at line 483 of file SIMachineFunctionInfo.h.
Referenced by allocateWWMReservedSpillSlots(), llvm::SIRegisterInfo::getReservedRegs(), reserveWWMRegister(), llvm::yaml::SIMachineFunctionInfo::SIMachineFunctionInfo(), and wwmAllocation().