MLIR
20.0.0git
|
This class provides a shared interface for ranked and unranked memref types. More...
#include "mlir/IR/BuiltinTypes.h"
Public Member Functions | |
Type | getElementType () const |
Returns the element type of this memref type. More... | |
bool | hasRank () const |
Returns if this type is ranked, i.e. it has a known number of dimensions. More... | |
ArrayRef< int64_t > | getShape () const |
Returns the shape of this memref type. More... | |
BaseMemRefType | cloneWith (std::optional< ArrayRef< int64_t >> shape, Type elementType) const |
Clone this type with the given shape and element type. More... | |
MemRefType | clone (ArrayRef< int64_t > shape, Type elementType) const |
Return a clone of this type with the given new shape and element type. More... | |
MemRefType | clone (ArrayRef< int64_t > shape) const |
Return a clone of this type with the given new shape. More... | |
Attribute | getMemorySpace () const |
Returns the memory space in which data referred to by this memref resides. More... | |
unsigned | getMemorySpaceAsInt () const |
[deprecated] Returns the memory space in old raw integer representation. More... | |
operator ShapedType () const | |
Allow implicit conversion to ShapedType. 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 |
template<typename... Tys> | |
bool | isa () const |
template<typename... Tys> | |
bool | isa_and_nonnull () const |
template<typename U > | |
U | dyn_cast () const |
template<typename U > | |
U | dyn_cast_or_null () const |
template<typename U > | |
U | cast () 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 | isFloat4E2M1FN () const |
bool | isFloat6E2M3FN () const |
bool | isFloat6E3M2FN () const |
bool | isFloat8E5M2 () const |
bool | isFloat8E4M3 () const |
bool | isFloat8E4M3FN () const |
bool | isFloat8E5M2FNUZ () const |
bool | isFloat8E4M3FNUZ () const |
bool | isFloat8E4M3B11FNUZ () const |
bool | isFloat8E3M4 () const |
bool | isFloat8E8M0FNU () const |
bool | isBF16 () const |
bool | isF16 () const |
bool | isTF32 () const |
bool | isF32 () const |
bool | isF64 () const |
bool | isF80 () const |
bool | isF128 () const |
bool | isInteger () const |
Return true if this is an integer type (with the specified width). More... | |
bool | isInteger (unsigned width) const |
Return true if this is an integer type with the specified width. More... | |
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 InterfaceT has 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 | isValidElementType (Type type) |
Return true if the specified element type is ok in a memref. More... | |
static bool | classof (Type type) |
Methods for support type inquiry through isa, cast, and dyn_cast. More... | |
Static Public Member Functions inherited from mlir::Type | |
static Type | getFromOpaquePointer (const void *pointer) |
Additional Inherited Members | |
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 |
Protected Attributes inherited from mlir::Type | |
ImplType * | impl {nullptr} |
This class provides a shared interface for ranked and unranked memref types.
Note: This class attaches the ShapedType trait to act as a mixin to provide many useful utility functions. This inheritance has no effect on derived memref types.
Definition at line 149 of file BuiltinTypes.h.
|
inlinestatic |
Methods for support type inquiry through isa, cast, and dyn_cast.
Definition at line 408 of file BuiltinTypes.h.
MemRefType mlir::BaseMemRefType::clone | ( | ArrayRef< int64_t > | shape | ) | const |
Return a clone of this type with the given new shape.
The returned type is ranked, even if this type is unranked.
Return a clone of this type with the given new shape and element type.
The returned type is ranked, even if this type is unranked.
BaseMemRefType BaseMemRefType::cloneWith | ( | std::optional< ArrayRef< int64_t >> | shape, |
Type | elementType | ||
) | const |
Clone this type with the given shape and element type.
If the provided shape is std::nullopt
, the current shape of the type is used.
Definition at line 380 of file BuiltinTypes.cpp.
References mlir::get(), mlir::MemRefType::Builder::setElementType(), mlir::MemRefType::Builder::setMemorySpace(), and mlir::MemRefType::Builder::setShape().
Type BaseMemRefType::getElementType | ( | ) | const |
Returns the element type of this memref type.
Definition at line 366 of file BuiltinTypes.cpp.
Referenced by mlir::spirv::MemorySpaceToStorageClassConverter::MemorySpaceToStorageClassConverter().
Attribute BaseMemRefType::getMemorySpace | ( | ) | const |
Returns the memory space in which data referred to by this memref resides.
Definition at line 406 of file BuiltinTypes.cpp.
Referenced by mlir::bufferization::OpWithUnstructuredControlFlowBufferizableOpInterfaceExternalModel< ConcreteModel, ConcreteOp >::getBufferType(), mlir::LLVMTypeConverter::getMemRefAddressSpace(), hasDefaultMemorySpace(), hasSharedMemorySpace(), and mlir::spirv::MemorySpaceToStorageClassConverter::MemorySpaceToStorageClassConverter().
unsigned BaseMemRefType::getMemorySpaceAsInt | ( | ) | const |
[deprecated] Returns the memory space in old raw integer representation.
New Attribute getMemorySpace()
method should be used instead.
Definition at line 412 of file BuiltinTypes.cpp.
Referenced by hasDefaultMemorySpace().
ArrayRef< int64_t > BaseMemRefType::getShape | ( | ) | const |
Returns the shape of this memref type.
Definition at line 376 of file BuiltinTypes.cpp.
Referenced by mlir::bufferization::OpWithUnstructuredControlFlowBufferizableOpInterfaceExternalModel< ConcreteModel, ConcreteOp >::getBufferType(), and mlir::spirv::MemorySpaceToStorageClassConverter::MemorySpaceToStorageClassConverter().
bool BaseMemRefType::hasRank | ( | ) | const |
Returns if this type is ranked, i.e. it has a known number of dimensions.
Definition at line 372 of file BuiltinTypes.cpp.
Referenced by mlir::bufferization::OpWithUnstructuredControlFlowBufferizableOpInterfaceExternalModel< ConcreteModel, ConcreteOp >::getBufferType().
|
inlinestatic |
Return true if the specified element type is ok in a memref.
Definition at line 412 of file BuiltinTypes.h.
References mlir::Type::isIntOrIndexOrFloat().
Referenced by mlir::detail::Parser::parseMemRefType().
|
inline |
Allow implicit conversion to ShapedType.
Definition at line 192 of file BuiltinTypes.h.
|
constexprdefault |
|
default |