LLVM  7.0.0svn
Public Member Functions | Static Public Member Functions | List of all members
llvm::SISubtarget Class Referencefinal

#include "Target/AMDGPU/AMDGPUSubtarget.h"

Inheritance diagram for llvm::SISubtarget:
Inheritance graph
[legend]
Collaboration diagram for llvm::SISubtarget:
Collaboration graph
[legend]

Public Member Functions

 SISubtarget (const Triple &TT, StringRef CPU, StringRef FS, const GCNTargetMachine &TM)
 
const SIInstrInfogetInstrInfo () const override
 
const SIFrameLoweringgetFrameLowering () const override
 
const SITargetLoweringgetTargetLowering () const override
 
const CallLoweringgetCallLowering () const override
 
const InstructionSelectorgetInstructionSelector () const override
 
const LegalizerInfogetLegalizerInfo () const override
 
const RegisterBankInfogetRegBankInfo () const override
 
const SIRegisterInfogetRegisterInfo () const override
 
bool enableEarlyIfConversion () const override
 
void overrideSchedPolicy (MachineSchedPolicy &Policy, unsigned NumRegionInstrs) const override
 
bool isVGPRSpillingEnabled (const Function &F) const
 
unsigned getMaxNumUserSGPRs () const
 
bool hasSMemRealTime () const
 
bool hasMovrel () const
 
bool hasVGPRIndexMode () const
 
bool useVGPRIndexMode (bool UserEnable) const
 
bool hasScalarCompareEq64 () const
 
bool hasScalarStores () const
 
bool hasScalarAtomics () const
 
bool hasInv2PiInlineImm () const
 
bool hasDPP () const
 
bool enableSIScheduler () const
 
bool debuggerSupported () const
 
bool debuggerInsertNops () const
 
bool debuggerEmitPrologue () const
 
bool loadStoreOptEnabled () const
 
bool hasSGPRInitBug () const
 
bool has12DWordStoreHazard () const
 
bool hasSMovFedHazard () const
 
bool hasReadM0MovRelInterpHazard () const
 
bool hasReadM0SendMsgHazard () const
 
uint64_t getExplicitKernArgSize (const Function &F) const
 
unsigned getKernArgSegmentSize (const Function &F, int64_t ExplicitArgBytes=-1) const
 
unsigned getOccupancyWithNumSGPRs (unsigned SGPRs) const
 Return the maximum number of waves per SIMD for kernels using SGPRs SGPRs. More...
 
unsigned getOccupancyWithNumVGPRs (unsigned VGPRs) const
 Return the maximum number of waves per SIMD for kernels using VGPRs VGPRs. More...
 
bool flatScratchIsPointer () const
 
bool hasMergedShaders () const
 
unsigned getSGPRAllocGranule () const
 
unsigned getSGPREncodingGranule () const
 
unsigned getTotalNumSGPRs () const
 
unsigned getAddressableNumSGPRs () const
 
unsigned getMinNumSGPRs (unsigned WavesPerEU) const
 
unsigned getMaxNumSGPRs (unsigned WavesPerEU, bool Addressable) const
 
unsigned getReservedNumSGPRs (const MachineFunction &MF) const
 
unsigned getMaxNumSGPRs (const MachineFunction &MF) const
 
unsigned getVGPRAllocGranule () const
 
unsigned getVGPREncodingGranule () const
 
unsigned getTotalNumVGPRs () const
 
unsigned getAddressableNumVGPRs () const
 
unsigned getMinNumVGPRs (unsigned WavesPerEU) const
 
unsigned getMaxNumVGPRs (unsigned WavesPerEU) const
 
unsigned getMaxNumVGPRs (const MachineFunction &MF) const
 
void getPostRAMutations (std::vector< std::unique_ptr< ScheduleDAGMutation >> &Mutations) const override
 
- Public Member Functions inherited from llvm::AMDGPUSubtarget
 AMDGPUSubtarget (const Triple &TT, StringRef GPU, StringRef FS, const TargetMachine &TM)
 
 ~AMDGPUSubtarget () override
 
