LLVM 20.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 | VGPRSpillToAGPR |
Friends | |
class | GCNTargetMachine |
Additional Inherited Members | |
Static Public Member Functions inherited from llvm::AMDGPUMachineFunction | |
static std::optional< uint32_t > | getLDSKernelIdMetadata (const Function &F) |
static std::optional< uint32_t > | getLDSAbsoluteAddress (const GlobalValue &GV) |
Static Public Member Functions inherited from llvm::MachineFunctionInfo | |
template<typename FuncInfoTy , typename SubtargetTy = TargetSubtargetInfo> | |
static FuncInfoTy * | create (BumpPtrAllocator &Allocator, const Function &F, const SubtargetTy *STI) |
Factory function: default behavior is to call new using the supplied allocator. | |
template<typename Ty > | |
static Ty * | create (BumpPtrAllocator &Allocator, const Ty &MFI) |
Protected Attributes inherited from llvm::AMDGPUMachineFunction | |
uint64_t | ExplicitKernArgSize = 0 |
Align | MaxKernArgAlign |
uint32_t | LDSSize = 0 |
Number of bytes in the LDS that are being used. | |
uint32_t | GDSSize = 0 |
uint32_t | StaticLDSSize = 0 |
Number of bytes in the LDS allocated statically. | |
uint32_t | StaticGDSSize = 0 |
Align | DynLDSAlign |
Align for dynamic shared memory if any. | |
bool | UsesDynamicLDS = false |
bool | IsEntryFunction = false |
bool | IsModuleEntryFunction = false |
bool | IsChainFunction = 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 375 of file SIMachineFunctionInfo.h.
|
default |
SIMachineFunctionInfo::SIMachineFunctionInfo | ( | const Function & | F, |
const GCNSubtarget * | STI | ||
) |
Definition at line 37 of file SIMachineFunctionInfo.cpp.
References A, llvm::CallingConv::AMDGPU_CS, llvm::CallingConv::AMDGPU_Gfx, llvm::CallingConv::AMDGPU_GS, llvm::CallingConv::AMDGPU_HS, llvm::CallingConv::AMDGPU_KERNEL, llvm::CallingConv::AMDGPU_PS, assert(), CC, llvm::StringRef::consumeInteger(), llvm::ArgDescriptor::createRegister(), llvm::StringRef::empty(), F, llvm::AMDGPUArgumentUsageInfo::FixedABIFunctionInfo, llvm::AMDGPU::getInitialPSInputAddr(), llvm::AMDGPUMachineFunction::getLDSSize(), llvm::AMDGPUSubtarget::GFX9, llvm::AMDGPU::isChainCC(), llvm::AMDGPUMachineFunction::isEntryFunction(), llvm::AMDGPU::isGraphics(), llvm::AMDGPUMachineFunction::MaxKernArgAlign, mayUseAGPRs(), llvm::SmallVectorBase< Size_T >::size(), and llvm::CallingConv::SPIR_KERNEL.
Register SIMachineFunctionInfo::addDispatchID | ( | const SIRegisterInfo & | TRI | ) |
Definition at line 220 of file SIMachineFunctionInfo.cpp.
References llvm::ArgDescriptor::createRegister(), and TRI.
Register SIMachineFunctionInfo::addDispatchPtr | ( | const SIRegisterInfo & | TRI | ) |
Definition at line 198 of file SIMachineFunctionInfo.cpp.
References llvm::ArgDescriptor::createRegister(), and TRI.
Register SIMachineFunctionInfo::addFlatScratchInit | ( | const SIRegisterInfo & | TRI | ) |
Definition at line 227 of file SIMachineFunctionInfo.cpp.
References llvm::ArgDescriptor::createRegister(), and TRI.
Register SIMachineFunctionInfo::addImplicitBufferPtr | ( | const SIRegisterInfo & | TRI | ) |
Definition at line 240 of file SIMachineFunctionInfo.cpp.
References llvm::ArgDescriptor::createRegister(), and TRI.
Register SIMachineFunctionInfo::addKernargSegmentPtr | ( | const SIRegisterInfo & | TRI | ) |
Definition at line 212 of file SIMachineFunctionInfo.cpp.
References llvm::ArgDescriptor::createRegister(), and TRI.
Register SIMachineFunctionInfo::addLDSKernelId | ( | ) |
Definition at line 247 of file SIMachineFunctionInfo.cpp.
References llvm::ArgDescriptor::createRegister().
SmallVectorImpl< MCRegister > * SIMachineFunctionInfo::addPreloadedKernArg | ( | const SIRegisterInfo & | TRI, |
const TargetRegisterClass * | RC, | ||
unsigned | AllocSizeDWord, | ||
int | KernArgIdx, | ||
int | PaddingSGPRs | ||
) |
Definition at line 253 of file SIMachineFunctionInfo.cpp.
References llvm::GCNUserSGPRUsageInfo::allocKernargPreloadSGPRs(), assert(), I, and TRI.
Register SIMachineFunctionInfo::addPrivateSegmentBuffer | ( | const SIRegisterInfo & | TRI | ) |
Definition at line 189 of file SIMachineFunctionInfo.cpp.
References llvm::ArgDescriptor::createRegister(), and TRI.
Register SIMachineFunctionInfo::addPrivateSegmentSize | ( | const SIRegisterInfo & | TRI | ) |
Definition at line 234 of file SIMachineFunctionInfo.cpp.
References llvm::ArgDescriptor::createRegister().
|
inline |
Definition at line 810 of file SIMachineFunctionInfo.h.
References llvm::ArgDescriptor::createRegister().
Register SIMachineFunctionInfo::addQueuePtr | ( | const SIRegisterInfo & | TRI | ) |
Definition at line 205 of file SIMachineFunctionInfo.cpp.
References llvm::ArgDescriptor::createRegister(), and TRI.
|
inline |
Increment user SGPRs used for padding the argument list only.
Definition at line 764 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 608 of file SIMachineFunctionInfo.h.
References assert(), hasPrologEpilogSGPRSpillEntry(), llvm::SmallVectorImpl< T >::insert(), LHS, Reg, RHS, and llvm::upper_bound().
Referenced by getVGPRSpillLaneOrTempRegister().
|
inline |
Definition at line 986 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIRegisterInfo::spillEmergencySGPR(), and llvm::SIRegisterInfo::spillSGPR().
|
inline |
Definition at line 990 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIRegisterInfo::buildVGPRSpillLoadStore(), and llvm::SIRegisterInfo::eliminateFrameIndex().
|
inline |
Definition at line 771 of file SIMachineFunctionInfo.h.
References llvm::ArgDescriptor::createRegister().
|
inline |
Definition at line 777 of file SIMachineFunctionInfo.h.
References llvm::ArgDescriptor::createRegister().
|
inline |
Definition at line 783 of file SIMachineFunctionInfo.h.
References llvm::ArgDescriptor::createRegister().
|
inline |
Definition at line 789 of file SIMachineFunctionInfo.h.
References llvm::ArgDescriptor::createRegister().
bool SIMachineFunctionInfo::allocateSGPRSpillToVGPRLane | ( | MachineFunction & | MF, |
int | FI, | ||
bool | SpillToPhysVGPRLane = false , |
||
bool | IsPrologEpilog = false |
||
) |
Definition at line 398 of file SIMachineFunctionInfo.cpp.
References assert(), llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::getSubtarget(), I, and Size.
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 445 of file SIMachineFunctionInfo.cpp.
References assert(), llvm::SmallVectorTemplateCommon< T, typename >::end(), llvm::Function::getCallingConv(), llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::getFunction(), 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(), Size, and TRI.
Referenced by llvm::SIFrameLowering::processFunctionBeforeFrameFinalized().
void SIMachineFunctionInfo::allocateWWMSpill | ( | MachineFunction & | MF, |
Register | VGPR, | ||
uint64_t | Size = 4 , |
||
Align | Alignment = Align(4) |
||
) |
Definition at line 280 of file SIMachineFunctionInfo.cpp.
References llvm::MapVector< KeyT, ValueT, MapType, VectorType >::count(), llvm::MachineFrameInfo::CreateSpillStackObject(), llvm::MachineFunction::getFrameInfo(), llvm::MapVector< KeyT, ValueT, MapType, VectorType >::insert(), llvm::AMDGPUMachineFunction::isChainFunction(), llvm::SIRegisterInfo::isChainScratchRegister(), llvm::AMDGPUMachineFunction::isEntryFunction(), and Size.
Referenced by llvm::SIFrameLowering::determineCalleeSaves(), and llvm::SIFrameLowering::processFunctionBeforeFrameFinalized().
Definition at line 682 of file SIMachineFunctionInfo.h.
References Reg.
Referenced by llvm::SIInstrInfo::getLiveRangeSplitOpcode(), getVectorRegSpillRestoreOpcode(), and getVectorRegSpillSaveOpcode().
|
inline |
Definition at line 649 of file SIMachineFunctionInfo.h.
References llvm::SmallVectorTemplateCommon< T, typename >::end(), llvm::find_if(), and llvm::SPILL_TO_VGPR_LANE.
Referenced by allSGPRSpillsAreDead(), and removeDeadFrameIndices().
|
overridevirtual |
Make a functionally equivalent copy of this MachineFunctionInfo in MF
.
This requires remapping MachineBasicBlock references from the original parent to values in the new function. Targets may assume that virtual register and frame index values are preserved in the new function.
Reimplemented from llvm::MachineFunctionInfo.
Definition at line 175 of file SIMachineFunctionInfo.cpp.
References llvm::MachineFunction::cloneInfo().
|
inline |
Definition at line 881 of file SIMachineFunctionInfo.h.
Definition at line 699 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIRegisterInfo::getReservedRegs(), and llvm::SIFrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 641 of file SIMachineFunctionInfo.h.
References llvm::COPY_TO_SCRATCH_SGPR, and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by llvm::SIFrameLowering::emitCSRSpillStores().
|
inline |
Definition at line 857 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPUCallLowering::passSpecialInputs().
|
inline |
Definition at line 861 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 740 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPUCallLowering::areCalleeOutgoingArgsTailCallable(), and llvm::SITargetLowering::isEligibleForTailCallOptimization().
Definition at line 1024 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 912 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::assignCalleeSavedSpillSlots(), llvm::SIFrameLowering::determineCalleeSavesSGPR(), llvm::SIFrameLowering::determinePrologEpilogSGPRSaves(), llvm::SIFrameLowering::emitCSRSpillRestores(), llvm::SIFrameLowering::emitCSRSpillStores(), llvm::SIFrameLowering::emitEntryFunctionPrologue(), llvm::SIFrameLowering::emitEpilogue(), llvm::SIFrameLowering::emitPrologue(), llvm::SIRegisterInfo::getFrameRegister(), llvm::SIRegisterInfo::getReservedRegs(), and llvm::SIRegisterInfo::spillSGPR().
|
inline |
Definition at line 875 of file SIMachineFunctionInfo.h.
Referenced by buildGitPtr().
Register SIMachineFunctionInfo::getGITPtrLoReg | ( | const MachineFunction & | MF | ) | const |
Definition at line 587 of file SIMachineFunctionInfo.cpp.
References llvm::CallingConv::AMDGPU_GS, llvm::CallingConv::AMDGPU_HS, llvm::Function::getCallingConv(), llvm::MachineFunction::getFunction(), and llvm::MachineFunction::getSubtarget().
Referenced by buildGitPtr(), and llvm::SIFrameLowering::emitEntryFunctionPrologue().
|
inline |
Definition at line 1055 of file SIMachineFunctionInfo.h.
Referenced by llvm::SITargetLowering::getTgtMemIntrinsic(), and llvm::AMDGPUMIRFormatter::parseCustomPseudoSourceValue().
|
inline |
Definition at line 942 of file SIMachineFunctionInfo.h.
|
inline |
|
inline |
Definition at line 1034 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1094 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1096 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1097 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1098 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1050 of file SIMachineFunctionInfo.h.
Referenced by llvm::UnclusteredHighRPStage::initGCNSchedStage(), and limitOccupancy().
|
inline |
Definition at line 1063 of file SIMachineFunctionInfo.h.
References llvm::AMDGPUMachineFunction::isMemoryBound(), and llvm::AMDGPUMachineFunction::needsWaveLimiter().
Referenced by llvm::GCNSchedStage::checkScheduling(), llvm::GCNScheduleDAGMILive::GCNScheduleDAGMILive(), and llvm::GCNSchedStrategy::initialize().
|
inline |
Definition at line 1029 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1045 of file SIMachineFunctionInfo.h.
Referenced by llvm::GCNSchedStage::mayCauseSpilling().
|
inline |
Definition at line 584 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPULegalizerInfo::legalizeFDIV32(), llvm::AMDGPULegalizerInfo::legalizeFFloor(), llvm::AMDGPULegalizerInfo::legalizeFMad(), llvm::AMDGPULegalizerInfo::legalizeMinNumMaxNum(), llvm::AMDGPULegalizerInfo::legalizeRsqClampIntrinsic(), llvm::AMDGPUTargetLowering::LowerDIVREM24(), and llvm::AMDGPUTargetLowering::LowerUDIVREM64().
|
inline |
Definition at line 893 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPUAsmPrinter::emitFunctionBodyStart().
|
inline |
Definition at line 889 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::emitEntryFunctionPrologue(), and llvm::GCNSubtarget::getMaxNumSGPRs().
|
inline |
Definition at line 978 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 982 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 885 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1059 of file SIMachineFunctionInfo.h.
Referenced by llvm::GCNSchedStrategy::initialize().
|
inline |
Definition at line 738 of file SIMachineFunctionInfo.h.
Referenced by llvm::yaml::SIMachineFunctionInfo::SIMachineFunctionInfo().
|
inline |
Definition at line 870 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::emitEntryFunctionPrologue().
|
inline |
Definition at line 866 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPULegalizerInfo::legalizeWorkitemIDIntrinsic(), and llvm::AMDGPULegalizerInfo::loadInputValue().
|
inline |
Definition at line 897 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 660 of file SIMachineFunctionInfo.h.
References assert(), llvm::SmallVectorTemplateCommon< T, typename >::end(), llvm::find_if(), I, and Reg.
Referenced by llvm::SIFrameLowering::emitPrologue().
|
inline |
Definition at line 599 of file SIMachineFunctionInfo.h.
References assert(), and llvm::is_sorted().
Referenced by llvm::SIFrameLowering::emitCSRSpillRestores(), and llvm::SIFrameLowering::emitCSRSpillStores().
|
inline |
Definition at line 994 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 998 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 938 of file SIMachineFunctionInfo.h.
int SIMachineFunctionInfo::getScavengeFI | ( | MachineFrameInfo & | MFI, |
const SIRegisterInfo & | TRI | ||
) |
Definition at line 556 of file SIMachineFunctionInfo.cpp.
References llvm::MachineFrameInfo::CreateStackObject(), 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 903 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIRegisterInfo::buildSpillLoadStore(), llvm::SIRegisterInfo::eliminateFrameIndex(), llvm::SIRegisterInfo::getReservedRegs(), and llvm::AMDGPUCallLowering::handleImplicitCallArguments().
Definition at line 630 of file SIMachineFunctionInfo.h.
References llvm::COPY_TO_SCRATCH_SGPR, llvm::SmallVectorTemplateCommon< T, typename >::end(), llvm::find_if(), I, and Reg.
Referenced by llvm::SIFrameLowering::assignCalleeSavedSpillSlots(), llvm::SIFrameLowering::emitEpilogue(), and llvm::SIFrameLowering::emitPrologue().
|
inline |
|
inline |
Definition at line 669 of file SIMachineFunctionInfo.h.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), and I.
Referenced by getVGPRSpillLaneOrTempRegister(), llvm::SIRegisterInfo::restoreSGPR(), and llvm::SIRegisterInfo::spillSGPR().
|
inline |
Definition at line 587 of file SIMachineFunctionInfo.h.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), and I.
Referenced by llvm::SIRegisterInfo::restoreSGPR(), and llvm::SIRegisterInfo::spillSGPR().
Definition at line 594 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 932 of file SIMachineFunctionInfo.h.
Referenced by 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 604 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::emitEntryFunctionPrologue(), llvm::AMDGPU::HSAMD::MetadataStreamerMsgPackV5::emitHiddenKernelArgs(), and llvm::GCNSubtarget::getReservedNumSGPRs().
|
inline |
Definition at line 606 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 707 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIRegisterInfo::getReservedRegs(), and llvm::SIFrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 711 of file SIMachineFunctionInfo.h.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), and I.
Referenced by spillVGPRtoAGPR().
Definition at line 1040 of file SIMachineFunctionInfo.h.
Referenced by llvm::GCNSubtarget::getMaxNumSGPRs(), and llvm::GCNSubtarget::getMaxNumVGPRs().
|
inline |
Definition at line 597 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIRegisterInfo::getReservedRegs(), llvm::SIFrameLowering::processFunctionBeforeFrameFinalized(), and llvm::yaml::SIMachineFunctionInfo::SIMachineFunctionInfo().
|
inline |
Definition at line 596 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::determineCalleeSaves().
|
inline |
Definition at line 853 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 795 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 962 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 837 of file SIMachineFunctionInfo.h.
Definition at line 623 of file SIMachineFunctionInfo.h.
References llvm::SmallVectorTemplateCommon< T, typename >::end(), llvm::find_if(), I, and Reg.
Referenced by addToPrologEpilogSGPRSpills(), llvm::SIFrameLowering::determinePrologEpilogSGPRSaves(), llvm::SIFrameLowering::emitEpilogue(), and llvm::SIFrameLowering::emitPrologue().
|
inline |
Definition at line 946 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::determineCalleeSavesSGPR().
|
inline |
Definition at line 954 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 689 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 821 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 825 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 829 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPULegalizerInfo::loadInputValue().
|
inline |
Definition at line 833 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 841 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 845 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 849 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1076 of file SIMachineFunctionInfo.h.
References limitOccupancy().
Referenced by llvm::UnclusteredHighRPStage::initGCNSchedStage().
bool SIMachineFunctionInfo::initializeBaseYamlFields | ( | const yaml::SIMachineFunctionInfo & | YamlMFI, |
const MachineFunction & | MF, | ||
PerFunctionMIParsingState & | PFS, | ||
SMDiagnostic & | Error, | ||
SMRange & | SourceRange | ||
) |
Definition at line 712 of file SIMachineFunctionInfo.cpp.
References 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::yaml::SIMachineFunctionInfo::NoSignedZerosFPMath, llvm::yaml::SIMachineFunctionInfo::Occupancy, llvm::yaml::SIMachineFunctionInfo::PSInputAddr, llvm::yaml::SIMachineFunctionInfo::PSInputEnable, llvm::yaml::SIMachineFunctionInfo::ReturnsVoid, llvm::yaml::SIMachineFunctionInfo::ScavengeFI, llvm::PerFunctionMIParsingState::SM, llvm::dwarf::toString(), and llvm::yaml::SIMachineFunctionInfo::WaveLimiter.
Referenced by llvm::GCNTargetMachine::parseMachineFunctionInfo().
Definition at line 312 of file SIMachineFunctionInfo.cpp.
References I.
Referenced by splitWWMSpillRegisters().
Definition at line 1002 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 970 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::emitEpilogue().
void SIMachineFunctionInfo::limitOccupancy | ( | const MachineFunction & | MF | ) |
Definition at line 182 of file SIMachineFunctionInfo.cpp.
References llvm::MachineFunction::getFunction(), llvm::AMDGPUMachineFunction::getLDSSize(), getMaxWavesPerEU(), llvm::MachineFunction::getSubtarget(), and limitOccupancy().
Referenced by llvm::GCNSchedStage::checkScheduling(), increaseOccupancy(), and limitOccupancy().
|
inline |
Definition at line 1071 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1006 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1010 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1082 of file SIMachineFunctionInfo.h.
Definition at line 753 of file SIMachineFunctionInfo.cpp.
References F.
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 511 of file SIMachineFunctionInfo.cpp.
References checkIndexInPrologEpilogSGPRSpills(), llvm::TargetStackID::Default, 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 582 of file SIMachineFunctionInfo.h.
References llvm::SetVector< T, Vector, Set, N >::insert(), and Reg.
Referenced by llvm::GCNTargetMachine::parseMachineFunctionInfo().
|
inline |
Definition at line 1014 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPUCallLowering::lowerReturn().
|
inline |
Definition at line 744 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 676 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 916 of file SIMachineFunctionInfo.h.
Definition at line 966 of file SIMachineFunctionInfo.h.
Definition at line 950 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIInstrInfo::loadRegFromStackSlot(), and llvm::SIInstrInfo::storeRegToStackSlot().
Definition at line 958 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIInstrInfo::storeRegToStackSlot().
|
inline |
Definition at line 1018 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPUCallLowering::lowerReturn().
Definition at line 974 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::emitPrologue().
|
inline |
Definition at line 926 of file SIMachineFunctionInfo.h.
References Reg.
Referenced by llvm::SIFrameLowering::processFunctionBeforeFrameIndicesReplaced().
|
inline |
Definition at line 817 of file SIMachineFunctionInfo.h.
References llvm::ArgDescriptor::createRegister(), and Reg.
|
inline |
Definition at line 907 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 705 of file SIMachineFunctionInfo.h.
References Reg.
Referenced by llvm::SIFrameLowering::determinePrologEpilogSGPRSaves().
|
inline |
Definition at line 921 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 562 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::processFunctionBeforeFrameIndicesReplaced().
|
inline |
Definition at line 717 of file SIMachineFunctionInfo.h.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), and I.
Referenced by llvm::SIFrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 798 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 802 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 806 of file SIMachineFunctionInfo.h.
void SIMachineFunctionInfo::shiftSpillPhysVGPRsToLowestRange | ( | MachineFunction & | MF | ) |
Definition at line 322 of file SIMachineFunctionInfo.cpp.
References llvm::MapVector< KeyT, ValueT, MapType, VectorType >::erase(), llvm::MachineFunction::getRegInfo(), llvm::MachineFunction::getSubtarget(), llvm::MapVector< KeyT, ValueT, MapType, VectorType >::insert(), llvm::SetVector< T, Vector, Set, N >::insert(), MBB, MRI, llvm::SetVector< T, Vector, Set, N >::remove(), llvm::MachineBasicBlock::removeLiveIn(), llvm::MachineBasicBlock::sortUniqueLiveIns(), and TRI.
Referenced by llvm::SIFrameLowering::determineCalleeSaves().
void SIMachineFunctionInfo::splitWWMSpillRegisters | ( | MachineFunction & | MF, |
SmallVectorImpl< std::pair< Register, int > > & | CalleeSavedRegs, | ||
SmallVectorImpl< std::pair< Register, int > > & | ScratchRegs | ||
) | const |
Definition at line 299 of file SIMachineFunctionInfo.cpp.
References llvm::MachineRegisterInfo::getCalleeSavedRegs(), llvm::MachineFunction::getRegInfo(), and isCalleeSavedReg().
Referenced by llvm::SIFrameLowering::emitCSRSpillRestores(), and llvm::SIFrameLowering::emitCSRSpillStores().
bool SIMachineFunctionInfo::usesAGPRs | ( | const MachineFunction & | MF | ) | const |
Definition at line 757 of file SIMachineFunctionInfo.cpp.
References llvm::Function::getCallingConv(), llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::getFunction(), llvm::MachineFunction::getRegInfo(), llvm::MachineFrameInfo::hasCalls(), I, llvm::Register::index2VirtReg(), llvm::SIRegisterInfo::isAGPRClass(), llvm::AMDGPU::isEntryFunctionCC(), and MRI.
Referenced by llvm::SIRegisterInfo::getReservedRegs().
|
friend |
Definition at line 377 of file SIMachineFunctionInfo.h.