LLVM 23.0.0git
llvm::NVPTXSubtarget Class Reference

#include "Target/NVPTX/NVPTXSubtarget.h"

Inheritance diagram for llvm::NVPTXSubtarget:
[legend]

Public Member Functions

 NVPTXSubtarget (const Triple &TT, const std::string &CPU, const std::string &FS, const NVPTXTargetMachine &TM)
 This constructor initializes the data members to match that of the specified module.
 ~NVPTXSubtarget () override
const TargetFrameLoweringgetFrameLowering () const override
const NVPTXInstrInfogetInstrInfo () const override
const NVPTXRegisterInfogetRegisterInfo () const override
const NVPTXTargetLoweringgetTargetLowering () const override
const SelectionDAGTargetInfogetSelectionDAGInfo () const override
bool hasPTXWithFamilySMs (unsigned PTXVersion, ArrayRef< unsigned > SMVersions) const
bool hasPTXWithAccelSMs (unsigned PTXVersion, ArrayRef< unsigned > SMVersions) const
bool has256BitVectorLoadStore (unsigned AS) const
bool hasUsedBytesMaskPragma () const
bool hasAtomAddF64 () const
bool hasAtomScope () const
bool hasAtomBitwise64 () const
bool hasAtomMinMax64 () const
bool hasAtomCas16 () const
bool hasAtomSwap128 () const
bool hasClusters () const
bool hasLDG () const
bool hasHWROT32 () const
bool hasBrx () const
bool hasFP16Math () const
bool hasBF16Math () const
bool allowFP16Math () const
bool hasMaskOperator () const
bool hasNoReturn () const
bool hasMemoryOrdering () const
bool hasSplitAcquireAndReleaseFences () const
bool hasRelaxedMMIO () const
bool hasDotInstructions () const
bool hasTcgen05InstSupport () const
bool hasTcgen05ShiftSupport () const
bool hasTcgen05MMAScaleInputDImm () const
bool hasTcgen05MMAI8Kind () const
bool hasTcgen05MMASparseMxf4nvf4 () const
bool hasTcgen05MMASparseMxf4 () const
bool hasTcgen05LdRedSupport () const
bool hasReduxSyncF32 () const
bool hasMMABlockScale () const
bool hasMMASparseBlockScaleF4 () const
bool hasMMAWithMXF4NVF4Scale4xE8M0 () const
bool hasMMASparseWithMXF4NVF4Scale4xE8M0 () const
bool hasF32x2Instructions () const
bool hasTMABlackwellSupport () const
bool hasFP8ConversionSupport () const
bool hasNarrowFPConversionSupport () const
bool hasFP16X2ToNarrowFPConversionSupport () const
bool hasS2F6X2ConversionSupport () const
bool hasTensormapReplaceSupport () const
bool hasTensormapReplaceElemtypeSupport (unsigned value) const
bool hasTensormapReplaceSwizzleAtomicitySupport () const
bool hasTensormapReplaceSwizzleModeSupport (unsigned value) const
bool hasClusterLaunchControlTryCancelMulticastSupport () const
bool hasSetMaxNRegSupport () const
bool hasLdStmatrixBlackwellSupport () const
bool hasPTXASUnreachableBug () const
bool hasCvtaParam () const
bool hasConvertWithStochasticRounding () const
unsigned int getFullSmVersion () const
unsigned int getSmVersion () const
unsigned int getSmFamilyVersion () const
bool hasArchAccelFeatures () const
bool hasFamilySpecificFeatures () const
std::string getTargetName () const
bool hasTargetName () const
bool hasNativeBF16Support (int Opcode) const
unsigned getMaxRequiredAlignment () const
unsigned getMinCmpXchgSizeInBits () const
unsigned getPTXVersion () const
NVPTXSubtargetinitializeSubtargetDependencies (StringRef CPU, StringRef FS)
void ParseSubtargetFeatures (StringRef CPU, StringRef TuneCPU, StringRef FS)
void failIfClustersUnsupported (std::string const &FailureMessage) const