AMDGPUSubtargetinitializeSubtargetDependencies (const Triple &TT, StringRef GPU, StringRef FS)
 
const SIFrameLoweringgetFrameLowering () const override
 
const CallLoweringgetCallLowering () const override
 
const InstructionSelectorgetInstructionSelector () const override
 
const LegalizerInfogetLegalizerInfo () const override
 
const RegisterBankInfogetRegBankInfo () const override
 
const SelectionDAGTargetInfogetSelectionDAGInfo () const override
 
void ParseSubtargetFeatures (StringRef CPU, StringRef FS)
 
Generation getGeneration () const
 
unsigned getWavefrontSizeLog2 () const
 
int getLDSBankCount () const
 
unsigned getMaxPrivateElementSize () const
 
AMDGPUAS getAMDGPUAS () const
 
bool hasIntClamp () const
 
bool hasFP64 () const
 
bool hasMIMG_R128 () const
 
bool hasHWFP64 () const
 
bool hasFastFMAF32 () const
 
bool hasHalfRate64Ops () const
 
bool hasAddr64 () const
 
bool hasBFE () const
 
bool hasBFI () const
 
bool hasBFM () const
 
bool hasBCNT (unsigned Size) const
 
bool hasFFBL () const
 
bool hasFFBH () const
 
bool hasMed3_16 () const
 
bool hasMin3Max3_16 () const
 
bool hasFmaMixInsts () const
 
bool hasCARRY () const
 
bool hasFMA () const
 
TrapHandlerAbi getTrapHandlerAbi () const
 
bool enableHugePrivateBuffer () const
 
bool unsafeDSOffsetFoldingEnabled () const
 
bool dumpCode () const
 
unsigned getMaxLocalMemSizeWithWaveCount (unsigned WaveCount, const Function &) const
 Return the amount of LDS that can be used that will not restrict the occupancy lower than WaveCount. More...
 
bool hasFP16Denormals () const
 
bool hasFP64Denormals () const
 
bool supportsMinMaxDenormModes () const
 
bool enableDX10Clamp () const
 
bool enableIEEEBit (const MachineFunction &MF) const
 
bool useFlatForGlobal () const
 
bool useDS128 () const
 
bool privateMemoryResourceIsRangeChecked () const
 
bool hasAutoWaitcntBeforeBarrier () const
 
bool hasCodeObjectV3 () const
 
bool hasUnalignedBufferAccess () const
 
bool hasUnalignedScratchAccess () const
 
bool hasApertureRegs () const
 
bool isTrapHandlerEnabled () const
 
bool isXNACKEnabled () const
 
bool hasFlatAddressSpace () const
 
bool hasFlatInstOffsets () const
 
bool hasFlatGlobalInsts () const
 
bool hasFlatScratchInsts () const
 
bool hasFlatLgkmVMemCountInOrder () const
 
bool hasD16LoadStore () const
 
bool ldsRequiresM0Init () const
 Return if most LDS instructions have an m0 use that require m0 to be iniitalized. More...
 
bool hasAddNoCarry () const
 
bool hasUnpackedD16VMem () const
 
bool isMesaGfxShader (const Function &F) const
 
bool hasMad64_32 () const
 
bool hasSDWAOmod () const
 
bool hasSDWAScalar () const
 
bool hasSDWASdst () const
 
bool hasSDWAMac () const
 
bool hasSDWAOutModsVOPC () const
 
bool vmemWriteNeedsExpWaitcnt () const
 
bool hasDLInsts () const
 
bool d16PreservesUnusedBits () const
 
unsigned getImplicitArgNumBytes (const Function &F) const
 
unsigned getStackAlignment () const
 
bool enableMachineScheduler () const override
 
bool enableSubRegLiveness () const override
 
void setScalarizeGlobalBehavior (bool b)
 
bool getScalarizeGlobalBehavior () const
 
unsigned getEUsPerCU () const
 
unsigned getMaxWavesPerCU () const
 
unsigned getMaxWavesPerCU (unsigned FlatWorkGroupSize) const
 
