MLIR
17.0.0git
|
This class contains all of the static information common to all instances of a registered Type. More...
#include "mlir/IR/TypeSupport.h"
Public Types | |
using | HasTraitFn = llvm::unique_function< bool(TypeID) const > |
using | WalkImmediateSubElementsFn = function_ref< void(Type, function_ref< void(Attribute)>, function_ref< void(Type)>)> |
using | ReplaceImmediateSubElementsFn = function_ref< Type(Type, ArrayRef< Attribute >, ArrayRef< Type >)> |
Public Member Functions | |
Dialect & | getDialect () const |
Return the dialect this type was registered to. More... | |
template<typename T > | |
T::Concept * | getInterface () const |
Returns an instance of the concept object for the given interface if it was registered to this type, null otherwise. More... | |
bool | hasInterface (TypeID interfaceID) const |
Returns true if the type has the interface with the given ID. More... | |
template<template< typename T > class Trait> | |
bool | hasTrait () const |
Returns true if the type has a particular trait. More... | |
bool | hasTrait (TypeID traitID) const |
Returns true if the type has a particular trait. More... | |
void | walkImmediateSubElements (Type type, function_ref< void(Attribute)> walkAttrsFn, function_ref< void(Type)> walkTypesFn) const |
Walk the immediate sub-elements of the given type. More... | |
Type | replaceImmediateSubElements (Type type, ArrayRef< Attribute > replAttrs, ArrayRef< Type > replTypes) const |
Replace the immediate sub-elements of the given type. More... | |
TypeID | getTypeID () const |
Return the unique identifier representing the concrete type class. More... | |
Static Public Member Functions | |
static const AbstractType & | lookup (TypeID typeID, MLIRContext *context) |
Look up the specified abstract type in the MLIRContext and return a reference to it. More... | |
template<typename T > | |
static AbstractType | get (Dialect &dialect) |
This method is used by Dialect objects when they register the list of types they contain. More... | |
static AbstractType | get (Dialect &dialect, detail::InterfaceMap &&interfaceMap, HasTraitFn &&hasTrait, WalkImmediateSubElementsFn walkImmediateSubElementsFn, ReplaceImmediateSubElementsFn replaceImmediateSubElementsFn, TypeID typeID) |
This method is used by Dialect objects to register types with custom TypeIDs. More... | |
Friends | |
template<typename ConcreteT , typename BaseT , typename StorageT , typename UniquerT , template< typename T > class... Traits> | |
class | detail::StorageUserBase |
Give StorageUserBase access to the mutable lookup. More... | |
This class contains all of the static information common to all instances of a registered Type.
Definition at line 30 of file TypeSupport.h.
using mlir::AbstractType::HasTraitFn = llvm::unique_function<bool(TypeID) const> |
Definition at line 32 of file TypeSupport.h.
using mlir::AbstractType::ReplaceImmediateSubElementsFn = function_ref<Type(Type, ArrayRef<Attribute>, ArrayRef<Type>)> |
Definition at line 35 of file TypeSupport.h.
using mlir::AbstractType::WalkImmediateSubElementsFn = function_ref<void( Type, function_ref<void(Attribute)>, function_ref<void(Type)>)> |
Definition at line 33 of file TypeSupport.h.
|
inlinestatic |
This method is used by Dialect objects when they register the list of types they contain.
Definition at line 45 of file TypeSupport.h.
Referenced by mlir::ExtensibleDialect::registerDynamicType().
|
inlinestatic |
This method is used by Dialect objects to register types with custom TypeIDs.
The use of this method is in general discouraged in favor of 'get<CustomType>(dialect)';
Definition at line 56 of file TypeSupport.h.
References hasTrait().
|
inline |
Return the dialect this type was registered to.
Definition at line 67 of file TypeSupport.h.
|
inline |
Returns an instance of the concept object for the given interface if it was registered to this type, null otherwise.
This should not be used directly.
Definition at line 73 of file TypeSupport.h.
References mlir::detail::InterfaceMap::lookup().
|
inline |
Return the unique identifier representing the concrete type class.
Definition at line 101 of file TypeSupport.h.
|
inline |
Returns true if the type has the interface with the given ID.
Definition at line 78 of file TypeSupport.h.
References mlir::detail::InterfaceMap::contains().
|
inline |
Returns true if the type has a particular trait.
Definition at line 84 of file TypeSupport.h.
Referenced by get(), and mlir::Type::hasTrait().
|
inline |
Returns true if the type has a particular trait.
Definition at line 89 of file TypeSupport.h.
|
static |
Look up the specified abstract type in the MLIRContext and return a reference to it.
Definition at line 843 of file MLIRContext.cpp.
Referenced by mlir::transform::detail::checkImplementsTransformHandleTypeInterface(), mlir::detail::TypeUniquer::getWithTypeID(), and mlir::detail::TypeUniquer::registerType().
Type AbstractType::replaceImmediateSubElements | ( | Type | type, |
ArrayRef< Attribute > | replAttrs, | ||
ArrayRef< Type > | replTypes | ||
) | const |
Replace the immediate sub-elements of the given type.
Definition at line 25 of file Types.cpp.
Referenced by mlir::Type::replaceImmediateSubElements().
void AbstractType::walkImmediateSubElements | ( | Type | type, |
function_ref< void(Attribute)> | walkAttrsFn, | ||
function_ref< void(Type)> | walkTypesFn | ||
) | const |
Walk the immediate sub-elements of the given type.
Definition at line 19 of file Types.cpp.
Referenced by mlir::Type::walkImmediateSubElements().
|
friend |
Give StorageUserBase access to the mutable lookup.
Definition at line 118 of file TypeSupport.h.