|
LLVM 23.0.0git
|
#include "Target/AMDGPU/R600Subtarget.h"
Public Member Functions | |
| R600Subtarget (const Triple &TT, StringRef CPU, StringRef FS, const TargetMachine &TM) | |
| ~R600Subtarget () override | |
| const R600InstrInfo * | getInstrInfo () const override |
| const R600FrameLowering * | getFrameLowering () const override |
| const R600TargetLowering * | getTargetLowering () const override |
| const R600RegisterInfo * | getRegisterInfo () const override |
| const InstrItineraryData * | getInstrItineraryData () const override |
| const SelectionDAGTargetInfo * | getSelectionDAGInfo () const override |
| void | ParseSubtargetFeatures (StringRef CPU, StringRef TuneCPU, StringRef FS) |
| Generation | getGeneration () const |
| Align | getStackAlignment () const |
| R600Subtarget & | initializeSubtargetDependencies (const Triple &TT, StringRef GPU, StringRef FS) |
| bool | hasBFE () const |
| bool | hasBFI () const |
| bool | hasBCNT (unsigned Size) const |
| bool | hasBORROW () const |
| bool | hasCARRY () const |
| bool | hasCaymanISA () const |
| bool | hasFFBL () const |
| bool | hasFFBH () const |
| bool | hasFMA () const override |
| bool | hasMadMacF32Insts () const override |
| bool | enablePromoteAlloca () const override |
| bool | hasFP64 () const override |
| bool | hasCFALUBug () const |
| bool | hasVertexCache () const |
| short | getTexVTXClauseSize () const |
| bool | enableMachineScheduler () const override |
| bool | enableSubRegLiveness () const override |
| unsigned | getMaxWorkGroupsPerCU (unsigned FlatWorkGroupSize) const override |
| unsigned | getMinFlatWorkGroupSize () const override |
| unsigned | getMaxFlatWorkGroupSize () const override |
| unsigned | getWavesPerEUForWorkGroup (unsigned FlatWorkGroupSize) const override |
| unsigned | getMinWavesPerEU () const override |
| bool | requiresDisjointEarlyClobberAndUndef () const override |
| Public Member Functions inherited from llvm::AMDGPUSubtarget | |
| AMDGPUSubtarget (Triple TT) | |
| std::pair< unsigned, unsigned > | getDefaultFlatWorkGroupSize (CallingConv::ID CC) const |
| std::pair< unsigned, unsigned > | getFlatWorkGroupSizes (const Function &F) const |
| std::optional< unsigned > | getReqdWorkGroupSize (const Function &F, unsigned Dim) const |
| bool | hasWavefrontsEvenlySplittingXDim (const Function &F, bool REquiresUniformYZ=false) const |
| std::pair< unsigned, unsigned > | getWavesPerEU (const Function &F) const |
| std::pair< unsigned, unsigned > | getWavesPerEU (const Function &F, std::pair< unsigned, unsigned > FlatWorkGroupSizes) const |
| Overload which uses the specified values for the flat work group sizes, rather than querying the function itself. | |
| std::pair< unsigned, unsigned > | getWavesPerEU (std::pair< unsigned, unsigned > FlatWorkGroupSizes, unsigned LDSBytes, const Function &F) const |
| Overload which uses the specified values for the flat workgroup sizes and LDS space rather than querying the function itself. | |
| std::pair< unsigned, unsigned > | getEffectiveWavesPerEU (std::pair< unsigned, unsigned > RequestedWavesPerEU, std::pair< unsigned, unsigned > FlatWorkGroupSizes, unsigned LDSBytes) const |
| Returns the target minimum/maximum number of waves per EU. | |
| 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. | |
| std::pair< unsigned, unsigned > | getOccupancyWithWorkGroupSizes (uint32_t LDSBytes, const Function &F) const |
Subtarget's minimum/maximum occupancy, in number of waves per EU, that can be achieved when the only function running on a CU is F and each workgroup running the function requires LDSBytes bytes of LDS space. | |
| std::pair< unsigned, unsigned > | getOccupancyWithWorkGroupSizes (uint32_t LDSBytes, std::pair< unsigned, unsigned > FlatWorkGroupSizes) const |
| Overload which uses the specified values for the flat work group sizes, rather than querying the function itself. | |
| std::pair< unsigned, unsigned > | getOccupancyWithWorkGroupSizes (const MachineFunction &MF) const |
Subtarget's minimum/maximum occupancy, in number of waves per EU, that can be achieved when the only function running on a CU is MF. | |
| bool | isAmdHsaOS () const |
| bool | isAmdPalOS () const |
| bool | isMesa3DOS () const |
| bool | isMesaKernel (const Function &F) const |
| bool | isAmdHsaOrMesa (const Function &F) const |
| bool | isGCN () const |
| bool | useRealTrue16Insts () const |
| Return true if real (non-fake) variants of True16 instructions using 16-bit registers should be code-generated. | |
| bool | hasMulI24 () const |
| bool | hasMulU24 () const |
| bool | hasSMulHi () const |
| bool | hasFminFmaxLegacy () const |
| unsigned | getWavefrontSize () const |
| unsigned | getWavefrontSizeLog2 () const |
| unsigned | getLocalMemorySize () const |
| Return the maximum number of bytes of LDS available for all workgroups running on the same WGP or CU. | |
| unsigned | getAddressableLocalMemorySize () const |
| Return the maximum number of bytes of LDS that can be allocated to a single workgroup. | |
| unsigned | getEUsPerCU () const |
| Number of SIMDs/EUs (execution units) per "CU" ("compute unit"), where the "CU" is the unit onto which workgroups are mapped. | |
| Align | getAlignmentForImplicitArgPtr () const |
| unsigned | getExplicitKernelArgOffset () const |
| Returns the offset in bytes from the start of the input buffer of the first explicit kernel argument. | |
| unsigned | getMaxWavesPerEU () const |
| unsigned | getMaxWorkitemID (const Function &Kernel, unsigned Dimension) const |
| Return the maximum workitem ID value in the function, for the given (0, 1, 2) dimension. | |
| SmallVector< unsigned > | getMaxNumWorkGroups (const Function &F) const |
| Return the number of work groups for the function. | |
| bool | isSingleLaneExecution (const Function &Kernel) const |
| Return true if only a single workitem can be active in a wave. | |
| bool | makeLIDRangeMetadata (Instruction *I) const |
| Creates value range metadata on an workitemid.* intrinsic call or load. | |
| unsigned | getImplicitArgNumBytes (const Function &F) const |
| uint64_t | getExplicitKernArgSize (const Function &F, Align &MaxAlign) const |
| unsigned | getKernArgSegmentSize (const Function &F, Align &MaxAlign) const |
| AMDGPUDwarfFlavour | getAMDGPUDwarfFlavour () const |
| virtual | ~AMDGPUSubtarget ()=default |
Additional Inherited Members | |
| Public Types inherited from llvm::AMDGPUSubtarget | |
| enum | Generation { INVALID = 0 , R600 = 1 , R700 = 2 , EVERGREEN = 3 , NORTHERN_ISLANDS = 4 , SOUTHERN_ISLANDS = 5 , SEA_ISLANDS = 6 , VOLCANIC_ISLANDS = 7 , GFX9 = 8 , GFX10 = 9 , GFX11 = 10 , GFX12 = 11 , GFX13 = 12 } |
| Static Public Member Functions inherited from llvm::AMDGPUSubtarget | |
| static const AMDGPUSubtarget & | get (const MachineFunction &MF) |
| static const AMDGPUSubtarget & | get (const TargetMachine &TM, const Function &F) |
| Protected Attributes inherited from llvm::AMDGPUSubtarget | |
| bool | HasMulI24 = true |
| bool | HasMulU24 = true |
| bool | HasSMulHi = false |
| bool | HasFminFmaxLegacy = true |
| unsigned | EUsPerCU = 4 |
| unsigned | MaxWavesPerEU = 10 |
| unsigned | LocalMemorySize = 0 |
| unsigned | AddressableLocalMemorySize = 0 |
| char | WavefrontSizeLog2 = 0 |
Definition at line 28 of file R600Subtarget.h.
| R600Subtarget::R600Subtarget | ( | const Triple & | TT, |
| StringRef | CPU, | ||
| StringRef | FS, | ||
| const TargetMachine & | TM ) |
Definition at line 26 of file R600Subtarget.cpp.
References llvm::AMDGPUSubtarget::AddressableLocalMemorySize, llvm::AMDGPUSubtarget::AMDGPUSubtarget(), getStackAlignment(), initializeSubtargetDependencies(), and llvm::AMDGPUSubtarget::LocalMemorySize.
Referenced by initializeSubtargetDependencies().
|
overridedefault |
|
inlineoverride |
Definition at line 128 of file R600Subtarget.h.
|
inlineoverride |
Definition at line 118 of file R600Subtarget.h.
|
inlineoverride |
Definition at line 132 of file R600Subtarget.h.
|
inlineoverride |
Definition at line 52 of file R600Subtarget.h.
|
inline |
Definition at line 72 of file R600Subtarget.h.
Referenced by hasBCNT(), hasBFE(), hasBFI(), hasBORROW(), hasCARRY(), hasFFBH(), hasFFBL(), and initializeSubtargetDependencies().
|
inlineoverride |
Definition at line 50 of file R600Subtarget.h.
Referenced by llvm::R600AsmPrinter::emitInstruction().
|
inlineoverride |
Definition at line 64 of file R600Subtarget.h.
|
inlineoverridevirtual |
Implements llvm::AMDGPUSubtarget.
Definition at line 148 of file R600Subtarget.h.
References llvm::AMDGPU::IsaInfo::getMaxFlatWorkGroupSize().
|
inlineoverridevirtual |
FlatWorkGroupSize. Implements llvm::AMDGPUSubtarget.
Definition at line 138 of file R600Subtarget.h.
References llvm::AMDGPU::IsaInfo::getMaxWorkGroupsPerCU().
|
inlineoverridevirtual |
Implements llvm::AMDGPUSubtarget.
Definition at line 143 of file R600Subtarget.h.
References llvm::AMDGPU::IsaInfo::getMinFlatWorkGroupSize().
|
inlineoverridevirtual |
Implements llvm::AMDGPUSubtarget.
Definition at line 161 of file R600Subtarget.h.
References llvm::AMDGPU::IsaInfo::getMinWavesPerEU().
|
inlineoverride |
Definition at line 60 of file R600Subtarget.h.
|
override |
Definition at line 39 of file R600Subtarget.cpp.
|
inline |
Definition at line 76 of file R600Subtarget.h.
Referenced by R600Subtarget().
|
inlineoverride |
Definition at line 56 of file R600Subtarget.h.
|
inline |
Definition at line 126 of file R600Subtarget.h.
|
inlineoverridevirtual |
FlatWorkGroupSize. Implements llvm::AMDGPUSubtarget.
Definition at line 155 of file R600Subtarget.h.
References llvm::AMDGPU::IsaInfo::getWavesPerEUForWorkGroup().
Definition at line 89 of file R600Subtarget.h.
References llvm::AMDGPUSubtarget::EVERGREEN, getGeneration(), and Size.
|
inline |
Definition at line 81 of file R600Subtarget.h.
References llvm::AMDGPUSubtarget::EVERGREEN, and getGeneration().
|
inline |
Definition at line 85 of file R600Subtarget.h.
References llvm::AMDGPUSubtarget::EVERGREEN, and getGeneration().
|
inline |
Definition at line 96 of file R600Subtarget.h.
References llvm::AMDGPUSubtarget::EVERGREEN, and getGeneration().
|
inline |
Definition at line 100 of file R600Subtarget.h.
References llvm::AMDGPUSubtarget::EVERGREEN, and getGeneration().
|
inline |
Definition at line 104 of file R600Subtarget.h.
Referenced by initializeSubtargetDependencies().
|
inline |
Definition at line 122 of file R600Subtarget.h.
|
inline |
Definition at line 110 of file R600Subtarget.h.
References llvm::AMDGPUSubtarget::EVERGREEN, and getGeneration().
|
inline |
Definition at line 106 of file R600Subtarget.h.
References llvm::AMDGPUSubtarget::EVERGREEN, and getGeneration().
|
inlineoverride |
Definition at line 114 of file R600Subtarget.h.
|
inlineoverride |
Definition at line 120 of file R600Subtarget.h.
|
inlineoverride |
Definition at line 116 of file R600Subtarget.h.
|
inline |
Definition at line 124 of file R600Subtarget.h.
| R600Subtarget & R600Subtarget::initializeSubtargetDependencies | ( | const Triple & | TT, |
| StringRef | GPU, | ||
| StringRef | FS ) |
Definition at line 43 of file R600Subtarget.cpp.
References llvm::AMDGPUSubtarget::EVERGREEN, getGeneration(), hasCaymanISA(), llvm::AMDGPUSubtarget::HasMulI24, llvm::AMDGPUSubtarget::HasMulU24, ParseSubtargetFeatures(), and R600Subtarget().
Referenced by R600Subtarget().
Referenced by initializeSubtargetDependencies().
|
inlineoverride |
Definition at line 165 of file R600Subtarget.h.