unsigned getMaxWavesPerEU () const
 
unsigned getWavesPerWorkGroup (unsigned FlatWorkGroupSize) const
 
- Public Member Functions inherited from llvm::AMDGPUCommonSubtarget
 AMDGPUCommonSubtarget (const Triple &TT, const FeatureBitset &FeatureBits)
 
std::pair< unsigned, unsignedgetDefaultFlatWorkGroupSize (CallingConv::ID CC) const
 
std::pair< unsigned, unsignedgetFlatWorkGroupSizes (const Function &F) const
 
std::pair< unsigned, unsignedgetWavesPerEU (const Function &F) const
 
unsigned getMaxLocalMemSizeWithWaveCount (unsigned WaveCount, const Function &) const
 Return the amount of LDS that can be used that will not restrict the occupancy lower than WaveCount. More...
 
unsigned getOccupancyWithLocalMemSize (uint32_t Bytes, const Function &) const
 Inverse of getMaxLocalMemWithWaveCount. More...
 
unsigned getOccupancyWithLocalMemSize (const MachineFunction &MF) const
 
bool isAmdHsaOS () const
 
bool isAmdPalOS () const
 
bool isMesa3DOS () const
 
bool isMesaKernel (const Function &F) const
 
bool isAmdCodeObjectV2 (const Function &F) const
 
bool has16BitInsts () const
 
bool hasMadMixInsts () const
 
bool hasFP32Denormals () const
 
bool hasFPExceptions () const
 
bool hasSDWA () const
 
bool hasVOP3PInsts () const
 
bool hasMulI24 () const
 
bool hasMulU24 () const
 
bool hasFminFmaxLegacy () const
 
bool isPromoteAllocaEnabled () const
 
unsigned getWavefrontSize () const
 
int getLocalMemorySize () const
 
unsigned getAlignmentForImplicitArgPtr () const
 
unsigned getExplicitKernelArgOffset (const Function &F) const
 Returns the offset in bytes from the start of the input buffer of the first explicit kernel argument. More...
 
unsigned getMaxWorkGroupsPerCU (unsigned FlatWorkGroupSize) const
 
unsigned getMinFlatWorkGroupSize () const
 
unsigned getMaxFlatWorkGroupSize () const
 
unsigned getMaxWavesPerEU (unsigned FlatWorkGroupSize) const
 
unsigned getMinWavesPerEU () const
 
unsigned getMaxWavesPerEU () const
 
bool makeLIDRangeMetadata (Instruction *I) const
 Creates value range metadata on an workitemid.* inrinsic call or load. More...
 
virtual ~AMDGPUCommonSubtarget ()
 

Static Public Member Functions

static bool hasHalfRate64Ops (const TargetSubtargetInfo &STI)
 
- Static Public Member Functions inherited from llvm::AMDGPUCommonSubtarget
static const AMDGPUCommonSubtargetget (const MachineFunction &MF)
 
static const AMDGPUCommonSubtargetget (const TargetMachine &TM, const Function &F)
 

Additional Inherited Members

- Public Types inherited from llvm::AMDGPUSubtarget
enum  Generation { SOUTHERN_ISLANDS = 4, SEA_ISLANDS = 5, VOLCANIC_ISLANDS = 6, GFX9 = 7 }
 
enum  {
  ISAVersion0_0_0, ISAVersion6_0_0, ISAVersion6_0_1, ISAVersion7_0_0,
  ISAVersion7_0_1, ISAVersion7_0_2, ISAVersion7_0_3, ISAVersion7_0_4,
  ISAVersion8_0_1, ISAVersion8_0_2, ISAVersion8_0_3, ISAVersion8_1_0,
  ISAVersion9_0_0, ISAVersion9_0_2, ISAVersion9_0_4, ISAVersion9_0_6
}
 
enum  TrapHandlerAbi { TrapHandlerAbiNone = 0, TrapHandlerAbiHsa = 1 }
 
