LLVM 19.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 38 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 221 of file SIMachineFunctionInfo.cpp.
References llvm::ArgDescriptor::createRegister(), and TRI.
Register SIMachineFunctionInfo::addDispatchPtr | ( | const SIRegisterInfo & | TRI | ) |
Definition at line 199 of file SIMachineFunctionInfo.cpp.
References llvm::ArgDescriptor::createRegister(), and TRI.
Register SIMachineFunctionInfo::addFlatScratchInit | ( | const SIRegisterInfo & | TRI | ) |
Definition at line 228 of file SIMachineFunctionInfo.cpp.
References llvm::ArgDescriptor::createRegister(), and TRI.
Register SIMachineFunctionInfo::addImplicitBufferPtr | ( | const SIRegisterInfo & | TRI | ) |
Definition at line 235 of file SIMachineFunctionInfo.cpp.
References llvm::ArgDescriptor::createRegister(), and TRI.
Register SIMachineFunctionInfo::addKernargSegmentPtr | ( | const SIRegisterInfo & | TRI | ) |
Definition at line 213 of file SIMachineFunctionInfo.cpp.
References llvm::ArgDescriptor::createRegister(), and TRI.
Register SIMachineFunctionInfo::addLDSKernelId | ( | ) |
Definition at line 242 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 248 of file SIMachineFunctionInfo.cpp.
References llvm::GCNUserSGPRUsageInfo::allocKernargPreloadSGPRs(), assert(), I, and TRI.
Register SIMachineFunctionInfo::addPrivateSegmentBuffer | ( | const SIRegisterInfo & | TRI | ) |
Definition at line 190 of file SIMachineFunctionInfo.cpp.
References llvm::ArgDescriptor::createRegister(), and TRI.
|
inline |
Definition at line 796 of file SIMachineFunctionInfo.h.
References llvm::ArgDescriptor::createRegister().
Register SIMachineFunctionInfo::addQueuePtr | ( | const SIRegisterInfo & | TRI | ) |
Definition at line 206 of file SIMachineFunctionInfo.cpp.
References llvm::ArgDescriptor::createRegister(), and TRI.
|
inline |
Increment user SGPRs used for padding the argument list only.
Definition at line 750 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 607 of file SIMachineFunctionInfo.h.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::insert(), and Reg.
Referenced by getVGPRSpillLaneOrTempRegister().
|
inline |
Definition at line 972 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIRegisterInfo::spillEmergencySGPR(), and llvm::SIRegisterInfo::spillSGPR().
|
inline |
Definition at line 976 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIRegisterInfo::buildVGPRSpillLoadStore(), and llvm::SIRegisterInfo::eliminateFrameIndex().
|
inline |
Definition at line 757 of file SIMachineFunctionInfo.h.
References llvm::ArgDescriptor::createRegister().
|
inline |
Definition at line 763 of file SIMachineFunctionInfo.h.
References llvm::ArgDescriptor::createRegister().
|
inline |
Definition at line 769 of file SIMachineFunctionInfo.h.
References llvm::ArgDescriptor::createRegister().
|
inline |
Definition at line 775 of file SIMachineFunctionInfo.h.
References llvm::ArgDescriptor::createRegister().
bool SIMachineFunctionInfo::allocateSGPRSpillToVGPRLane | ( | MachineFunction & | MF, |
int | FI, | ||
bool | SpillToPhysVGPRLane = false , |
||
bool | IsPrologEpilog = false |
||
) |
Definition at line 395 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 442 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 275 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 669 of file SIMachineFunctionInfo.h.
References Reg.
Referenced by llvm::SIInstrInfo::getLiveRangeSplitOpcode(), getVectorRegSpillRestoreOpcode(), and getVectorRegSpillSaveOpcode().
|
inline |
Definition at line 637 of file SIMachineFunctionInfo.h.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::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 176 of file SIMachineFunctionInfo.cpp.
References llvm::MachineFunction::cloneInfo().
|
inline |
Definition at line 867 of file SIMachineFunctionInfo.h.
Definition at line 686 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIRegisterInfo::getReservedRegs(), and llvm::SIFrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 629 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 843 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPUCallLowering::passSpecialInputs().
|
inline |
Definition at line 847 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 727 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPUCallLowering::areCalleeOutgoingArgsTailCallable(), and llvm::SITargetLowering::isEligibleForTailCallOptimization().
Definition at line 1010 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 898 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 861 of file SIMachineFunctionInfo.h.
Referenced by buildGitPtr().
Register SIMachineFunctionInfo::getGITPtrLoReg | ( | const MachineFunction & | MF | ) | const |
Definition at line 584 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 1041 of file SIMachineFunctionInfo.h.
Referenced by llvm::SITargetLowering::getTgtMemIntrinsic(), and llvm::AMDGPUMIRFormatter::parseCustomPseudoSourceValue().
|
inline |
Definition at line 928 of file SIMachineFunctionInfo.h.
|
inline |
|
inline |
Definition at line 1020 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1080 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1082 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1083 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1084 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1036 of file SIMachineFunctionInfo.h.
Referenced by llvm::UnclusteredHighRPStage::initGCNSchedStage(), and limitOccupancy().
|
inline |
Definition at line 1049 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 1015 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1031 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 879 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPUAsmPrinter::emitFunctionBodyStart().
|
inline |
Definition at line 875 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::emitEntryFunctionPrologue(), and llvm::GCNSubtarget::getMaxNumSGPRs().
|
inline |
Definition at line 964 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 968 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 871 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1045 of file SIMachineFunctionInfo.h.
Referenced by llvm::GCNSchedStrategy::initialize().
|
inline |
Definition at line 725 of file SIMachineFunctionInfo.h.
Referenced by llvm::yaml::SIMachineFunctionInfo::SIMachineFunctionInfo().
|
inline |
Definition at line 856 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::emitEntryFunctionPrologue().
|
inline |
Definition at line 852 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPULegalizerInfo::legalizeWorkitemIDIntrinsic(), and llvm::AMDGPULegalizerInfo::loadInputValue().
|
inline |
Definition at line 883 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 648 of file SIMachineFunctionInfo.h.
References assert(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), I, and Reg.
Referenced by llvm::SIFrameLowering::emitPrologue().
|
inline |
Definition at line 599 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::emitCSRSpillRestores(), and llvm::SIFrameLowering::emitCSRSpillStores().
|
inline |
Definition at line 980 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 984 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 924 of file SIMachineFunctionInfo.h.
int SIMachineFunctionInfo::getScavengeFI | ( | MachineFrameInfo & | MFI, |
const SIRegisterInfo & | TRI | ||
) |
Definition at line 553 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 889 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIRegisterInfo::buildSpillLoadStore(), llvm::SIRegisterInfo::getReservedRegs(), and llvm::AMDGPUCallLowering::handleImplicitCallArguments().
Definition at line 619 of file SIMachineFunctionInfo.h.
References llvm::COPY_TO_SCRATCH_SGPR, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), I, and Reg.
Referenced by llvm::SIFrameLowering::assignCalleeSavedSpillSlots(), llvm::SIFrameLowering::emitEpilogue(), and llvm::SIFrameLowering::emitPrologue().
|
inline |
|
inline |
Definition at line 656 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 918 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 603 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::emitEntryFunctionPrologue(), llvm::AMDGPU::HSAMD::MetadataStreamerMsgPackV5::emitHiddenKernelArgs(), and llvm::GCNSubtarget::getReservedNumSGPRs().
|
inline |
Definition at line 605 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 694 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIRegisterInfo::getReservedRegs(), and llvm::SIFrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 698 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 1026 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 839 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 781 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 948 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 823 of file SIMachineFunctionInfo.h.
Definition at line 614 of file SIMachineFunctionInfo.h.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::contains(), and Reg.
Referenced by llvm::SIFrameLowering::determinePrologEpilogSGPRSaves(), llvm::SIFrameLowering::emitEpilogue(), and llvm::SIFrameLowering::emitPrologue().
|
inline |
Definition at line 932 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::determineCalleeSavesSGPR().
|
inline |
Definition at line 940 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 676 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 807 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 811 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 815 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPULegalizerInfo::loadInputValue().
|
inline |
Definition at line 819 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 827 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 831 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 835 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1062 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 709 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 307 of file SIMachineFunctionInfo.cpp.
References I.
Referenced by splitWWMSpillRegisters().
Definition at line 988 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 956 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::emitEpilogue().
void SIMachineFunctionInfo::limitOccupancy | ( | const MachineFunction & | MF | ) |
Definition at line 183 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 1057 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 992 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 996 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1068 of file SIMachineFunctionInfo.h.
Definition at line 750 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 508 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 1000 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPUCallLowering::lowerReturn().
|
inline |
Definition at line 731 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 663 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 902 of file SIMachineFunctionInfo.h.
Definition at line 952 of file SIMachineFunctionInfo.h.
Definition at line 936 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIInstrInfo::loadRegFromStackSlot(), and llvm::SIInstrInfo::storeRegToStackSlot().
Definition at line 944 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIInstrInfo::storeRegToStackSlot().
|
inline |
Definition at line 1004 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPUCallLowering::lowerReturn().
Definition at line 960 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::emitPrologue().
|
inline |
Definition at line 912 of file SIMachineFunctionInfo.h.
References Reg.
Referenced by llvm::SIFrameLowering::processFunctionBeforeFrameIndicesReplaced().
|
inline |
Definition at line 803 of file SIMachineFunctionInfo.h.
References llvm::ArgDescriptor::createRegister(), and Reg.
|
inline |
Definition at line 893 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 692 of file SIMachineFunctionInfo.h.
References Reg.
Referenced by llvm::SIFrameLowering::determinePrologEpilogSGPRSaves().
|
inline |
Definition at line 907 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 562 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::processFunctionBeforeFrameIndicesReplaced().
|
inline |
Definition at line 704 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 784 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 788 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 792 of file SIMachineFunctionInfo.h.
void SIMachineFunctionInfo::shiftSpillPhysVGPRsToLowestRange | ( | MachineFunction & | MF | ) |
Definition at line 317 of file SIMachineFunctionInfo.cpp.
References llvm::MapVector< KeyT, ValueT, MapType, VectorType >::erase(), llvm::MachineFunction::getRegInfo(), llvm::MachineFunction::getSubtarget(), I, 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 294 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 754 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.