Detailed Description

Definition at line 36 of file NVPTXSubtarget.h.

Constructor & Destructor Documentation

◆ NVPTXSubtarget()

NVPTXSubtarget::NVPTXSubtarget ( const Triple & TT,
const std::string & CPU,
const std::string & FS,
const NVPTXTargetMachine & TM )

This constructor initializes the data members to match that of the specified module.

Definition at line 149 of file NVPTXSubtarget.cpp.

References getSmVersion(), and initializeSubtargetDependencies().

Referenced by initializeSubtargetDependencies().

◆ ~NVPTXSubtarget()

NVPTXSubtarget::~NVPTXSubtarget ( )
overridedefault

Member Function Documentation

◆ allowFP16Math()

bool NVPTXSubtarget::allowFP16Math ( ) const

Definition at line 198 of file NVPTXSubtarget.cpp.

References hasFP16Math(), and NoF16Math.

◆ failIfClustersUnsupported()

void NVPTXSubtarget::failIfClustersUnsupported ( std::string const & FailureMessage) const

◆ getFrameLowering()

const TargetFrameLowering * llvm::NVPTXSubtarget::getFrameLowering ( ) const
inlineoverride

Definition at line 69 of file NVPTXSubtarget.h.

◆ getFullSmVersion()

unsigned int llvm::NVPTXSubtarget::getFullSmVersion ( ) const
inline

◆ getInstrInfo()

const NVPTXInstrInfo * llvm::NVPTXSubtarget::getInstrInfo ( ) const
inlineoverride

Definition at line 72 of file NVPTXSubtarget.h.

◆ getMaxRequiredAlignment()

unsigned llvm::NVPTXSubtarget::getMaxRequiredAlignment ( ) const
inline

Definition at line 339 of file NVPTXSubtarget.h.

◆ getMinCmpXchgSizeInBits()

unsigned llvm::NVPTXSubtarget::getMinCmpXchgSizeInBits ( ) const
inline

Definition at line 341 of file NVPTXSubtarget.h.

◆ getPTXVersion()

◆ getRegisterInfo()

const NVPTXRegisterInfo * llvm::NVPTXSubtarget::getRegisterInfo ( ) const
inlineoverride

Definition at line 73 of file NVPTXSubtarget.h.

Referenced by isCVTAToLocalCombinationCandidate().

◆ getSelectionDAGInfo()

const SelectionDAGTargetInfo * NVPTXSubtarget::getSelectionDAGInfo ( ) const
override

Definition at line 160 of file NVPTXSubtarget.cpp.

◆ getSmFamilyVersion()

unsigned int llvm::NVPTXSubtarget::getSmFamilyVersion ( ) const
inline

Definition at line 305 of file NVPTXSubtarget.h.

References getFullSmVersion().

Referenced by hasPTXWithFamilySMs().

◆ getSmVersion()

◆ getTargetLowering()

const NVPTXTargetLowering * llvm::NVPTXSubtarget::getTargetLowering ( ) const
inlineoverride

Definition at line 76 of file NVPTXSubtarget.h.

Referenced by runOnDeviceFunction().

◆ getTargetName()

std::string llvm::NVPTXSubtarget::getTargetName ( ) const
inline

Definition at line 325 of file NVPTXSubtarget.h.

Referenced by initializeSubtargetDependencies().

◆ has256BitVectorLoadStore()

bool llvm::NVPTXSubtarget::has256BitVectorLoadStore ( unsigned AS) const
inline

Definition at line 94 of file NVPTXSubtarget.h.

References llvm::NVPTXAS::ADDRESS_SPACE_GLOBAL.

Referenced by getVectorLoweringShape().

◆ hasArchAccelFeatures()

bool llvm::NVPTXSubtarget::hasArchAccelFeatures ( ) const
inline

Definition at line 312 of file NVPTXSubtarget.h.

References getFullSmVersion().

Referenced by hasFamilySpecificFeatures(), and hasPTXWithAccelSMs().