enum  TrapID {
  TrapIDHardwareReserved = 0, TrapIDHSADebugTrap = 1, TrapIDLLVMTrap = 2, TrapIDLLVMDebugTrap = 3,
  TrapIDDebugBreakpoint = 7, TrapIDDebugReserved8 = 8, TrapIDDebugReservedFE = 0xfe, TrapIDDebugReservedFF = 0xff
}
 
enum  TrapRegValues { LLVMTrapHandlerRegValue = 1 }
 
- Protected Attributes inherited from llvm::AMDGPUSubtarget
Triple TargetTriple
 
unsigned Gen
 
unsigned IsaVersion
 
int LDSBankCount
 
unsigned MaxPrivateElementSize
 
bool FastFMAF32
 
bool HalfRate64Ops
 
bool FP64FP16Denormals
 
bool DX10Clamp
 
bool FlatForGlobal
 
bool AutoWaitcntBeforeBarrier
 
bool CodeObjectV3
 
bool UnalignedScratchAccess
 
bool UnalignedBufferAccess
 
bool HasApertureRegs
 
bool EnableXNACK
 
bool TrapHandler
 
bool DebuggerInsertNops
 
bool DebuggerEmitPrologue
 
bool EnableHugePrivateBuffer
 
bool EnableVGPRSpilling
 
bool EnableLoadStoreOpt
 
bool EnableUnsafeDSOffsetFolding
 
bool EnableSIScheduler
 
bool EnableDS128
 
bool DumpCode
 
bool FP64
 
bool FMA
 
bool MIMG_R128
 
bool IsGCN
 
bool GCN3Encoding
 
bool CIInsts
 
bool GFX9Insts
 
bool SGPRInitBug
 
bool HasSMemRealTime
 
bool HasIntClamp
 
bool HasFmaMixInsts
 
bool HasMovrel
 
bool HasVGPRIndexMode
 
bool HasScalarStores
 
bool HasScalarAtomics
 
bool HasInv2PiInlineImm
 
bool HasSDWAOmod
 
bool HasSDWAScalar
 
bool HasSDWASdst
 
bool HasSDWAMac
 
bool HasSDWAOutModsVOPC
 
bool HasDPP
 
bool HasDLInsts
 
bool D16PreservesUnusedBits
 
bool FlatAddressSpace
 
bool FlatInstOffsets
 
bool FlatGlobalInsts
 
bool FlatScratchInsts
 
bool AddNoCarryInsts
 
bool HasUnpackedD16VMem
 
bool R600ALUInst
 
bool CaymanISA
 
bool CFALUBug
 
bool HasVertexCache
 
short TexVTXClauseSize
 
bool ScalarizeGlobal
 
bool FeatureDisable
 
SelectionDAGTargetInfo TSInfo
 
AMDGPUAS AS
 
- Protected Attributes inherited from llvm::AMDGPUCommonSubtarget
const FeatureBitsetSubtargetFeatureBits
 
bool Has16BitInsts
 
bool HasMadMixInsts
 
bool FP32Denormals
 
bool FPExceptions
 
bool HasSDWA
 
bool HasVOP3PInsts
 
bool HasMulI24
 
bool HasMulU24
 
bool HasFminFmaxLegacy
 
bool EnablePromoteAlloca
 
int LocalMemorySize
 
unsigned WavefrontSize
 

Detailed Description

Definition at line 725 of file AMDGPUSubtarget.h.

Constructor & Destructor Documentation

◆ SISubtarget()

SISubtarget::SISubtarget ( const Triple TT,
StringRef  CPU,
StringRef  FS,
const GCNTargetMachine TM 
)

Definition at line 420 of file AMDGPUSubtarget.cpp.

References getRegisterInfo(), and getTargetLowering().

Member Function Documentation

◆ debuggerEmitPrologue()

bool llvm::SISubtarget::debuggerEmitPrologue ( ) const
inline

◆ debuggerInsertNops()

bool llvm::SISubtarget::debuggerInsertNops ( ) const
inline

Definition at line 833 of file AMDGPUSubtarget.h.

Referenced by llvm::createSIDebuggerInsertNopsPass().

◆ debuggerSupported()

