|
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 |
| 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 |
isGCN3Encoding () const |
| bool |
has16BitInsts () const |
| bool |
hasTrue16BitInsts () const |
|
Return true if the subtarget supports True16 instructions. |
| bool |
useRealTrue16Insts () const |
|
Return true if real (non-fake) variants of True16 instructions using 16-bit registers should be code-generated. |
| bool |
hasD16Writes32BitVgpr () const |
| bool |
hasBF16TransInsts () const |
| bool |
hasBF16ConversionInsts () const |
| bool |
hasBF16PackedInsts () const |
| bool |
hasMadMixInsts () const |
| bool |
hasFP8ConversionScaleInsts () const |
| bool |
hasBF8ConversionScaleInsts () const |
| bool |
hasFP4ConversionScaleInsts () const |
| bool |
hasFP6BF6ConversionScaleInsts () const |
| bool |
hasF16BF16ToFP6BF6ConversionScaleInsts () const |
| bool |
hasCvtPkF16F32Inst () const |
| bool |
hasF32ToF16BF16ConversionSRInsts () const |
| bool |
hasMadMacF32Insts () const |
| bool |
hasDsSrc2Insts () const |
| bool |
hasSDWA () const |
| bool |
hasVOP3PInsts () const |
| bool |
hasMulI24 () const |
| bool |
hasMulU24 () const |
| bool |
hasSMulHi () const |
| bool |
hasInv2PiInlineImm () const |
| bool |
hasFminFmaxLegacy () const |
| bool |
hasTrigReducedRange () const |
| bool |
hasFastFMAF32 () const |
| bool |
isPromoteAllocaEnabled () 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 |