◆ hasAtomAddF64()

bool llvm::NVPTXSubtarget::hasAtomAddF64 ( ) const
inline

Definition at line 101 of file NVPTXSubtarget.h.

◆ hasAtomBitwise64()

bool llvm::NVPTXSubtarget::hasAtomBitwise64 ( ) const
inline

Definition at line 103 of file NVPTXSubtarget.h.

◆ hasAtomCas16()

bool llvm::NVPTXSubtarget::hasAtomCas16 ( ) const
inline

Definition at line 105 of file NVPTXSubtarget.h.

◆ hasAtomMinMax64()

bool llvm::NVPTXSubtarget::hasAtomMinMax64 ( ) const
inline

Definition at line 104 of file NVPTXSubtarget.h.

◆ hasAtomScope()

bool llvm::NVPTXSubtarget::hasAtomScope ( ) const
inline

Definition at line 102 of file NVPTXSubtarget.h.

◆ hasAtomSwap128()

bool llvm::NVPTXSubtarget::hasAtomSwap128 ( ) const
inline

Definition at line 106 of file NVPTXSubtarget.h.

Referenced by replaceAtomicSwap128().

◆ hasBF16Math()

bool llvm::NVPTXSubtarget::hasBF16Math ( ) const
inline

Definition at line 112 of file NVPTXSubtarget.h.

Referenced by hasNativeBF16Support().

◆ hasBrx()

bool llvm::NVPTXSubtarget::hasBrx ( ) const
inline

Definition at line 110 of file NVPTXSubtarget.h.

◆ hasClusterLaunchControlTryCancelMulticastSupport()

bool llvm::NVPTXSubtarget::hasClusterLaunchControlTryCancelMulticastSupport ( ) const
inline

Definition at line 272 of file NVPTXSubtarget.h.

References hasPTXWithAccelSMs(), and hasPTXWithFamilySMs().

◆ hasClusters()

bool llvm::NVPTXSubtarget::hasClusters ( ) const
inline

Definition at line 107 of file NVPTXSubtarget.h.

Referenced by failIfClustersUnsupported().

◆ hasConvertWithStochasticRounding()

bool llvm::NVPTXSubtarget::hasConvertWithStochasticRounding ( ) const
inline

Definition at line 300 of file NVPTXSubtarget.h.

References hasPTXWithAccelSMs().

◆ hasCvtaParam()

bool llvm::NVPTXSubtarget::hasCvtaParam ( ) const
inline

Definition at line 299 of file NVPTXSubtarget.h.

◆ hasDotInstructions()

bool llvm::NVPTXSubtarget::hasDotInstructions ( ) const
inline

Definition at line 125 of file NVPTXSubtarget.h.

◆ hasF32x2Instructions()

bool NVPTXSubtarget::hasF32x2Instructions ( ) const

Definition at line 202 of file NVPTXSubtarget.cpp.

References NoF32x2.

Referenced by getVectorLoweringShape().

◆ hasFamilySpecificFeatures()

bool llvm::NVPTXSubtarget::hasFamilySpecificFeatures ( ) const
inline

Definition at line 320 of file NVPTXSubtarget.h.

References getFullSmVersion(), and hasArchAccelFeatures().

Referenced by hasPTXWithFamilySMs().

◆ hasFP16Math()

bool llvm::NVPTXSubtarget::hasFP16Math ( ) const
inline

Definition at line 111 of file NVPTXSubtarget.h.

Referenced by allowFP16Math().

◆ hasFP16X2ToNarrowFPConversionSupport()

bool llvm::NVPTXSubtarget::hasFP16X2ToNarrowFPConversionSupport ( ) const
inline

Definition at line 236 of file NVPTXSubtarget.h.

References hasPTXWithFamilySMs().

◆ hasFP8ConversionSupport()

bool llvm::NVPTXSubtarget::hasFP8ConversionSupport ( ) const
inline

Definition at line 210 of file NVPTXSubtarget.h.

◆ hasHWROT32()

bool llvm::NVPTXSubtarget::hasHWROT32 ( ) const
inline

Definition at line 109 of file NVPTXSubtarget.h.

◆ hasLDG()

bool llvm::NVPTXSubtarget::hasLDG ( ) const
inline

Definition at line 108 of file NVPTXSubtarget.h.

Referenced by canLowerToLDG().

◆ hasLdStmatrixBlackwellSupport()

bool llvm::NVPTXSubtarget::hasLdStmatrixBlackwellSupport ( ) const
inline

Definition at line 285 of file NVPTXSubtarget.h.

References hasPTXWithAccelSMs(), and hasPTXWithFamilySMs().

◆ hasMaskOperator()

bool llvm::NVPTXSubtarget::hasMaskOperator ( ) const
inline

Definition at line 114 of file NVPTXSubtarget.h.

◆ hasMemoryOrdering()

bool llvm::NVPTXSubtarget::hasMemoryOrdering ( ) const
inline

Definition at line 118 of file NVPTXSubtarget.h.

◆ hasMMABlockScale()

bool llvm::NVPTXSubtarget::hasMMABlockScale ( ) const
inline

Definition at line 179 of file NVPTXSubtarget.h.

References hasPTXWithAccelSMs(), and hasPTXWithFamilySMs().

◆ hasMMASparseBlockScaleF4()

bool llvm::NVPTXSubtarget::hasMMASparseBlockScaleF4 ( ) const
inline

Definition at line 183 of file NVPTXSubtarget.h.

References hasPTXWithAccelSMs().

◆ hasMMASparseWithMXF4NVF4Scale4xE8M0()

bool llvm::NVPTXSubtarget::hasMMASparseWithMXF4NVF4Scale4xE8M0 ( ) const
inline

Definition at line 191 of file NVPTXSubtarget.h.

References hasPTXWithAccelSMs().

◆ hasMMAWithMXF4NVF4Scale4xE8M0()

bool llvm::NVPTXSubtarget::hasMMAWithMXF4NVF4Scale4xE8M0 ( ) const
inline

Definition at line 187 of file NVPTXSubtarget.h.

References hasPTXWithFamilySMs().

◆ hasNarrowFPConversionSupport()

bool llvm::NVPTXSubtarget::hasNarrowFPConversionSupport ( ) const
inline

Definition at line 224 of file NVPTXSubtarget.h.

References hasPTXWithAccelSMs(), and hasPTXWithFamilySMs().

◆ hasNativeBF16Support()

◆ hasNoReturn()

bool llvm::NVPTXSubtarget::hasNoReturn ( ) const
inline

Definition at line 115 of file NVPTXSubtarget.h.

◆ hasPTXASUnreachableBug()

bool llvm::NVPTXSubtarget::hasPTXASUnreachableBug ( ) const
inline

Definition at line 298 of file NVPTXSubtarget.h.

◆ hasPTXWithAccelSMs()

◆ hasPTXWithFamilySMs()

◆ hasReduxSyncF32()

bool llvm::NVPTXSubtarget::hasReduxSyncF32 ( ) const
inline

Definition at line 175 of file NVPTXSubtarget.h.

References hasPTXWithAccelSMs(), and hasPTXWithFamilySMs().

◆ hasRelaxedMMIO()

bool llvm::NVPTXSubtarget::hasRelaxedMMIO ( ) const
inline

Definition at line 124 of file NVPTXSubtarget.h.

◆ hasS2F6X2ConversionSupport()

bool llvm::NVPTXSubtarget::hasS2F6X2ConversionSupport ( ) const
inline

Definition at line 240 of file NVPTXSubtarget.h.

References hasPTXWithAccelSMs().

◆ hasSetMaxNRegSupport()

bool llvm::NVPTXSubtarget::hasSetMaxNRegSupport ( ) const
inline

Definition at line 278 of file NVPTXSubtarget.h.

References hasPTXWithAccelSMs(), and hasPTXWithFamilySMs().

◆ hasSplitAcquireAndReleaseFences()

bool llvm::NVPTXSubtarget::hasSplitAcquireAndReleaseFences ( ) const
inline

Definition at line 120 of file NVPTXSubtarget.h.

◆ hasTargetName()

bool llvm::NVPTXSubtarget::hasTargetName ( ) const
inline

Definition at line 328 of file NVPTXSubtarget.h.

◆ hasTcgen05InstSupport()

bool llvm::NVPTXSubtarget::hasTcgen05InstSupport ( ) const
inline

Definition at line 136 of file NVPTXSubtarget.h.

References hasPTXWithAccelSMs(), and hasPTXWithFamilySMs().

◆ hasTcgen05LdRedSupport()

bool llvm::NVPTXSubtarget::hasTcgen05LdRedSupport ( ) const
inline

Definition at line 170 of file NVPTXSubtarget.h.

References hasPTXWithFamilySMs().

◆ hasTcgen05MMAI8Kind()

bool llvm::NVPTXSubtarget::hasTcgen05MMAI8Kind ( ) const
inline

Definition at line 155 of file NVPTXSubtarget.h.

References hasPTXWithAccelSMs().

◆ hasTcgen05MMAScaleInputDImm()

bool llvm::NVPTXSubtarget::hasTcgen05MMAScaleInputDImm ( ) const
inline

Definition at line 151 of file NVPTXSubtarget.h.

References hasPTXWithAccelSMs(), and hasPTXWithFamilySMs().

◆ hasTcgen05MMASparseMxf4()

bool llvm::NVPTXSubtarget::hasTcgen05MMASparseMxf4 ( ) const
inline

Definition at line 165 of file NVPTXSubtarget.h.

References hasPTXWithAccelSMs().

◆ hasTcgen05MMASparseMxf4nvf4()

bool llvm::NVPTXSubtarget::hasTcgen05MMASparseMxf4nvf4 ( ) const
inline

Definition at line 160 of file NVPTXSubtarget.h.

References hasPTXWithAccelSMs().

◆ hasTcgen05ShiftSupport()

bool llvm::NVPTXSubtarget::hasTcgen05ShiftSupport ( ) const
inline

Definition at line 144 of file NVPTXSubtarget.h.

References hasPTXWithAccelSMs().

◆ hasTensormapReplaceElemtypeSupport()

bool llvm::NVPTXSubtarget::hasTensormapReplaceElemtypeSupport ( unsigned value) const
inline

◆ hasTensormapReplaceSupport()

bool llvm::NVPTXSubtarget::hasTensormapReplaceSupport ( ) const
inline

◆ hasTensormapReplaceSwizzleAtomicitySupport()

bool llvm::NVPTXSubtarget::hasTensormapReplaceSwizzleAtomicitySupport ( ) const
inline

Definition at line 259 of file NVPTXSubtarget.h.

References hasPTXWithAccelSMs(), and hasPTXWithFamilySMs().

◆ hasTensormapReplaceSwizzleModeSupport()

bool llvm::NVPTXSubtarget::hasTensormapReplaceSwizzleModeSupport ( unsigned value) const
inline

◆ hasTMABlackwellSupport()

bool llvm::NVPTXSubtarget::hasTMABlackwellSupport ( ) const
inline

Definition at line 203 of file NVPTXSubtarget.h.

References hasPTXWithAccelSMs(), and hasPTXWithFamilySMs().

◆ hasUsedBytesMaskPragma()

bool llvm::NVPTXSubtarget::hasUsedBytesMaskPragma ( ) const
inline

Definition at line 98 of file NVPTXSubtarget.h.

Referenced by convertMLOADToLoadWithUsedBytesMask().

◆ initializeSubtargetDependencies()

NVPTXSubtarget & NVPTXSubtarget::initializeSubtargetDependencies ( StringRef CPU,
StringRef FS )

◆ ParseSubtargetFeatures()

void llvm::NVPTXSubtarget::ParseSubtargetFeatures ( StringRef CPU,
StringRef TuneCPU,
StringRef FS )

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