bool llvm::SISubtarget::debuggerSupported ( ) const
inline

Definition at line 829 of file AMDGPUSubtarget.h.

◆ enableEarlyIfConversion()

bool llvm::SISubtarget::enableEarlyIfConversion ( ) const
inlineoverride

Definition at line 776 of file AMDGPUSubtarget.h.

References F().

◆ enableSIScheduler()

bool llvm::SISubtarget::enableSIScheduler ( ) const
inline

◆ flatScratchIsPointer()

bool llvm::SISubtarget::flatScratchIsPointer ( ) const
inline
Returns
true if the flat_scratch register should be initialized with the pointer to the wave's scratch memory rather than a size and offset.

Definition at line 879 of file AMDGPUSubtarget.h.

References llvm::AMDGPUSubtarget::GFX9.

Referenced by getAllSGPRs().

◆ getAddressableNumSGPRs()

unsigned llvm::SISubtarget::getAddressableNumSGPRs ( ) const
inline
Returns
Addressable number of SGPRs supported by the subtarget.

Definition at line 907 of file AMDGPUSubtarget.h.

References llvm::AMDGPU::IsaInfo::getAddressableNumSGPRs(), and llvm::MCSubtargetInfo::getFeatureBits().

Referenced by hasAnyNonFlatUseOfReg().

◆ getAddressableNumVGPRs()

unsigned llvm::SISubtarget::getAddressableNumVGPRs ( ) const
inline
Returns
Addressable number of VGPRs supported by the subtarget.

Definition at line 957 of file AMDGPUSubtarget.h.

References llvm::AMDGPU::IsaInfo::getAddressableNumVGPRs(), and llvm::MCSubtargetInfo::getFeatureBits().

◆ getCallLowering()

const CallLowering* llvm::SISubtarget::getCallLowering ( ) const
inlineoverride

Definition at line 753 of file AMDGPUSubtarget.h.

◆ getExplicitKernArgSize()

uint64_t SISubtarget::getExplicitKernArgSize ( const Function F) const

◆ getFrameLowering()

const SIFrameLowering* llvm::SISubtarget::getFrameLowering ( ) const
inlineoverride

Definition at line 745 of file AMDGPUSubtarget.h.

◆ getInstrInfo()

const SIInstrInfo* llvm::SISubtarget::getInstrInfo ( ) const
inlineoverridevirtual

◆ getInstructionSelector()

const InstructionSelector* llvm::SISubtarget::getInstructionSelector ( ) const
inlineoverride

Definition at line 757 of file AMDGPUSubtarget.h.

◆ getKernArgSegmentSize()

unsigned SISubtarget::getKernArgSegmentSize ( const Function F,
int64_t  ExplicitArgBytes = -1 
) const

◆ getLegalizerInfo()

const LegalizerInfo* llvm::SISubtarget::getLegalizerInfo ( ) const
inlineoverride

Definition at line 761 of file AMDGPUSubtarget.h.

◆ getMaxNumSGPRs() [1/2]

unsigned llvm::SISubtarget::getMaxNumSGPRs ( unsigned  WavesPerEU,
bool  Addressable 
) const
inline

◆ getMaxNumSGPRs() [2/2]

unsigned SISubtarget::getMaxNumSGPRs ( const MachineFunction MF) const
Returns
Maximum number of SGPRs that meets number of waves per execution unit requirement for function MF, or number of SGPRs explicitly requested using "amdgpu-num-sgpr" attribute attached to function MF.
Value that meets number of waves per execution unit requirement if explicitly requested value cannot be converted to integer, violates subtarget's specifications, or does not meet number of waves per execution unit requirement.

Definition at line 547 of file AMDGPUSubtarget.cpp.

References F(), llvm::AMDGPU::IsaInfo::FIXED_NUM_SGPRS_FOR_INIT_BUG, llvm::MachineFunction::getFunction(), llvm::MachineFunction::getInfo(), llvm::AMDGPU::getIntegerAttribute(), getMaxNumSGPRs(), getMinNumSGPRs(), llvm::SIMachineFunctionInfo::getNumPreloadedSGPRs(), getReservedNumSGPRs(), llvm::SIMachineFunctionInfo::getWavesPerEU(), llvm::Function::hasFnAttribute(), and hasSGPRInitBug().

