|
LLVM 22.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 |
Static Public Attributes | |
| static bool | MFMAVGPRForm = false |
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 |
| uint32_t | NumNamedBarriers = 0 |
| bool | IsEntryFunction = false |
| bool | IsModuleEntryFunction = false |
| bool | IsChainFunction = false |
| bool | NoSignedZerosFPMath = false |
| bool | MemoryBound = false |
| bool | WaveLimiter = false |
| bool | HasInitWholeWave = 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 416 of file SIMachineFunctionInfo.h.
|
default |
References Allocator, F, and SIMachineFunctionInfo().
Referenced by clone(), and SIMachineFunctionInfo().
| SIMachineFunctionInfo::SIMachineFunctionInfo | ( | const Function & | F, |
| const GCNSubtarget * | STI ) |
Definition at line 50 of file SIMachineFunctionInfo.cpp.
References A(), llvm::CallingConv::AMDGPU_CS, llvm::CallingConv::AMDGPU_Gfx, llvm::CallingConv::AMDGPU_Gfx_WholeWave, llvm::CallingConv::AMDGPU_GS, llvm::CallingConv::AMDGPU_HS, llvm::CallingConv::AMDGPU_KERNEL, llvm::CallingConv::AMDGPU_PS, llvm::AMDGPUMachineFunction::AMDGPUMachineFunction(), assert(), llvm::StringRef::consumeInteger(), llvm::ArgDescriptor::createRegister(), llvm::DefaultMemoryClusterDWordsLimit, llvm::StringRef::empty(), F, llvm::AMDGPUArgumentUsageInfo::FixedABIFunctionInfo, llvm::AMDGPU::ClusterDimsAttr::get(), llvm::AMDGPU::getDynamicVGPRBlockSize(), llvm::AMDGPU::getInitialPSInputAddr(), llvm::AMDGPU::getIntegerPairAttribute(), llvm::AMDGPUMachineFunction::getLDSSize(), getTM(), llvm::AMDGPUSubtarget::GFX9, llvm::AMDGPU::isChainCC(), llvm::AMDGPUMachineFunction::isEntryFunction(), llvm::AMDGPU::isGraphics(), llvm::AMDGPUMachineFunction::MaxKernArgAlign, 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 271 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 278 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 284 of file SIMachineFunctionInfo.cpp.
| Register SIMachineFunctionInfo::addPrivateSegmentBuffer | ( | const SIRegisterInfo & | TRI | ) |
Definition at line 220 of file SIMachineFunctionInfo.cpp.
References llvm::ArgDescriptor::createRegister(), and TRI.
| Register SIMachineFunctionInfo::addPrivateSegmentSize | ( | const SIRegisterInfo & | TRI | ) |
Definition at line 265 of file SIMachineFunctionInfo.cpp.
References llvm::ArgDescriptor::createRegister(), and TRI.
|
inline |
Definition at line 926 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 880 of file SIMachineFunctionInfo.h.
References llvm::Next.
|
inline |
Definition at line 707 of file SIMachineFunctionInfo.h.
References assert(), hasPrologEpilogSGPRSpillEntry(), LHS, Reg, RHS, and llvm::upper_bound().
Referenced by getVGPRSpillLaneOrTempRegister().
|
inline |
Definition at line 1112 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIRegisterInfo::spillEmergencySGPR(), and llvm::SIRegisterInfo::spillSGPR().
|
inline |
Definition at line 1116 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIRegisterInfo::buildVGPRSpillLoadStore(), and llvm::SIRegisterInfo::eliminateFrameIndex().
|
inline |
Definition at line 887 of file SIMachineFunctionInfo.h.
References llvm::ArgDescriptor::createRegister().
|
inline |
Definition at line 893 of file SIMachineFunctionInfo.h.
References llvm::ArgDescriptor::createRegister().
|
inline |
Definition at line 899 of file SIMachineFunctionInfo.h.
References llvm::ArgDescriptor::createRegister().
|
inline |
Definition at line 905 of file SIMachineFunctionInfo.h.
References llvm::ArgDescriptor::createRegister().
| bool SIMachineFunctionInfo::allocateSGPRSpillToVGPRLane | ( | MachineFunction & | MF, |
| int | FI, | ||
| bool | SpillToPhysVGPRLane = false, | ||
| bool | IsPrologEpilog = false ) |
Definition at line 455 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 502 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 315 of file SIMachineFunctionInfo.cpp.
References llvm::MachineFrameInfo::CreateSpillStackObject(), llvm::MachineFunction::getFrameInfo(), llvm::AMDGPUMachineFunction::hasInitWholeWave(), llvm::MachineFrameInfo::hasTailCall(), llvm::AMDGPUMachineFunction::isChainFunction(), llvm::SIRegisterInfo::isChainScratchRegister(), llvm::AMDGPUMachineFunction::isEntryFunction(), and Size.
Referenced by llvm::SIFrameLowering::determineCalleeSaves().
Definition at line 784 of file SIMachineFunctionInfo.h.
References Reg.
Referenced by llvm::SIInstrInfo::getLiveRangeSplitOpcode(), llvm::SIInstrInfo::getVectorRegSpillRestoreOpcode(), llvm::SIInstrInfo::getVectorRegSpillSaveOpcode(), llvm::SIRegisterInfo::getVRegFlagsOfReg(), and isWWMReg().
|
inline |
Definition at line 750 of file SIMachineFunctionInfo.h.
References llvm::find_if(), and llvm::SPILL_TO_VGPR_LANE.
Referenced by allSGPRSpillsAreDead(), and removeDeadFrameIndices().
|
inline |
Definition at line 674 of file SIMachineFunctionInfo.h.
|
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 207 of file SIMachineFunctionInfo.cpp.
References llvm::MachineFunction::cloneInfo(), and SIMachineFunctionInfo().
|
inline |
Definition at line 997 of file SIMachineFunctionInfo.h.
Definition at line 801 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIRegisterInfo::getReservedRegs(), and llvm::SIFrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 742 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 973 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPUCallLowering::passSpecialInputs().
|
inline |
Definition at line 977 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 844 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPUCallLowering::areCalleeOutgoingArgsTailCallable(), and llvm::SITargetLowering::isEligibleForTailCallOptimization().
|
inline |
Definition at line 1229 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPU::HSAMD::MetadataStreamerMsgPackV6::emitKernelAttrs(), llvm::AMDGPULegalizerInfo::legalizeWorkGroupId(), and llvm::AMDGPULegalizerInfo::loadInputValue().
|
inline |
Definition at line 853 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::emitEntryFunctionPrologue(), llvm::GCNRPTarget::GCNRPTarget(), llvm::SIRegisterInfo::getRegPressureLimit(), and llvm::GCNSchedStrategy::initialize().
Definition at line 1150 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1038 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 991 of file SIMachineFunctionInfo.h.
Referenced by buildGitPtr().
| Register SIMachineFunctionInfo::getGITPtrLoReg | ( | const MachineFunction & | MF | ) | const |
Definition at line 644 of file SIMachineFunctionInfo.cpp.
References llvm::CallingConv::AMDGPU_GS, llvm::CallingConv::AMDGPU_HS, llvm::Function::getCallingConv(), llvm::MachineFunction::getFunction(), llvm::MachineFunction::getSubtarget(), and Register.
Referenced by buildGitPtr(), and llvm::SIFrameLowering::emitEntryFunctionPrologue().
|
inline |
Definition at line 1181 of file SIMachineFunctionInfo.h.
Referenced by llvm::SITargetLowering::getTgtMemIntrinsic(), and llvm::AMDGPUMIRFormatter::parseCustomPseudoSourceValue().
|
inline |
Definition at line 1068 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 644 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIRegisterInfo::addImplicitUsesForBlockCSRLoad(), emitVGPRBlockComment(), llvm::SIFrameLowering::restoreCalleeSavedRegisters(), and llvm::SIFrameLowering::spillCalleeSavedRegisters().
|
inline |
Definition at line 1160 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1208 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIInstrInfo::shouldClusterMemOps().
|
inline |
Definition at line 1223 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1225 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1226 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1227 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1176 of file SIMachineFunctionInfo.h.
Referenced by limitOccupancy().
|
inline |
Definition at line 1189 of file SIMachineFunctionInfo.h.
References llvm::AMDGPUMachineFunction::isMemoryBound(), and llvm::AMDGPUMachineFunction::needsWaveLimiter().
Referenced by llvm::GCNSchedStrategy::initialize().
|
inline |
Definition at line 1155 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1210 of file SIMachineFunctionInfo.h.
Referenced by selectAGPRFormMFMA().
|
inline |
Definition at line 1171 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 676 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 673 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIRegisterInfo::getReservedRegs().
|
inline |
Definition at line 1009 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1005 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::emitEntryFunctionPrologue(), and llvm::GCNSubtarget::getMaxNumSGPRs().
|
inline |
Definition at line 1104 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1108 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1001 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1013 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1017 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1185 of file SIMachineFunctionInfo.h.
Referenced by llvm::GCNSchedStrategy::initialize().
|
inline |
Definition at line 842 of file SIMachineFunctionInfo.h.
Referenced by llvm::yaml::SIMachineFunctionInfo::SIMachineFunctionInfo().
|
inline |
Definition at line 986 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPUResourceUsageAnalysisImpl::analyzeResourceUsage(), and llvm::SIFrameLowering::emitEntryFunctionPrologue().
|
inline |
Definition at line 982 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPULegalizerInfo::legalizeWorkitemIDIntrinsic(), and llvm::AMDGPULegalizerInfo::loadInputValue().
|
inline |
Definition at line 1021 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 761 of file SIMachineFunctionInfo.h.
References assert(), llvm::find_if(), I, and Reg.
Referenced by llvm::SIFrameLowering::emitPrologue().
|
inline |
Definition at line 698 of file SIMachineFunctionInfo.h.
References assert(), and llvm::is_sorted().
Referenced by llvm::SIFrameLowering::emitCSRSpillRestores(), and llvm::SIFrameLowering::emitCSRSpillStores().
|
inline |
Definition at line 1120 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1124 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1064 of file SIMachineFunctionInfo.h.
| int SIMachineFunctionInfo::getScavengeFI | ( | MachineFrameInfo & | MFI, |
| const SIRegisterInfo & | TRI ) |
Definition at line 613 of file SIMachineFunctionInfo.cpp.
References llvm::MachineFrameInfo::CreateStackObject(), and TRI.
Referenced by llvm::SIFrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 856 of file SIMachineFunctionInfo.h.
|
inline |
Returns the physical register reserved for use as the resource descriptor for scratch accesses.
Definition at line 1029 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIRegisterInfo::buildSpillLoadStore(), llvm::SIRegisterInfo::eliminateFrameIndex(), llvm::SIRegisterInfo::getReservedRegs(), and llvm::AMDGPUCallLowering::handleImplicitCallArguments().
Definition at line 730 of file SIMachineFunctionInfo.h.
References llvm::COPY_TO_SCRATCH_SGPR, llvm::find_if(), I, and Reg.
Referenced by llvm::SIFrameLowering::assignCalleeSavedSpillSlots(), llvm::SIFrameLowering::emitEpilogue(), and llvm::SIFrameLowering::emitPrologue().
|
inline |
Definition at line 687 of file SIMachineFunctionInfo.h.
Referenced by llvm::yaml::SIMachineFunctionInfo::SIMachineFunctionInfo().
|
inline |
Definition at line 771 of file SIMachineFunctionInfo.h.
References llvm::ArrayRef(), and I.
Referenced by getVGPRSpillLaneOrTempRegister(), llvm::SIRegisterInfo::restoreSGPR(), and llvm::SIRegisterInfo::spillSGPR().
|
inline |
Definition at line 679 of file SIMachineFunctionInfo.h.
References llvm::ArrayRef(), and I.
Referenced by llvm::SIRegisterInfo::restoreSGPR(), and llvm::SIRegisterInfo::spillSGPR().
Definition at line 686 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1058 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::SIFrameLowering::restoreCalleeSavedRegisters(), llvm::SIFrameLowering::spillCalleeSavedRegisters(), llvm::SIRegisterInfo::spillSGPR(), and llvm::SIInstrInfo::storeRegToStackSlot().
|
inline |
Definition at line 703 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPUResourceUsageAnalysisImpl::analyzeResourceUsage(), llvm::SIFrameLowering::emitEntryFunctionPrologue(), llvm::AMDGPU::HSAMD::MetadataStreamerMsgPackV5::emitHiddenKernelArgs(), and llvm::GCNSubtarget::getReservedNumSGPRs().
|
inline |
Definition at line 705 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 809 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIRegisterInfo::getReservedRegs(), and llvm::SIFrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 813 of file SIMachineFunctionInfo.h.
References I.
Referenced by spillVGPRtoAGPR().
Definition at line 1166 of file SIMachineFunctionInfo.h.
Referenced by llvm::GCNSubtarget::getMaxNumSGPRs().
|
inline |
Definition at line 690 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::determineCalleeSaves(), llvm::SIRegisterInfo::getReservedRegs(), and llvm::yaml::SIMachineFunctionInfo::SIMachineFunctionInfo().
|
inline |
Definition at line 689 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::determineCalleeSaves().
|
inline |
Definition at line 969 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 911 of file SIMachineFunctionInfo.h.
Definition at line 648 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::restoreCalleeSavedRegisters(), and llvm::SIFrameLowering::spillCalleeSavedRegisters().
|
inline |
Definition at line 1088 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 953 of file SIMachineFunctionInfo.h.
Definition at line 722 of file SIMachineFunctionInfo.h.
References llvm::find_if(), I, and Reg.
Referenced by addToPrologEpilogSGPRSpills(), llvm::SIFrameLowering::determinePrologEpilogSGPRSaves(), llvm::SIFrameLowering::emitEpilogue(), and llvm::SIFrameLowering::emitPrologue().
|
inline |
Definition at line 1072 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::determineCalleeSavesSGPR().
|
inline |
Definition at line 1080 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 791 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 937 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 941 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 945 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPULegalizerInfo::loadInputValue().
|
inline |
Definition at line 949 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 957 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 961 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 965 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1202 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 792 of file SIMachineFunctionInfo.cpp.
References llvm::yaml::SIMachineFunctionInfo::BytesInStackArgArea, llvm::SourceMgr::DK_Error, llvm::AMDGPUMachineFunction::DynLDSAlign, llvm::yaml::SIMachineFunctionInfo::DynLDSAlign, llvm::AMDGPUMachineFunction::ExplicitKernArgSize, llvm::yaml::SIMachineFunctionInfo::ExplicitKernArgSize, llvm::AMDGPUMachineFunction::GDSSize, 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::AMDGPUMachineFunction::IsEntryFunction, llvm::yaml::SIMachineFunctionInfo::IsEntryFunction, llvm::yaml::SIMachineFunctionInfo::IsWholeWaveFunction, llvm::AMDGPUMachineFunction::LDSSize, llvm::yaml::SIMachineFunctionInfo::LDSSize, llvm::AMDGPUMachineFunction::MaxKernArgAlign, llvm::yaml::SIMachineFunctionInfo::MaxKernArgAlign, llvm::yaml::SIMachineFunctionInfo::MaxMemoryClusterDWords, llvm::AMDGPUMachineFunction::MemoryBound, llvm::yaml::SIMachineFunctionInfo::MemoryBound, llvm::AMDGPUMachineFunction::NoSignedZerosFPMath, llvm::yaml::SIMachineFunctionInfo::NoSignedZerosFPMath, llvm::yaml::SIMachineFunctionInfo::NumKernargPreloadSGPRs, llvm::yaml::SIMachineFunctionInfo::NumWaveDispatchSGPRs, llvm::yaml::SIMachineFunctionInfo::NumWaveDispatchVGPRs, llvm::yaml::SIMachineFunctionInfo::Occupancy, llvm::yaml::SIMachineFunctionInfo::PSInputAddr, llvm::yaml::SIMachineFunctionInfo::PSInputEnable, llvm::yaml::SIMachineFunctionInfo::ReturnsVoid, llvm::yaml::SIMachineFunctionInfo::ScavengeFI, llvm::PerFunctionMIParsingState::SM, llvm::toString(), llvm::AMDGPUMachineFunction::WaveLimiter, and llvm::yaml::SIMachineFunctionInfo::WaveLimiter.
Referenced by llvm::GCNTargetMachine::parseMachineFunctionInfo().
Definition at line 353 of file SIMachineFunctionInfo.cpp.
References I.
Referenced by splitWWMSpillRegisters().
|
inline |
Definition at line 852 of file SIMachineFunctionInfo.h.
Definition at line 1128 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1096 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPUResourceUsageAnalysisImpl::analyzeResourceUsage(), and llvm::SIFrameLowering::emitEpilogue().
|
inline |
Definition at line 696 of file SIMachineFunctionInfo.h.
Referenced by buildScratchExecCopy(), llvm::SIFrameLowering::determineCalleeSaves(), llvm::SIFrameLowering::emitCSRSpillRestores(), llvm::SIFrameLowering::emitCSRSpillStores(), llvm::SITargetLowering::EmitInstrWithCustomInserter(), llvm::SIFrameLowering::emitPrologue(), llvm::SIInstrInfo::getWholeWaveFunctionSetup(), and llvm::AMDGPUCallLowering::lowerReturn().
Definition at line 667 of file SIMachineFunctionInfo.h.
References checkFlag(), Reg, and llvm::AMDGPU::VirtRegFlag::WWM_REG.
Referenced by llvm::SIInstrInfo::isBasicBlockPrologue().
Definition at line 692 of file SIMachineFunctionInfo.h.
References Reg.
Referenced by assignSlotsUsingVGPRBlocks().
| void SIMachineFunctionInfo::limitOccupancy | ( | const MachineFunction & | MF | ) |
Definition at line 214 of file SIMachineFunctionInfo.cpp.
References getMaxWavesPerEU(), llvm::MachineFunction::getSubtarget(), and limitOccupancy().
Referenced by increaseOccupancy(), and limitOccupancy().
|
inline |
Definition at line 1197 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1132 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1136 of file SIMachineFunctionInfo.h.
Definition at line 839 of file SIMachineFunctionInfo.cpp.
References F, and llvm::AMDGPU::getIntegerPairAttribute().
| 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 568 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 666 of file SIMachineFunctionInfo.h.
References Reg.
Referenced by llvm::SIFrameLowering::determineCalleeSaves(), and llvm::GCNTargetMachine::parseMachineFunctionInfo().
|
inline |
Definition at line 1140 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPUCallLowering::lowerReturn().
Return true if an MFMA that requires at least NumRegs should select to the AGPR form, instead of the VGPR form.
Definition at line 1214 of file SIMachineFunctionInfo.h.
References getMinNumAGPRs(), and MFMAVGPRForm.
Referenced by llvm::AMDGPURegisterBankInfo::getInstrMapping().
|
inline |
Definition at line 848 of file SIMachineFunctionInfo.h.
Definition at line 778 of file SIMachineFunctionInfo.h.
Referenced by llvm::GCNTargetMachine::parseMachineFunctionInfo().
|
inline |
Definition at line 1042 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1092 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1076 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIInstrInfo::loadRegFromStackSlot(), and llvm::SIInstrInfo::storeRegToStackSlot().
|
inline |
Definition at line 1084 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::spillCalleeSavedRegisters(), and llvm::SIInstrInfo::storeRegToStackSlot().
|
inline |
Definition at line 1144 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPUCallLowering::lowerReturn().
|
inline |
Definition at line 1100 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::emitPrologue().
|
inline |
Definition at line 1052 of file SIMachineFunctionInfo.h.
References Reg.
Referenced by llvm::SIFrameLowering::processFunctionBeforeFrameIndicesReplaced().
|
inline |
Definition at line 639 of file SIMachineFunctionInfo.h.
Referenced by assignSlotsUsingVGPRBlocks().
|
inline |
Definition at line 1015 of file SIMachineFunctionInfo.h.
References llvm::Count.
|
inline |
Definition at line 1019 of file SIMachineFunctionInfo.h.
References llvm::Count.
|
inline |
Definition at line 933 of file SIMachineFunctionInfo.h.
References llvm::ArgDescriptor::createRegister(), and Reg.
|
inline |
Definition at line 860 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::emitEntryFunctionPrologue().
|
inline |
Definition at line 1033 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 807 of file SIMachineFunctionInfo.h.
References Reg.
Referenced by llvm::SIFrameLowering::determinePrologEpilogSGPRSaves().
|
inline |
Definition at line 1047 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 633 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::processFunctionBeforeFrameIndicesReplaced().
|
inline |
Definition at line 819 of file SIMachineFunctionInfo.h.
References I.
Referenced by llvm::SIFrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 914 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 918 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 922 of file SIMachineFunctionInfo.h.
| void SIMachineFunctionInfo::shiftWwmVGPRsToLowestRange | ( | MachineFunction & | MF, |
| SmallVectorImpl< Register > & | WWMVGPRs, | ||
| BitVector & | SavedVGPRs ) |
Definition at line 363 of file SIMachineFunctionInfo.cpp.
References llvm::find(), llvm::MachineFunction::getRegInfo(), llvm::MachineFunction::getSubtarget(), I, MBB, MRI, llvm::BitVector::reset(), llvm::SmallVectorTemplateCommon< T, typename >::size(), 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 340 of file SIMachineFunctionInfo.cpp.
References llvm::MachineRegisterInfo::getCalleeSavedRegs(), llvm::MachineFunction::getRegInfo(), and isCalleeSavedReg().
Referenced by llvm::SIFrameLowering::emitCSRSpillRestores(), and llvm::SIFrameLowering::emitCSRSpillStores().
|
inline |
Definition at line 672 of file SIMachineFunctionInfo.h.
|
friend |
Definition at line 418 of file SIMachineFunctionInfo.h.
References GCNTargetMachine.
Referenced by GCNTargetMachine.
|
static |
Definition at line 547 of file SIMachineFunctionInfo.h.
Referenced by selectAGPRFormMFMA().