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 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 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 921 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 875 of file SIMachineFunctionInfo.h.
References llvm::Next.
|
inline |
Definition at line 702 of file SIMachineFunctionInfo.h.
References assert(), hasPrologEpilogSGPRSpillEntry(), LHS, Reg, RHS, and llvm::upper_bound().
Referenced by getVGPRSpillLaneOrTempRegister().
|
inline |
Definition at line 1105 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIRegisterInfo::spillEmergencySGPR(), and llvm::SIRegisterInfo::spillSGPR().
|
inline |
Definition at line 1109 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIRegisterInfo::buildVGPRSpillLoadStore(), and llvm::SIRegisterInfo::eliminateFrameIndex().
|
inline |
Definition at line 882 of file SIMachineFunctionInfo.h.
References llvm::ArgDescriptor::createRegister().
|
inline |
Definition at line 888 of file SIMachineFunctionInfo.h.
References llvm::ArgDescriptor::createRegister().
|
inline |
Definition at line 894 of file SIMachineFunctionInfo.h.
References llvm::ArgDescriptor::createRegister().
|
inline |
Definition at line 900 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 779 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 745 of file SIMachineFunctionInfo.h.
References llvm::find_if(), and llvm::SPILL_TO_VGPR_LANE.
Referenced by allSGPRSpillsAreDead(), and removeDeadFrameIndices().
|
inline |
Definition at line 669 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 992 of file SIMachineFunctionInfo.h.
Definition at line 796 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIRegisterInfo::getReservedRegs(), and llvm::SIFrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 737 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 968 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPUCallLowering::passSpecialInputs().
|
inline |
Definition at line 972 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 839 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPUCallLowering::areCalleeOutgoingArgsTailCallable(), and llvm::SITargetLowering::isEligibleForTailCallOptimization().
|
inline |
Definition at line 1222 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPU::HSAMD::MetadataStreamerMsgPackV6::emitKernelAttrs(), llvm::AMDGPULegalizerInfo::legalizeWorkGroupId(), and llvm::AMDGPULegalizerInfo::loadInputValue().
|
inline |
Definition at line 848 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::emitEntryFunctionPrologue(), llvm::GCNRPTarget::GCNRPTarget(), llvm::SIRegisterInfo::getRegPressureLimit(), and llvm::GCNSchedStrategy::initialize().
Definition at line 1143 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1031 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 986 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 1174 of file SIMachineFunctionInfo.h.
Referenced by llvm::SITargetLowering::getTgtMemIntrinsic(), and llvm::AMDGPUMIRFormatter::parseCustomPseudoSourceValue().
|
inline |
Definition at line 1061 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 639 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIRegisterInfo::addImplicitUsesForBlockCSRLoad(), emitVGPRBlockComment(), llvm::SIFrameLowering::restoreCalleeSavedRegisters(), and llvm::SIFrameLowering::spillCalleeSavedRegisters().
|
inline |
Definition at line 1153 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1201 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIInstrInfo::shouldClusterMemOps().
|
inline |
Definition at line 1216 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1218 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1219 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1220 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1169 of file SIMachineFunctionInfo.h.
Referenced by limitOccupancy().
|
inline |
Definition at line 1182 of file SIMachineFunctionInfo.h.
References llvm::AMDGPUMachineFunction::isMemoryBound(), and llvm::AMDGPUMachineFunction::needsWaveLimiter().
Referenced by llvm::GCNSchedStrategy::initialize().
|
inline |
Definition at line 1148 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1203 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPURegisterBankInfo::getInstrMapping(), and selectAGPRFormMFMA().
|
inline |
Definition at line 1164 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 671 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 668 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIRegisterInfo::getReservedRegs().
|
inline |
Definition at line 1004 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1000 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::emitEntryFunctionPrologue(), and llvm::GCNSubtarget::getMaxNumSGPRs().
|
inline |
Definition at line 1097 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1101 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 996 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1008 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1012 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1178 of file SIMachineFunctionInfo.h.
Referenced by llvm::GCNSchedStrategy::initialize().
|
inline |
Definition at line 837 of file SIMachineFunctionInfo.h.
Referenced by llvm::yaml::SIMachineFunctionInfo::SIMachineFunctionInfo().
|
inline |
Definition at line 981 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPUResourceUsageAnalysisImpl::analyzeResourceUsage(), and llvm::SIFrameLowering::emitEntryFunctionPrologue().
|
inline |
Definition at line 977 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPULegalizerInfo::legalizeWorkitemIDIntrinsic(), and llvm::AMDGPULegalizerInfo::loadInputValue().
|
inline |
Definition at line 1016 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 756 of file SIMachineFunctionInfo.h.
References assert(), llvm::find_if(), I, and Reg.
Referenced by llvm::SIFrameLowering::emitPrologue().
|
inline |
Definition at line 693 of file SIMachineFunctionInfo.h.
References assert(), and llvm::is_sorted().
Referenced by llvm::SIFrameLowering::emitCSRSpillRestores(), and llvm::SIFrameLowering::emitCSRSpillStores().
|
inline |
Definition at line 1113 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1117 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1057 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 851 of file SIMachineFunctionInfo.h.
|
inline |
Returns the physical register reserved for use as the resource descriptor for scratch accesses.
Definition at line 1022 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIRegisterInfo::buildSpillLoadStore(), llvm::SIRegisterInfo::eliminateFrameIndex(), llvm::SIRegisterInfo::getReservedRegs(), and llvm::AMDGPUCallLowering::handleImplicitCallArguments().
Definition at line 725 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 682 of file SIMachineFunctionInfo.h.
Referenced by llvm::yaml::SIMachineFunctionInfo::SIMachineFunctionInfo().
|
inline |
Definition at line 766 of file SIMachineFunctionInfo.h.
References llvm::ArrayRef(), and I.
Referenced by getVGPRSpillLaneOrTempRegister(), llvm::SIRegisterInfo::restoreSGPR(), and llvm::SIRegisterInfo::spillSGPR().
|
inline |
Definition at line 674 of file SIMachineFunctionInfo.h.
References llvm::ArrayRef(), and I.
Referenced by llvm::SIRegisterInfo::restoreSGPR(), and llvm::SIRegisterInfo::spillSGPR().
Definition at line 681 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1051 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 698 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 700 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 804 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIRegisterInfo::getReservedRegs(), and llvm::SIFrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 808 of file SIMachineFunctionInfo.h.
References I.
Referenced by spillVGPRtoAGPR().
Definition at line 1159 of file SIMachineFunctionInfo.h.
Referenced by llvm::GCNSubtarget::getMaxNumSGPRs().
|
inline |
Definition at line 685 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::determineCalleeSaves(), llvm::SIRegisterInfo::getReservedRegs(), and llvm::yaml::SIMachineFunctionInfo::SIMachineFunctionInfo().
|
inline |
Definition at line 684 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::determineCalleeSaves().
|
inline |
Definition at line 964 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 906 of file SIMachineFunctionInfo.h.
Definition at line 643 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::restoreCalleeSavedRegisters(), and llvm::SIFrameLowering::spillCalleeSavedRegisters().
|
inline |
Definition at line 1081 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 948 of file SIMachineFunctionInfo.h.
Definition at line 717 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 1065 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::determineCalleeSavesSGPR().
|
inline |
Definition at line 1073 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 786 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 932 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 936 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 940 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPULegalizerInfo::loadInputValue().
|
inline |
Definition at line 944 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 960 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1195 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 777 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 353 of file SIMachineFunctionInfo.cpp.
References I.
Referenced by splitWWMSpillRegisters().
|
inline |
Definition at line 847 of file SIMachineFunctionInfo.h.
Definition at line 1121 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1089 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPUResourceUsageAnalysisImpl::analyzeResourceUsage(), and llvm::SIFrameLowering::emitEpilogue().
|
inline |
Definition at line 691 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 662 of file SIMachineFunctionInfo.h.
References checkFlag(), Reg, and llvm::AMDGPU::VirtRegFlag::WWM_REG.
Referenced by llvm::SIInstrInfo::isBasicBlockPrologue().
Definition at line 687 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 1190 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1125 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1129 of file SIMachineFunctionInfo.h.
Definition at line 822 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 661 of file SIMachineFunctionInfo.h.
References Reg.
Referenced by llvm::SIFrameLowering::determineCalleeSaves(), and llvm::GCNTargetMachine::parseMachineFunctionInfo().
|
inline |
Definition at line 1133 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 1207 of file SIMachineFunctionInfo.h.
References getMinNumAGPRs(), and MFMAVGPRForm.
Referenced by llvm::AMDGPURegisterBankInfo::getInstrMapping().
|
inline |
Definition at line 843 of file SIMachineFunctionInfo.h.
Definition at line 773 of file SIMachineFunctionInfo.h.
Referenced by llvm::GCNTargetMachine::parseMachineFunctionInfo().
|
inline |
Definition at line 1035 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1085 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 1069 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIInstrInfo::loadRegFromStackSlot(), and llvm::SIInstrInfo::storeRegToStackSlot().
|
inline |
Definition at line 1077 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::spillCalleeSavedRegisters(), and llvm::SIInstrInfo::storeRegToStackSlot().
|
inline |
Definition at line 1137 of file SIMachineFunctionInfo.h.
Referenced by llvm::AMDGPUCallLowering::lowerReturn().
|
inline |
Definition at line 1093 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::emitPrologue().
|
inline |
Definition at line 1045 of file SIMachineFunctionInfo.h.
References Reg.
Referenced by llvm::SIFrameLowering::processFunctionBeforeFrameIndicesReplaced().
|
inline |
Definition at line 634 of file SIMachineFunctionInfo.h.
Referenced by assignSlotsUsingVGPRBlocks().
|
inline |
Definition at line 1010 of file SIMachineFunctionInfo.h.
References llvm::Count.
|
inline |
Definition at line 1014 of file SIMachineFunctionInfo.h.
References llvm::Count.
|
inline |
Definition at line 928 of file SIMachineFunctionInfo.h.
References llvm::ArgDescriptor::createRegister(), and Reg.
|
inline |
Definition at line 855 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::emitEntryFunctionPrologue().
|
inline |
Definition at line 1026 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 802 of file SIMachineFunctionInfo.h.
References Reg.
Referenced by llvm::SIFrameLowering::determinePrologEpilogSGPRSaves().
|
inline |
Definition at line 1040 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 628 of file SIMachineFunctionInfo.h.
Referenced by llvm::SIFrameLowering::processFunctionBeforeFrameIndicesReplaced().
|
inline |
Definition at line 814 of file SIMachineFunctionInfo.h.
References I.
Referenced by llvm::SIFrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 909 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 913 of file SIMachineFunctionInfo.h.
|
inline |
Definition at line 917 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 667 of file SIMachineFunctionInfo.h.
|
friend |
Definition at line 413 of file SIMachineFunctionInfo.h.
References GCNTargetMachine.
Referenced by GCNTargetMachine.
|
static |
Definition at line 542 of file SIMachineFunctionInfo.h.
Referenced by selectAGPRFormMFMA().