◆ getMaxNumUserSGPRs()

unsigned llvm::SISubtarget::getMaxNumUserSGPRs ( ) const
inline

Definition at line 785 of file AMDGPUSubtarget.h.

Referenced by hasAnyNonFlatUseOfReg().

◆ getMaxNumVGPRs() [1/2]

unsigned llvm::SISubtarget::getMaxNumVGPRs ( unsigned  WavesPerEU) const
inline
Returns
Maximum number of VGPRs that meets given number of waves per execution unit requirement supported by the subtarget.

Definition at line 971 of file AMDGPUSubtarget.h.

References llvm::MCSubtargetInfo::getFeatureBits(), and llvm::AMDGPU::IsaInfo::getMaxNumVGPRs().

Referenced by getMaxNumVGPRs(), llvm::SIRegisterInfo::getRegPressureLimit(), llvm::SIRegisterInfo::getReservedRegs(), and llvm::GCNMaxOccupancySchedStrategy::initialize().

◆ getMaxNumVGPRs() [2/2]

unsigned SISubtarget::getMaxNumVGPRs ( const MachineFunction MF) const
Returns
Maximum number of VGPRs that meets number of waves per execution unit requirement for function MF, or number of VGPRs explicitly requested using "amdgpu-num-vgpr" attribute attached to function MF.
Value that meets number of waves per execution unit requirement if explicitly requested value cannot be converted to integer, violates subtarget's specifications, or does not meet number of waves per execution unit requirement.

Definition at line 597 of file AMDGPUSubtarget.cpp.

References llvm::SUnit::addPred(), llvm::SUnit::addPredBarrier(), llvm::cl::apply(), llvm::SDep::Artificial, llvm::ScheduleDAG::ExitSU, F(), llvm::MachineFunction::getFunction(), llvm::MachineFunction::getInfo(), llvm::SUnit::getInstr(), llvm::AMDGPU::getIntegerAttribute(), getMaxNumVGPRs(), getMinNumVGPRs(), llvm::SDep::getSUnit(), llvm::SIMachineFunctionInfo::getWavesPerEU(), llvm::Function::hasFnAttribute(), llvm::SIInstrInfo::isDS(), llvm::SIInstrInfo::isFLAT(), llvm::SIInstrInfo::isSMRD(), llvm::SIInstrInfo::isVMEM(), llvm::MachineInstr::mayLoad(), llvm::MachineInstr::mayStore(), llvm::SUnit::Preds, SI, llvm::SUnit::Succs, llvm::ScheduleDAG::SUnits, and TII.

◆ getMinNumSGPRs()

unsigned llvm::SISubtarget::getMinNumSGPRs ( unsigned  WavesPerEU) const
inline
Returns
Minimum number of SGPRs that meets the given number of waves per execution unit requirement supported by the subtarget.

Definition at line 914 of file AMDGPUSubtarget.h.

References llvm::MCSubtargetInfo::getFeatureBits(), and llvm::AMDGPU::IsaInfo::getMinNumSGPRs().

Referenced by getMaxNumSGPRs(), and hasAnyNonFlatUseOfReg().

◆ getMinNumVGPRs()

unsigned llvm::SISubtarget::getMinNumVGPRs ( unsigned  WavesPerEU) const
inline
Returns
Minimum number of VGPRs that meets given number of waves per execution unit requirement supported by the subtarget.

Definition at line 964 of file AMDGPUSubtarget.h.

References llvm::MCSubtargetInfo::getFeatureBits(), and llvm::AMDGPU::IsaInfo::getMinNumVGPRs().

Referenced by getMaxNumVGPRs(), and hasAnyNonFlatUseOfReg().

◆ getOccupancyWithNumSGPRs()

unsigned SISubtarget::getOccupancyWithNumSGPRs ( unsigned  SGPRs) const

