| MLIR
    22.0.0git
    | 
#include "mlir/Dialect/SPIRV/IR/SPIRVTypes.h"
 Inheritance diagram for mlir::spirv::SPIRVType:
 Inheritance diagram for mlir::spirv::SPIRVType:| Public Types | |
| using | ExtensionArrayRefVector = SmallVectorImpl< ArrayRef< Extension > > | 
| The extension requirements for each type are following the ((Extension::A OR Extension::B) AND (Extension::C OR Extension::D)) convention.  More... | |
| using | CapabilityArrayRefVector = SmallVectorImpl< ArrayRef< Capability > > | 
| The capability requirements for each type are following the ((Capability::A OR Extension::B) AND (Capability::C OR Capability::D)) convention.  More... | |
|  Public Types inherited from mlir::Type | |
| template<typename ConcreteType , typename BaseType , typename StorageType , template< typename T > class... Traits> | |
| using | TypeBase = detail::StorageUserBase< ConcreteType, BaseType, StorageType, detail::TypeUniquer, Traits... > | 
| Utility class for implementing types.  More... | |
| using | ImplType = TypeStorage | 
| using | AbstractTy = AbstractType | 
| Public Member Functions | |
| bool | isScalarOrVector () | 
| void | getExtensions (ExtensionArrayRefVector &extensions, std::optional< StorageClass > storage=std::nullopt) | 
| Appends to extensionsthe extensions needed for this type to appear in the givenstorageclass.  More... | |
| void | getCapabilities (CapabilityArrayRefVector &capabilities, std::optional< StorageClass > storage=std::nullopt) | 
| Appends to capabilitiesthe capabilities needed for this type to appear in the givenstorageclass.  More... | |
| std::optional< int64_t > | getSizeInBytes () | 
| Returns the size in bytes for each type.  More... | |
| constexpr | Type ()=default | 
| Type (const ImplType *impl) | |
| Type (const Type &other)=default | |
|  Public Member Functions inherited from mlir::Type | |
| constexpr | Type ()=default | 
| Type (const ImplType *impl) | |
| Type (const Type &other)=default | |
| Type & | operator= (const Type &other)=default | 
| bool | operator== (Type other) const | 
| bool | operator!= (Type other) const | 
| operator bool () const | |
| bool | operator! () const | 
| TypeID | getTypeID () | 
| Return a unique identifier for the concrete type.  More... | |
| MLIRContext * | getContext () const | 
| Return the MLIRContext in which this type was uniqued.  More... | |
| Dialect & | getDialect () const | 
| Get the dialect this type is registered to.  More... | |
| bool | isIndex () const | 
| bool | isBF16 () const | 
| bool | isF16 () const | 
| bool | isTF32 () const | 
| bool | isF32 () const | 
| bool | isF64 () const | 
| bool | isF80 () const | 
| bool | isF128 () const | 
| bool | isFloat () const | 
| Return true if this is an float type (with the specified width).  More... | |
| bool | isFloat (unsigned width) const | 
| Return true if this is a float type with the specified width.  More... | |
| bool | isInteger () const | 
| Return true if this is an integer type (with the specified width).  More... | |
| bool | isInteger (unsigned width) const | 
| bool | isSignlessInteger () const | 
| Return true if this is a signless integer type (with the specified width).  More... | |
| bool | isSignlessInteger (unsigned width) const | 
| bool | isSignedInteger () const | 
| Return true if this is a signed integer type (with the specified width).  More... | |
| bool | isSignedInteger (unsigned width) const | 
| bool | isUnsignedInteger () const | 
| Return true if this is an unsigned integer type (with the specified width).  More... | |
| bool | isUnsignedInteger (unsigned width) const | 
| unsigned | getIntOrFloatBitWidth () const | 
| Return the bit width of an integer or a float type, assert failure on other types.  More... | |
| bool | isSignlessIntOrIndex () const | 
| Return true if this is a signless integer or index type.  More... | |
| bool | isSignlessIntOrIndexOrFloat () const | 
| Return true if this is a signless integer, index, or float type.  More... | |
| bool | isSignlessIntOrFloat () const | 
| Return true of this is a signless integer or a float type.  More... | |
| bool | isIntOrIndex () const | 
| Return true if this is an integer (of any signedness) or an index type.  More... | |
| bool | isIntOrFloat () const | 
| Return true if this is an integer (of any signedness) or a float type.  More... | |
| bool | isIntOrIndexOrFloat () const | 
| Return true if this is an integer (of any signedness), index, or float type.  More... | |
| void | print (raw_ostream &os) const | 
| Print the current type.  More... | |
| void | print (raw_ostream &os, AsmState &state) const | 
| void | dump () const | 
| const void * | getAsOpaquePointer () const | 
| Methods for supporting PointerLikeTypeTraits.  More... | |
| template<typename InterfaceT > | |
| bool | hasPromiseOrImplementsInterface () | 
| Returns true if InterfaceThas been promised by the dialect or implemented.  More... | |
| template<template< typename T > class Trait> | |
| bool | hasTrait () | 
| Returns true if the type was registered with a particular trait.  More... | |
| const AbstractTy & | getAbstractType () const | 
| Return the abstract type descriptor for this type.  More... | |
| ImplType * | getImpl () const | 
| Return the Type implementation.  More... | |
| void | walkImmediateSubElements (function_ref< void(Attribute)> walkAttrsFn, function_ref< void(Type)> walkTypesFn) const | 
| Walk all of the immediately nested sub-attributes and sub-types.  More... | |
| auto | replaceImmediateSubElements (ArrayRef< Attribute > replAttrs, ArrayRef< Type > replTypes) const | 
| Replace the immediately nested sub-attributes and sub-types with those provided.  More... | |
| template<WalkOrder Order = WalkOrder::PostOrder, typename... WalkFns> | |
| auto | walk (WalkFns &&...walkFns) | 
| Walk this type and all attibutes/types nested within using the provided walk functions.  More... | |
| template<typename... ReplacementFns> | |
| auto | replace (ReplacementFns &&...replacementFns) | 
| Recursively replace all of the nested sub-attributes and sub-types using the provided map functions.  More... | |
| Static Public Member Functions | |
| static bool | classof (Type type) | 
|  Static Public Member Functions inherited from mlir::Type | |
| static Type | getFromOpaquePointer (const void *pointer) | 
| Additional Inherited Members | |
|  Protected Attributes inherited from mlir::Type | |
| ImplType * | impl {nullptr} | 
Definition at line 43 of file SPIRVTypes.h.
| using mlir::spirv::SPIRVType::CapabilityArrayRefVector = SmallVectorImpl<ArrayRef<Capability> > | 
The capability requirements for each type are following the ((Capability::A OR Extension::B) AND (Capability::C OR Capability::D)) convention.
Definition at line 65 of file SPIRVTypes.h.
| using mlir::spirv::SPIRVType::ExtensionArrayRefVector = SmallVectorImpl<ArrayRef<Extension> > | 
The extension requirements for each type are following the ((Extension::A OR Extension::B) AND (Extension::C OR Extension::D)) convention.
Definition at line 54 of file SPIRVTypes.h.
| 
 | static | 
