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 |
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 411 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 47 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::AMDGPUMachineFunction::getLDSSize(), getTM(), llvm::AMDGPUSubtarget::GFX9, llvm::AMDGPU::isChainCC(), llvm::AMDGPUMachineFunction::isEntryFunction(), llvm::AMDGPU::isGraphics(), llvm::AMDGPUMachineFunction::MaxKernArgAlign, mayUseAGPRs(), MFMAVGPRForm, and llvm::CallingConv::SPIR_KERNEL.
Register SIMachineFunctionInfo::addDispatchID | ( | const SIRegisterInfo & | TRI | ) |
Definition at line 249 of file SIMachineFunctionInfo.cpp.
References llvm::ArgDescriptor::createRegister(), and TRI.
Register SIMachineFunctionInfo::addDispatchPtr | ( | const SIRegisterInfo & | TRI | ) |
Definition at line 227 of file SIMachineFunctionInfo.cpp.
References llvm::ArgDescriptor::createRegister(), and TRI.
Register SIMachineFunctionInfo::addFlatScratchInit | ( | const SIRegisterInfo & | TRI | ) |
Definition at line 256 of file SIMachineFunctionInfo.cpp.
References llvm::ArgDescriptor::createRegister(), and TRI.
Register SIMachineFunctionInfo::addImplicitBufferPtr | ( | const SIRegisterInfo & | TRI | ) |
Definition at line 269 of file SIMachineFunctionInfo.cpp.
References llvm::ArgDescriptor::createRegister(), and TRI.
Register SIMachineFunctionInfo::addKernargSegmentPtr | ( | const SIRegisterInfo & | TRI | ) |
Definition at line 241 of file SIMachineFunctionInfo.cpp.
References llvm::ArgDescriptor::createRegister(), and TRI.
Register SIMachineFunctionInfo::addLDSKernelId | ( | ) |
Definition at line 276 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 282 of file SIMachineFunctionInfo.cpp.
Register SIMachineFunctionInfo::addPrivateSegmentBuffer | ( | const SIRegisterInfo & | TRI | ) |
Definition at line 218 of file SIMachineFunctionInfo.cpp.
References llvm::ArgDescriptor::createRegister(), and TRI.
Register SIMachineFunctionInfo::addPrivateSegmentSize | ( | const SIRegisterInfo & | TRI | ) |
Definition at line 263 of file SIMachineFunctionInfo.cpp.
References llvm::ArgDescriptor::createRegister(), and TRI.
|
inline |
Definition at line 917 of file SIMachineFunctionInfo.h.
References llvm::ArgDescriptor::createRegister().
Register SIMachineFunctionInfo::addQueuePtr | ( | const SIRegisterInfo & | TRI | ) |
Definition at line 234 of file SIMachineFunctionInfo.cpp.
References llvm::ArgDescriptor::createRegister(), and TRI.
|
inline |
Increment user SGPRs used for padding the argument list only.
Definition at line 871 of file SIMachineFunctionInfo.h.
References llvm::Next.
|
inline |
Definition at line 698 of file SIMachineFunctionInfo.h.
References assert(), hasPrologEpilogSGPRSpillEntry(), LHS, Reg, RHS, and llvm::upper_bound().
Referenced by getVGPRSpillLaneOrTempRegister().
|
inline |
Definition at line 1101 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIRegisterInfo::spillEmergencySGPR(), and llvm::SIRegisterInfo::spillSGPR().
|
inline |
Definition at line 1105 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIRegisterInfo::buildVGPRSpillLoadStore(), and llvm::SIRegisterInfo::eliminateFrameIndex().
|
inline |
Definition at line 878 of file SIMachineFunctionInfo.h.
References llvm::ArgDescriptor::createRegister().
|
inline |
Definition at line 884 of file SIMachineFunctionInfo.h.
References llvm::ArgDescriptor::createRegister().
|
inline |
Definition at line 890 of file SIMachineFunctionInfo.h.
References llvm::ArgDescriptor::createRegister().
|
inline |
Definition at line 896 of file SIMachineFunctionInfo.h.
References llvm::ArgDescriptor::createRegister().
bool SIMachineFunctionInfo::allocateSGPRSpillToVGPRLane | ( | MachineFunction & | MF, |
int | FI, | ||
bool | SpillToPhysVGPRLane = false, | ||
bool | IsPrologEpilog = false ) |
Definition at line 453 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 500 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 313 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 775 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 741 of file SIMachineFunctionInfo.h.
References llvm::find_if(), and llvm::SPILL_TO_VGPR_LANE.
Referenced by allSGPRSpillsAreDead(), and removeDeadFrameIndices().
|
inline |
Definition at line 665 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 205 of file SIMachineFunctionInfo.cpp.
References llvm::MachineFunction::cloneInfo(), and SIMachineFunctionInfo().
|
inline |
Definition at line 988 of file SIMachineFunctionInfo.h.
Definition at line 792 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIRegisterInfo::getReservedRegs(), and llvm::SIFrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 733 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 964 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPUCallLowering::passSpecialInputs().
|
inline |
Definition at line 968 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 835 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPUCallLowering::areCalleeOutgoingArgsTailCallable(), and llvm::SITargetLowering::isEligibleForTailCallOptimization().
|
inline |
Definition at line 1214 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPU::HSAMD::MetadataStreamerMsgPackV6::emitKernelAttrs(), llvm::AMDGPULegalizerInfo::legalizeWorkGroupId(), and llvm::AMDGPULegalizerInfo::loadInputValue().
|
inline |
Definition at line 844 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::emitEntryFunctionPrologue(), llvm::GCNRPTarget::GCNRPTarget(), llvm::SIRegisterInfo::getRegPressureLimit(), and llvm::GCNSchedStrategy::initialize().
Definition at line 1139 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1027 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 982 of file SIMachineFunctionInfo.h.
Referenced by buildGitPtr().
Register SIMachineFunctionInfo::getGITPtrLoReg | ( | const MachineFunction & | MF | ) | const |
Definition at line 642 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 1170 of file SIMachineFunctionInfo.h.
Referenced by llvm::SITargetLowering::getTgtMemIntrinsic(), and llvm::AMDGPUMIRFormatter::parseCustomPseudoSourceValue().
|
inline |
Definition at line 1057 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 635 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIRegisterInfo::addImplicitUsesForBlockCSRLoad(), emitVGPRBlockComment(), llvm::SIFrameLowering::restoreCalleeSavedRegisters(), and llvm::SIFrameLowering::spillCalleeSavedRegisters().
|
inline |
Definition at line 1149 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1197 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIInstrInfo::shouldClusterMemOps().
|
inline |
Definition at line 1208 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1210 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1211 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1212 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1165 of file SIMachineFunctionInfo.h.
Referenced by limitOccupancy().
|
inline |
Definition at line 1178 of file SIMachineFunctionInfo.h.
References llvm::AMDGPUMachineFunction::isMemoryBound(), and llvm::AMDGPUMachineFunction::needsWaveLimiter().
Referenced by llvm::GCNSchedStrategy::initialize().
|
inline |
Definition at line 1144 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1160 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 667 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 664 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIRegisterInfo::getReservedRegs().
|
inline |
Definition at line 1000 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 996 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::emitEntryFunctionPrologue(), and llvm::GCNSubtarget::getMaxNumSGPRs().
|
inline |
Definition at line 1093 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1097 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 992 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1004 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1008 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1174 of file SIMachineFunctionInfo.h.
Referenced by llvm::GCNSchedStrategy::initialize().
|
inline |
Definition at line 833 of file SIMachineFunctionInfo.h.
Referenced by llvm::yaml::SIMachineFunctionInfo::SIMachineFunctionInfo().
|
inline |
Definition at line 977 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPUResourceUsageAnalysisImpl::analyzeResourceUsage(), and llvm::SIFrameLowering::emitEntryFunctionPrologue().
|
inline |
Definition at line 973 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPULegalizerInfo::legalizeWorkitemIDIntrinsic(), and llvm::AMDGPULegalizerInfo::loadInputValue().
|
inline |
Definition at line 1012 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 752 of file SIMachineFunctionInfo.h.
References assert(), llvm::find_if(), I, and Reg.
Referenced by llvm::SIFrameLowering::emitPrologue().
|
inline |
Definition at line 689 of file SIMachineFunctionInfo.h.
References assert(), and llvm::is_sorted().
Referenced by llvm::SIFrameLowering::emitCSRSpillRestores(), and llvm::SIFrameLowering::emitCSRSpillStores().
|
inline |
Definition at line 1109 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1113 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1053 of file SIMachineFunctionInfo.h.
int SIMachineFunctionInfo::getScavengeFI | ( | MachineFrameInfo & | MFI, |
const SIRegisterInfo & | TRI ) |
Definition at line 611 of file SIMachineFunctionInfo.cpp.
References llvm::MachineFrameInfo::CreateStackObject(), and TRI.
Referenced by llvm::SIFrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 847 of file SIMachineFunctionInfo.h.
|
inline |
Returns the physical register reserved for use as the resource descriptor for scratch accesses.
Definition at line 1018 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIRegisterInfo::buildSpillLoadStore(), llvm::SIRegisterInfo::eliminateFrameIndex(), llvm::SIRegisterInfo::getReservedRegs(), and llvm::AMDGPUCallLowering::handleImplicitCallArguments().
Definition at line 721 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 678 of file SIMachineFunctionInfo.h.
Referenced by llvm::yaml::SIMachineFunctionInfo::SIMachineFunctionInfo().
|
inline |
Definition at line 762 of file SIMachineFunctionInfo.h.
References llvm::ArrayRef(), and I.
Referenced by getVGPRSpillLaneOrTempRegister(), llvm::SIRegisterInfo::restoreSGPR(), and llvm::SIRegisterInfo::spillSGPR().
|
inline |
Definition at line 670 of file SIMachineFunctionInfo.h.
References llvm::ArrayRef(), and I.
Referenced by llvm::SIRegisterInfo::restoreSGPR(), and llvm::SIRegisterInfo::spillSGPR().
Definition at line 677 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1047 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 694 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 696 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 800 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIRegisterInfo::getReservedRegs(), and llvm::SIFrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 804 of file SIMachineFunctionInfo.h.
References I.
Referenced by spillVGPRtoAGPR().
Definition at line 1155 of file SIMachineFunctionInfo.h.
Referenced by llvm::GCNSubtarget::getMaxNumSGPRs().
|
inline |
Definition at line 681 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::determineCalleeSaves(), llvm::SIRegisterInfo::getReservedRegs(), and llvm::yaml::SIMachineFunctionInfo::SIMachineFunctionInfo().
|
inline |
Definition at line 680 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::determineCalleeSaves().
|
inline |
Definition at line 960 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 902 of file SIMachineFunctionInfo.h.
Definition at line 639 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::restoreCalleeSavedRegisters(), and llvm::SIFrameLowering::spillCalleeSavedRegisters().
|
inline |
Definition at line 1077 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 944 of file SIMachineFunctionInfo.h.
Definition at line 713 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 1061 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::determineCalleeSavesSGPR().
|
inline |
Definition at line 1069 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 782 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 928 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 932 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 936 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPULegalizerInfo::loadInputValue().
|
inline |
Definition at line 940 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 948 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 952 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 956 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1191 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 775 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::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 351 of file SIMachineFunctionInfo.cpp.
References I.
Referenced by splitWWMSpillRegisters().
|
inline |
Definition at line 843 of file SIMachineFunctionInfo.h.
Definition at line 1117 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1085 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPUResourceUsageAnalysisImpl::analyzeResourceUsage(), and llvm::SIFrameLowering::emitEpilogue().
|
inline |
Definition at line 687 of file SIMachineFunctionInfo.h.
Referenced by buildScratchExecCopy(), llvm::SIFrameLowering::determineCalleeSaves(), llvm::SIFrameLowering::emitCSRSpillRestores(), llvm::SIFrameLowering::emitCSRSpillStores(), llvm::SITargetLowering::EmitInstrWithCustomInserter(), llvm::SIInstrInfo::getWholeWaveFunctionSetup(), and llvm::AMDGPUCallLowering::lowerReturn().
Definition at line 658 of file SIMachineFunctionInfo.h.
References checkFlag(), Reg, and llvm::AMDGPU::VirtRegFlag::WWM_REG.
Referenced by llvm::SIInstrInfo::isBasicBlockPrologue().
Definition at line 683 of file SIMachineFunctionInfo.h.
References Reg.
Referenced by assignSlotsUsingVGPRBlocks().
void SIMachineFunctionInfo::limitOccupancy | ( | const MachineFunction & | MF | ) |
Definition at line 212 of file SIMachineFunctionInfo.cpp.
References getMaxWavesPerEU(), llvm::MachineFunction::getSubtarget(), and limitOccupancy().
Referenced by increaseOccupancy(), and limitOccupancy().
|
inline |
Definition at line 1186 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1121 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1125 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1199 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPURegisterBankInfo::getInstrMapping().
Definition at line 820 of file SIMachineFunctionInfo.cpp.
References F, and llvm::AMDGPU::getIntegerPairAttribute().
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 566 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 657 of file SIMachineFunctionInfo.h.
References Reg.
Referenced by llvm::SIFrameLowering::determineCalleeSaves(), and llvm::GCNTargetMachine::parseMachineFunctionInfo().
|
inline |
Definition at line 1129 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPUCallLowering::lowerReturn().
|
inline |
Definition at line 839 of file SIMachineFunctionInfo.h.
Definition at line 769 of file SIMachineFunctionInfo.h.
Referenced by llvm::GCNTargetMachine::parseMachineFunctionInfo().
|
inline |
Definition at line 1031 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1081 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1065 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIInstrInfo::loadRegFromStackSlot(), and llvm::SIInstrInfo::storeRegToStackSlot().
|
inline |
Definition at line 1073 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::spillCalleeSavedRegisters(), and llvm::SIInstrInfo::storeRegToStackSlot().
|
inline |
Definition at line 1133 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPUCallLowering::lowerReturn().
|
inline |
Definition at line 1089 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::emitPrologue().
|
inline |
Definition at line 1041 of file SIMachineFunctionInfo.h.
References Reg.
Referenced by llvm::SIFrameLowering::processFunctionBeforeFrameIndicesReplaced().
|
inline |
Definition at line 630 of file SIMachineFunctionInfo.h.
Referenced by assignSlotsUsingVGPRBlocks().
|
inline |
Definition at line 1006 of file SIMachineFunctionInfo.h.
References llvm::Count.
|
inline |
Definition at line 1010 of file SIMachineFunctionInfo.h.
References llvm::Count.
|
inline |
Definition at line 924 of file SIMachineFunctionInfo.h.
References llvm::ArgDescriptor::createRegister(), and Reg.
|
inline |
Definition at line 851 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::emitEntryFunctionPrologue().
|
inline |
Definition at line 1022 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 798 of file SIMachineFunctionInfo.h.
References Reg.
Referenced by llvm::SIFrameLowering::determinePrologEpilogSGPRSaves().
|
inline |
Definition at line 1036 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 624 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::processFunctionBeforeFrameIndicesReplaced().
|
inline |
Definition at line 810 of file SIMachineFunctionInfo.h.
References I.
Referenced by llvm::SIFrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 905 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 909 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 913 of file SIMachineFunctionInfo.h.
void SIMachineFunctionInfo::shiftWwmVGPRsToLowestRange | ( | MachineFunction & | MF, |
SmallVectorImpl< Register > & | WWMVGPRs, | ||
BitVector & | SavedVGPRs ) |
Definition at line 361 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 338 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 663 of file SIMachineFunctionInfo.h.
|
friend |
Definition at line 413 of file SIMachineFunctionInfo.h.
References GCNTargetMachine.
Referenced by GCNTargetMachine.