Return the maximum number of waves per SIMD for kernels using SGPRs SGPRs.

Definition at line 488 of file AMDGPUSubtarget.cpp.

References llvm::AMDGPUSubtarget::getGeneration(), and llvm::AMDGPUSubtarget::VOLCANIC_ISLANDS.

Referenced by llvm::GCNRegPressure::getOccupancy(), llvm::GCNRegPressure::less(), and llvm::GCNRegPressure::print().

◆ getOccupancyWithNumVGPRs()

unsigned SISubtarget::getOccupancyWithNumVGPRs ( unsigned  VGPRs) const

Return the maximum number of waves per SIMD for kernels using VGPRs VGPRs.

Definition at line 511 of file AMDGPUSubtarget.cpp.

Referenced by llvm::GCNRegPressure::getOccupancy(), llvm::GCNRegPressure::less(), and llvm::GCNRegPressure::print().

◆ getPostRAMutations()

void SISubtarget::getPostRAMutations ( std::vector< std::unique_ptr< ScheduleDAGMutation >> &  Mutations) const
override

Definition at line 678 of file AMDGPUSubtarget.cpp.

◆ getRegBankInfo()

const RegisterBankInfo* llvm::SISubtarget::getRegBankInfo ( ) const
inlineoverride

Definition at line 765 of file AMDGPUSubtarget.h.

◆ getRegisterInfo()

const SIRegisterInfo* llvm::SISubtarget::getRegisterInfo ( ) const
inlineoverridevirtual

◆ getReservedNumSGPRs()

unsigned SISubtarget::getReservedNumSGPRs ( const MachineFunction MF) const

◆ getSGPRAllocGranule()

unsigned llvm::SISubtarget::getSGPRAllocGranule ( ) const
inline
Returns
SGPR allocation granularity supported by the subtarget.

Definition at line 890 of file AMDGPUSubtarget.h.

References llvm::MCSubtargetInfo::getFeatureBits(), and llvm::AMDGPU::IsaInfo::getSGPRAllocGranule().

◆ getSGPREncodingGranule()

unsigned llvm::SISubtarget::getSGPREncodingGranule ( ) const
inline
Returns
SGPR encoding granularity supported by the subtarget.

Definition at line 896 of file AMDGPUSubtarget.h.

References llvm::MCSubtargetInfo::getFeatureBits(), and llvm::AMDGPU::IsaInfo::getSGPREncodingGranule().

◆ getTargetLowering()

const SITargetLowering* llvm::SISubtarget::getTargetLowering ( ) const
inlineoverridevirtual

Implements llvm::AMDGPUSubtarget.

Definition at line 749 of file AMDGPUSubtarget.h.

Referenced by SISubtarget().

◆ getTotalNumSGPRs()

unsigned llvm::SISubtarget::getTotalNumSGPRs ( ) const
inline
Returns
Total number of SGPRs supported by the subtarget.

Definition at line 902 of file AMDGPUSubtarget.h.

References llvm::MCSubtargetInfo::getFeatureBits(), and llvm::AMDGPU::IsaInfo::getTotalNumSGPRs().

◆ getTotalNumVGPRs()

unsigned llvm::SISubtarget::getTotalNumVGPRs ( ) const
inline
Returns
Total number of VGPRs supported by the subtarget.

Definition at line 952 of file AMDGPUSubtarget.h.

References llvm::MCSubtargetInfo::getFeatureBits(), and llvm::AMDGPU::IsaInfo::getTotalNumVGPRs().

◆ getVGPRAllocGranule()

unsigned llvm::SISubtarget::getVGPRAllocGranule ( ) const
inline
Returns
VGPR allocation granularity supported by the subtarget.

Definition at line 940 of file AMDGPUSubtarget.h.

References llvm::MCSubtargetInfo::getFeatureBits(), and llvm::AMDGPU::IsaInfo::getVGPRAllocGranule().

◆ getVGPREncodingGranule()

unsigned llvm::SISubtarget::getVGPREncodingGranule ( ) const
inline
Returns
VGPR encoding granularity supported by the subtarget.