Definition at line 677 of file SPIRVTypes.cpp.
References mlir::Type::getDialect(), and mlir::spirv::CompositeType::isValid().
| void SPIRVType::getCapabilities | ( | SPIRVType::CapabilityArrayRefVector & | capabilities, | 
| std::optional< StorageClass > | storage = std::nullopt | ||
| ) | 
Appends to capabilities the capabilities needed for this type to appear in the given storage class. 
This method does not guarantee the uniqueness of capabilities; the same capability may be appended multiple times.
Definition at line 699 of file SPIRVTypes.cpp.
| void SPIRVType::getExtensions | ( | SPIRVType::ExtensionArrayRefVector & | extensions, | 
| std::optional< StorageClass > | storage = std::nullopt | ||
| ) | 
Appends to extensions the extensions needed for this type to appear in the given storage class. 
This method does not guarantee the uniqueness of extensions; the same extension may be appended multiple times.
Definition at line 694 of file SPIRVTypes.cpp.
| std::optional< int64_t > SPIRVType::getSizeInBytes | ( | ) | 
Returns the size in bytes for each type.
If no size can be calculated, returns std::nullopt. Note that if the type has explicit layout, it is also taken into account in calculation. 
Definition at line 705 of file SPIRVTypes.cpp.
References mlir::spirv::ArrayType::getArrayStride(), mlir::spirv::ArrayType::getElementType(), mlir::Type::getIntOrFloatBitWidth(), and mlir::spirv::ArrayType::getNumElements().
Referenced by deduceCanonicalResource(), and ConvertAccessChain::matchAndRewrite().
| bool SPIRVType::isScalarOrVector | ( | ) | 
Definition at line 690 of file SPIRVTypes.cpp.
References mlir::Type::isIntOrFloat().
Referenced by deduceCanonicalResource().
| 
 | constexprdefault | 
| 
 | default |