|
LLVM 24.0.0git
|
Namespaces | |
| namespace | PTXCmpMode |
| PTXCmpMode - Comparison mode enumeration. | |
| namespace | PTXCvtMode |
| PTXCvtMode - Conversion code enumeration. | |
| namespace | PTXLdStInstCode |
| namespace | PTXPrmtMode |
Typedefs | |
| using | OrderingUnderlyingType = unsigned int |
| using | ScopeUnderlyingType = unsigned int |
| using | AddressSpaceUnderlyingType = unsigned int |
Enumerations | |
| enum | GPUKind : uint8_t { GK_NONE = 0 , GK_LAST = GK_SM_121f } |
| GPU kinds supported by the NVPTX target. More... | |
| enum class | ArchSuffix { NONE , ACCELERATED , FAMILY } |
| Suffix class of an NVPTX architecture name. More... | |
| enum class | VirtualRegisterKind : unsigned { Physical = 0 , B1 = 1 , B16 = 2 , B32 = 3 , B64 = 4 , B128 = 5 } |
| enum | DrvInterface { NVCL , CUDA } |
| enum | VecInstType { VecInstTypeShift = 0 , VecInstTypeMask = 0xF , VecNOP = 0 , VecLoad = 1 , VecStore = 2 , VecBuild = 3 , VecShuffle = 4 , VecExtract = 5 , VecInsert = 6 , VecDest = 7 , VecOther = 15 } |
| enum | SimpleMove { SimpleMoveMask = 0x10 , SimpleMoveShift = 4 } |
| enum | LoadStore { isLoadMask = 0x20 , isLoadShift = 5 , isStoreMask = 0x40 , isStoreShift = 6 } |
| enum | Ordering : OrderingUnderlyingType { NotAtomic , Relaxed = (OrderingUnderlyingType)AtomicOrdering::Monotonic , Acquire = (OrderingUnderlyingType)AtomicOrdering::Acquire , Release = (OrderingUnderlyingType)AtomicOrdering::Release , AcquireRelease = (OrderingUnderlyingType)AtomicOrdering::AcquireRelease , SequentiallyConsistent , Volatile = SequentiallyConsistent + 1 , RelaxedMMIO = Volatile + 1 } |
| enum | Scope : ScopeUnderlyingType { Thread = 0 , Block = 1 , Cluster = 2 , Device = 3 , System = 4 , DefaultDevice = 5 , LASTSCOPE = DefaultDevice } |
| enum | AddressSpace : AddressSpaceUnderlyingType { Generic = NVPTXAS::ADDRESS_SPACE_GENERIC , Global = NVPTXAS::ADDRESS_SPACE_GLOBAL , Shared = NVPTXAS::ADDRESS_SPACE_SHARED , Const = NVPTXAS::ADDRESS_SPACE_CONST , Local = NVPTXAS::ADDRESS_SPACE_LOCAL , SharedCluster = NVPTXAS::ADDRESS_SPACE_SHARED_CLUSTER , EntryParam = NVPTXAS::ADDRESS_SPACE_ENTRY_PARAM , DeviceParam } |
| enum class | DivPrecisionLevel : unsigned { Approx = 0 , Full = 1 , IEEE754 = 2 , IEEE754_NoFTZ = 3 } |
Functions | |
| LLVM_ABI GPUKind | parseArch (StringRef CPU) |
Parse CPU (e.g. "sm_90") into a GPUKind, or GK_NONE if unrecognized. | |
| LLVM_ABI StringRef | getArchName (GPUKind Kind) |
| Return the canonical processor name (e.g. | |
| LLVM_ABI StringRef | getVirtualArch (GPUKind Kind) |
| Return the virtual (compute_) arch name (e.g. | |
| LLVM_ABI unsigned | getSmVersion (GPUKind Kind) |
| Return the numeric compute-capability id (e.g. | |
| LLVM_ABI ArchSuffix | getArchSuffix (GPUKind Kind) |
Return the suffix class of Kind. | |
| bool | isAcceleratedArch (GPUKind Kind) |
Whether Kind is an accelerated variant (e.g. sm_90a). | |
| bool | isFamilySpecificArch (GPUKind Kind) |
Whether Kind is a family-specific variant (e.g. sm_90f) or accelerated. | |
| bool | supportsUnifiedAddressing (GPUKind Kind) |
Whether Kind supports unified addressing. | |
| StringRef | getVirtualRegisterPrefix (VirtualRegisterKind Kind) |
The name prefix shared by all virtual registers of Kind. | |
| auto | packed_types () |
| bool | isPackedVectorTy (EVT VT) |
| bool | isPackedElementTy (EVT ET) |
| std::string | getValidPTXIdentifier (StringRef Name) |
| std::string | OrderingToString (Ordering Order) |
| raw_ostream & | operator<< (raw_ostream &O, Ordering Order) |
| std::string | ScopeToString (Scope S) |
| raw_ostream & | operator<< (raw_ostream &O, Scope S) |
| const char * | addressSpaceToString (AddressSpace A, bool UseParamSubqualifiers=false) |
| raw_ostream & | operator<< (raw_ostream &O, AddressSpace A) |
Variables | |
| constexpr unsigned | VirtualRegisterKindShift = 27 |
| constexpr unsigned | VirtualRegisterNumMask |
| using llvm::NVPTX::AddressSpaceUnderlyingType = unsigned int |
| using llvm::NVPTX::OrderingUnderlyingType = unsigned int |
| using llvm::NVPTX::ScopeUnderlyingType = unsigned int |
|
strong |
Suffix class of an NVPTX architecture name.
Enumerator spellings match the SUFFIX column tokens in NVPTXTargetParser.def.
| Enumerator | |
|---|---|
| NONE | |
| ACCELERATED | |
| FAMILY | |
Definition at line 33 of file NVPTXTargetParser.h.
|
strong |
| enum llvm::NVPTX::GPUKind : uint8_t |
GPU kinds supported by the NVPTX target.
| Enumerator | |
|---|---|
| GK_NONE | |
| GK_LAST | |
Definition at line 20 of file NVPTXTargetParser.h.
|
strong |
| Enumerator | |
|---|---|
| Physical | |
| B1 | |
| B16 | |
| B32 | |
| B64 | |
| B128 | |
Definition at line 32 of file NVPTXBaseInfo.h.
|
inline |
Definition at line 163 of file NVPTXUtilities.h.
References A(), Const, DeviceParam, EntryParam, llvm::formatv(), Generic, Global, Local, llvm::report_fatal_error(), Shared, and SharedCluster.
Referenced by operator<<().
Return the canonical processor name (e.g.
"sm_90") for Kind, or "" if Kind is GK_NONE.
Definition at line 27 of file NVPTXTargetParser.cpp.
References GK_NONE, and llvm_unreachable.
| ArchSuffix llvm::NVPTX::getArchSuffix | ( | GPUKind | Kind | ) |
Return the suffix class of Kind.
Definition at line 63 of file NVPTXTargetParser.cpp.
References GK_NONE, llvm_unreachable, and NONE.
Referenced by isAcceleratedArch(), and isFamilySpecificArch().
Return the numeric compute-capability id (e.g.
sm_90 -> 900) for Kind, or 0 if Kind is GK_NONE.
Definition at line 51 of file NVPTXTargetParser.cpp.
References GK_NONE, and llvm_unreachable.
Referenced by supportsUnifiedAddressing().
|
inline |
Definition at line 97 of file NVPTXUtilities.h.
References C(), and llvm::isAlnum().
Referenced by llvm::NVPTXTargetStreamer::emitValue().
Return the virtual (compute_) arch name (e.g.
"compute_90") for Kind, or "" if Kind is GK_NONE.
Definition at line 39 of file NVPTXTargetParser.cpp.
References GK_NONE, and llvm_unreachable.
|
inline |
The name prefix shared by all virtual registers of Kind.
Definition at line 53 of file NVPTXBaseInfo.h.
References B1, B128, B16, B32, B64, llvm_unreachable, and Physical.
Referenced by llvm::NVPTXInstPrinter::printRegName().
Whether Kind is an accelerated variant (e.g. sm_90a).
Definition at line 54 of file NVPTXTargetParser.h.
References ACCELERATED, and getArchSuffix().
Whether Kind is a family-specific variant (e.g. sm_90f) or accelerated.
Definition at line 59 of file NVPTXTargetParser.h.
References ACCELERATED, FAMILY, and getArchSuffix().
Definition at line 92 of file NVPTXUtilities.h.
References llvm::any_of(), llvm::EVT::getVectorElementType(), and packed_types().
Definition at line 87 of file NVPTXUtilities.h.
References llvm::any_of(), llvm::equal_to(), and packed_types().
Referenced by combinePackingMovIntoStore(), combineUnpackingMovIntoLoad(), PerformBUILD_VECTORCombine(), and PerformEXTRACTCombine().
|
inline |
Definition at line 187 of file NVPTXUtilities.h.
References A(), and addressSpaceToString().
|
inline |
Definition at line 134 of file NVPTXUtilities.h.
References OrderingToString().
|
inline |
Definition at line 158 of file NVPTXUtilities.h.
References ScopeToString().
|
inline |
Definition at line 111 of file NVPTXUtilities.h.
References Acquire, AcquireRelease, llvm::formatv(), NotAtomic, Relaxed, RelaxedMMIO, Release, llvm::report_fatal_error(), SequentiallyConsistent, and Volatile.
Referenced by operator<<().
|
inline |
Definition at line 80 of file NVPTXUtilities.h.
Referenced by isPackedElementTy(), and isPackedVectorTy().
Parse CPU (e.g. "sm_90") into a GPUKind, or GK_NONE if unrecognized.
Definition at line 19 of file NVPTXTargetParser.cpp.
References llvm::StringSwitch< T, R >::Default(), and GK_NONE.
|
inline |
Definition at line 139 of file NVPTXUtilities.h.
References Block, Cluster, DefaultDevice, Device, llvm::formatv(), llvm::report_fatal_error(), System, and Thread.
Referenced by operator<<().
Whether Kind supports unified addressing.
Unified addressing was introduced with the Pascal generation (sm_60).
Definition at line 66 of file NVPTXTargetParser.h.
References getSmVersion().
|
constexpr |
Definition at line 41 of file NVPTXBaseInfo.h.
Referenced by llvm::NVPTXInstPrinter::printRegName().
|
constexpr |
Definition at line 42 of file NVPTXBaseInfo.h.
Referenced by llvm::NVPTXInstPrinter::printRegName().