Definition at line 946 of file AMDGPUSubtarget.h.

References llvm::MCSubtargetInfo::getFeatureBits(), and llvm::AMDGPU::IsaInfo::getVGPREncodingGranule().

◆ has12DWordStoreHazard()

bool llvm::SISubtarget::has12DWordStoreHazard ( ) const
inline

Definition at line 849 of file AMDGPUSubtarget.h.

References llvm::AMDGPUSubtarget::SOUTHERN_ISLANDS.

Referenced by addRegsToSet().

◆ hasDPP()

bool llvm::SISubtarget::hasDPP ( ) const
inline

Definition at line 821 of file AMDGPUSubtarget.h.

◆ hasHalfRate64Ops()

static bool llvm::SISubtarget::hasHalfRate64Ops ( const TargetSubtargetInfo STI)
static

◆ hasInv2PiInlineImm()

bool llvm::SISubtarget::hasInv2PiInlineImm ( ) const
inline

◆ hasMergedShaders()

bool llvm::SISubtarget::hasMergedShaders ( ) const
inline
Returns
true if the machine has merged shaders in which s0-s7 are reserved by the hardware and user SGPRs start at s8

Definition at line 885 of file AMDGPUSubtarget.h.

References GFX9.

Referenced by llvm::SIFrameLowering::emitEntryFunctionPrologue().

◆ hasMovrel()

bool llvm::SISubtarget::hasMovrel ( ) const
inline

Definition at line 793 of file AMDGPUSubtarget.h.

◆ hasReadM0MovRelInterpHazard()

bool llvm::SISubtarget::hasReadM0MovRelInterpHazard ( ) const
inline

◆ hasReadM0SendMsgHazard()

bool llvm::SISubtarget::hasReadM0SendMsgHazard ( ) const
inline

◆ hasScalarAtomics()

bool llvm::SISubtarget::hasScalarAtomics ( ) const
inline

Definition at line 813 of file AMDGPUSubtarget.h.

◆ hasScalarCompareEq64()

bool llvm::SISubtarget::hasScalarCompareEq64 ( ) const
inline

Definition at line 805 of file AMDGPUSubtarget.h.

◆ hasScalarStores()

bool llvm::SISubtarget::hasScalarStores ( ) const
inline

◆ hasSGPRInitBug()

bool llvm::SISubtarget::hasSGPRInitBug ( ) const
inline

Definition at line 845 of file AMDGPUSubtarget.h.

Referenced by getAllSGPRs(), getMaxNumSGPRs(), and hasAnyNonFlatUseOfReg().

◆ hasSMemRealTime()

bool llvm::SISubtarget::hasSMemRealTime ( ) const
inline

Definition at line 789 of file AMDGPUSubtarget.h.

◆ hasSMovFedHazard()

bool llvm::SISubtarget::hasSMovFedHazard ( ) const
inline

Definition at line 853 of file AMDGPUSubtarget.h.

References llvm::AMDGPUSubtarget::GFX9.

Referenced by addRegsToSet().

◆ hasVGPRIndexMode()

bool llvm::SISubtarget::hasVGPRIndexMode ( ) const
inline

Definition at line 797 of file AMDGPUSubtarget.h.

◆ isVGPRSpillingEnabled()

bool SISubtarget::isVGPRSpillingEnabled ( const Function F) const

◆ loadStoreOptEnabled()

bool llvm::SISubtarget::loadStoreOptEnabled ( ) const
inline

Definition at line 841 of file AMDGPUSubtarget.h.

References EnableLoadStoreOpt.

◆ overrideSchedPolicy()

void SISubtarget::overrideSchedPolicy ( MachineSchedPolicy Policy,
unsigned  NumRegionInstrs 
) const
override

◆ useVGPRIndexMode()

bool llvm::SISubtarget::useVGPRIndexMode ( bool  UserEnable) const
inline

Definition at line 801 of file AMDGPUSubtarget.h.

Referenced by emitIndirectDst(), and emitIndirectSrc().


The documentation for this class was generated from the following files: