LLVM 17.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 const Function * | getKernelLDSFunctionFromGlobal (const GlobalVariable &GV) |
static const GlobalVariable * | getKernelLDSGlobalFromFunction (const Function &F) |
static bool | isKnownAddressLDSGlobal (const GlobalVariable &GV) |
static unsigned | calculateKnownAddressOfLDSGlobal (const GlobalVariable &GV) |
static std::optional< uint32_t > | getLDSKernelIdMetadata (const Function &F) |
![]() | |
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) |
![]() | |
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 | 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 358 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_Gfx, llvm::CallingConv::AMDGPU_GS, llvm::CallingConv::AMDGPU_HS, llvm::CallingConv::AMDGPU_KERNEL, llvm::CallingConv::AMDGPU_PS, CC, llvm::StringRef::consumeInteger(), llvm::ArgDescriptor::createRegister(), llvm::StringRef::empty(), F, llvm::AMDGPUArgumentUsageInfo::FixedABIFunctionInfo, llvm::AMDGPU::getInitialPSInputAddr(), llvm::AMDGPUMachineFunction::getLDSSize(), llvm::AMDGPUSubtarget::GFX9, HasCalls, llvm::AMDGPUMachineFunction::isEntryFunction(), llvm::AMDGPU::isGraphics(), llvm::AMDGPUMachineFunction::MaxKernArgAlign, mayUseAGPRs(), and llvm::CallingConv::SPIR_KERNEL.
Register SIMachineFunctionInfo::addDispatchID | ( | const SIRegisterInfo & | TRI | ) |
Definition at line 251 of file SIMachineFunctionInfo.cpp.
References llvm::ArgDescriptor::createRegister(), and TRI.
Register SIMachineFunctionInfo::addDispatchPtr | ( | const SIRegisterInfo & | TRI | ) |
Definition at line 229 of file SIMachineFunctionInfo.cpp.
References llvm::ArgDescriptor::createRegister(), and TRI.
Register SIMachineFunctionInfo::addFlatScratchInit | ( | const SIRegisterInfo & | TRI | ) |
Definition at line 258 of file SIMachineFunctionInfo.cpp.
References llvm::ArgDescriptor::createRegister(), and TRI.
Register SIMachineFunctionInfo::addImplicitBufferPtr | ( | const SIRegisterInfo & | TRI | ) |
Definition at line 265 of file SIMachineFunctionInfo.cpp.
References llvm::ArgDescriptor::createRegister(), and TRI.
Register SIMachineFunctionInfo::addKernargSegmentPtr | ( | const SIRegisterInfo & | TRI | ) |
Definition at line 243 of file SIMachineFunctionInfo.cpp.
References llvm::ArgDescriptor::createRegister(), and TRI.
Register SIMachineFunctionInfo::addLDSKernelId | ( | ) |
Definition at line 272 of file SIMachineFunctionInfo.cpp.
References llvm::ArgDescriptor::createRegister().
Register SIMachineFunctionInfo::addPrivateSegmentBuffer | ( | const SIRegisterInfo & | TRI | ) |
Definition at line 220 of file SIMachineFunctionInfo.cpp.
References llvm::ArgDescriptor::createRegister(), and TRI.
|
inline |
Definition at line 733 of file SIMachineFunctionInfo.h.
References llvm::ArgDescriptor::createRegister().
Register SIMachineFunctionInfo::addQueuePtr | ( | const SIRegisterInfo & | TRI | ) |
Definition at line 236 of file SIMachineFunctionInfo.cpp.
References llvm::ArgDescriptor::createRegister(), and TRI.
|
inline |
Increment user SGPRs used for padding the argument list only.
Definition at line 689 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 574 of file SIMachineFunctionInfo.h.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::insert(), Reg, and SI.
Referenced by getVGPRSpillLaneOrTempRegister().
|
inline |
Definition at line 931 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIRegisterInfo::spillEmergencySGPR(), and llvm::SIRegisterInfo::spillSGPR().
|
inline |
Definition at line 935 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIRegisterInfo::buildVGPRSpillLoadStore(), and llvm::SIRegisterInfo::eliminateFrameIndex().
|
inline |
Definition at line 696 of file SIMachineFunctionInfo.h.
References llvm::ArgDescriptor::createRegister().
|
inline |
Definition at line 702 of file SIMachineFunctionInfo.h.
References llvm::ArgDescriptor::createRegister().
|
inline |
Definition at line 708 of file SIMachineFunctionInfo.h.
References llvm::ArgDescriptor::createRegister().
|
inline |
Definition at line 714 of file SIMachineFunctionInfo.h.
References llvm::ArgDescriptor::createRegister().
bool SIMachineFunctionInfo::allocateSGPRSpillToVGPRLane | ( | MachineFunction & | MF, |
int | FI, | ||
bool | IsPrologEpilog = false |
||
) |
Definition at line 367 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 414 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 278 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::isEntryFunction(), and Size.
Referenced by llvm::SIFrameLowering::determineCalleeSaves(), and llvm::SIFrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 604 of file SIMachineFunctionInfo.h.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::find_if(), SI, 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 206 of file SIMachineFunctionInfo.cpp.
References llvm::MachineFunction::cloneInfo().
|
inline |
Definition at line 834 of file SIMachineFunctionInfo.h.
Definition at line 638 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIRegisterInfo::getReservedRegs(), and llvm::SIFrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 596 of file SIMachineFunctionInfo.h.
References llvm::COPY_TO_SCRATCH_SGPR, llvm::SmallVectorTemplateBase< T, bool >::push_back(), and SI.
Referenced by llvm::SIFrameLowering::emitCSRSpillStores().
|
inline |
Definition at line 810 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPUCallLowering::passSpecialInputs().
|
inline |
Definition at line 814 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 670 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPUCallLowering::areCalleeOutgoingArgsTailCallable(), and llvm::SITargetLowering::isEligibleForTailCallOptimization().
Definition at line 969 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 861 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 828 of file SIMachineFunctionInfo.h.
Referenced by buildGitPtr().
Register SIMachineFunctionInfo::getGITPtrLoReg | ( | const MachineFunction & | MF | ) | const |
Definition at line 541 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 1016 of file SIMachineFunctionInfo.h.
Referenced by llvm::SITargetLowering::getTgtMemIntrinsic(), and llvm::AMDGPUMIRFormatter::parseCustomPseudoSourceValue().
|
inline |
Definition at line 887 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 979 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 995 of file SIMachineFunctionInfo.h.
Referenced by llvm::UnclusteredHighRPStage::initGCNSchedStage(), and limitOccupancy().
|
inline |
Definition at line 1024 of file SIMachineFunctionInfo.h.
References llvm::AMDGPUMachineFunction::isMemoryBound(), and llvm::AMDGPUMachineFunction::needsWaveLimiter().
Referenced by llvm::GCNSchedStage::checkScheduling().
|
inline |
Definition at line 974 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 990 of file SIMachineFunctionInfo.h.
Referenced by llvm::GCNSchedStage::mayCauseSpilling().
|
inline |
Definition at line 554 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 842 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::emitEntryFunctionPrologue(), and llvm::GCNSubtarget::getMaxNumSGPRs().
|
inline |
Definition at line 923 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 927 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 838 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1020 of file SIMachineFunctionInfo.h.
Referenced by llvm::GCNSchedStrategy::initialize().
|
inline |
Definition at line 668 of file SIMachineFunctionInfo.h.
Referenced by llvm::yaml::SIMachineFunctionInfo::SIMachineFunctionInfo().
|
inline |
Definition at line 823 of file SIMachineFunctionInfo.h.
References Arg.
Referenced by llvm::SIFrameLowering::emitEntryFunctionPrologue().
|
inline |
Definition at line 819 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPULegalizerInfo::legalizeWorkitemIDIntrinsic(), and llvm::AMDGPULegalizerInfo::loadInputValue().
|
inline |
Definition at line 846 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 615 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 570 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::emitCSRSpillRestores(), and llvm::SIFrameLowering::emitCSRSpillStores().
|
inline |
Definition at line 623 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().
|
inline |
Definition at line 939 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 943 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 883 of file SIMachineFunctionInfo.h.
int SIMachineFunctionInfo::getScavengeFI | ( | MachineFrameInfo & | MFI, |
const SIRegisterInfo & | TRI | ||
) |
Definition at line 516 of file SIMachineFunctionInfo.cpp.
References llvm::MachineFrameInfo::CreateFixedObject(), llvm::MachineFrameInfo::CreateStackObject(), 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 852 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIRegisterInfo::buildSpillLoadStore(), llvm::SIRegisterInfo::getReservedRegs(), and llvm::AMDGPUCallLowering::handleImplicitCallArguments().
Definition at line 586 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 |
Definition at line 559 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 566 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIRegisterInfo::getReservedRegs().
|
inline |
Definition at line 879 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 642 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIRegisterInfo::getReservedRegs(), and llvm::SIFrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 646 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 985 of file SIMachineFunctionInfo.h.
Referenced by llvm::GCNSubtarget::getMaxNumSGPRs(), and llvm::GCNSubtarget::getMaxNumVGPRs().
Dim's
work group ID. Definition at line 1000 of file SIMachineFunctionInfo.h.
References assert(), hasWorkGroupIDX(), hasWorkGroupIDY(), hasWorkGroupIDZ(), and llvm_unreachable.
|
inline |
Definition at line 568 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIRegisterInfo::getReservedRegs(), llvm::SIFrameLowering::processFunctionBeforeFrameFinalized(), and llvm::yaml::SIMachineFunctionInfo::SIMachineFunctionInfo().
|
inline |
Definition at line 567 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::determineCalleeSaves().
|
inline |
Definition at line 760 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 748 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 764 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::emitEntryFunctionPrologue(), and llvm::GCNSubtarget::getReservedNumSGPRs().
|
inline |
Definition at line 802 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 806 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 756 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 784 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 907 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 744 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 786 of file SIMachineFunctionInfo.h.
Definition at line 581 of file SIMachineFunctionInfo.h.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), and Reg.
Referenced by llvm::SIFrameLowering::determinePrologEpilogSGPRSaves(), llvm::SIFrameLowering::emitEpilogue(), and llvm::SIFrameLowering::emitPrologue().
|
inline |
Definition at line 752 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPU::HSAMD::MetadataStreamerMsgPackV5::emitHiddenKernelArgs().
|
inline |
Definition at line 891 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::determineCalleeSavesSGPR().
|
inline |
Definition at line 899 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 768 of file SIMachineFunctionInfo.h.
Referenced by getWorkGroupIDSGPR().
|
inline |
Definition at line 772 of file SIMachineFunctionInfo.h.
Referenced by getWorkGroupIDSGPR().
|
inline |
Definition at line 776 of file SIMachineFunctionInfo.h.
Referenced by getWorkGroupIDSGPR().
|
inline |
Definition at line 780 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 790 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 794 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 798 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1037 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 656 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::ReturnsVoid, llvm::yaml::SIMachineFunctionInfo::ScavengeFI, llvm::PerFunctionMIParsingState::SM, llvm::dwarf::toString(), and llvm::yaml::SIMachineFunctionInfo::WaveLimiter.
Referenced by llvm::GCNTargetMachine::parseMachineFunctionInfo().
Definition at line 302 of file SIMachineFunctionInfo.cpp.
References I.
Referenced by splitWWMSpillRegisters().
Definition at line 947 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 915 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::emitEpilogue().
void SIMachineFunctionInfo::limitOccupancy | ( | const MachineFunction & | MF | ) |
Definition at line 213 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 1032 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 951 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 955 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1043 of file SIMachineFunctionInfo.h.
Definition at line 695 of file SIMachineFunctionInfo.cpp.
References Callee, F, I, and llvm::Intrinsic::not_intrinsic.
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 480 of file SIMachineFunctionInfo.cpp.
References checkIndexInPrologEpilogSGPRSpills(), llvm::TargetStackID::Default, E, 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 llvm::SetVector< T, Vector, Set >::insert(), and Reg.
Referenced by llvm::GCNTargetMachine::parseMachineFunctionInfo().
|
inline |
Definition at line 959 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPUCallLowering::lowerReturn().
|
inline |
Definition at line 674 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 865 of file SIMachineFunctionInfo.h.
Definition at line 911 of file SIMachineFunctionInfo.h.
Definition at line 895 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIInstrInfo::loadRegFromStackSlot(), and llvm::SIInstrInfo::storeRegToStackSlot().
Definition at line 903 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIInstrInfo::storeRegToStackSlot().
|
inline |
Definition at line 963 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPUCallLowering::lowerReturn().
Definition at line 919 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::emitPrologue().
|
inline |
Definition at line 740 of file SIMachineFunctionInfo.h.
References llvm::ArgDescriptor::createRegister(), and Reg.
|
inline |
Definition at line 856 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 870 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 532 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::processFunctionBeforeFrameIndicesReplaced().
|
inline |
Definition at line 652 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 721 of file SIMachineFunctionInfo.h.
References Arg.
|
inline |
Definition at line 725 of file SIMachineFunctionInfo.h.
References Arg.
|
inline |
Definition at line 729 of file SIMachineFunctionInfo.h.
References Arg.
void SIMachineFunctionInfo::splitWWMSpillRegisters | ( | MachineFunction & | MF, |
SmallVectorImpl< std::pair< Register, int > > & | CalleeSavedRegs, | ||
SmallVectorImpl< std::pair< Register, int > > & | ScratchRegs | ||
) | const |
Definition at line 289 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 727 of file SIMachineFunctionInfo.cpp.
References E, 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 359 of file SIMachineFunctionInfo.h.