MLIR
20.0.0git
|
A dynamic attribute instance. More...
#include "mlir/IR/ExtensibleDialect.h"
Public Types | |
using | Base = StorageUserBase< ConcreteT, BaseT, StorageT, UniquerT, Traits... > |
Utility declarations for the concrete attribute class. More... | |
Public Types inherited from mlir::detail::StorageUserBase< ConcreteT, BaseT, StorageT, UniquerT, Traits > | |
using | Base = StorageUserBase< ConcreteT, BaseT, StorageT, UniquerT, Traits... > |
Utility declarations for the concrete attribute class. More... | |
using | ImplType = StorageT |
using | HasTraitFn = bool(*)(TypeID) |
Public Member Functions | |
DynamicAttrDefinition * | getAttrDef () |
Return the attribute definition of the concrete attribute. More... | |
ArrayRef< Attribute > | getParams () |
Return the attribute parameters. More... | |
void | print (AsmPrinter &printer) |
Print the dynamic attribute with the format 'attrname' if there is no parameters, or 'attrname<attr (,attr)*>'. More... | |
Public Member Functions inherited from mlir::detail::StorageUserBase< ConcreteT, BaseT, StorageT, UniquerT, Traits > | |
ImplType * | getImpl () const |
Utility for easy access to the storage instance. More... | |
Static Public Member Functions | |
static DynamicAttr | get (DynamicAttrDefinition *attrDef, ArrayRef< Attribute > params={}) |
Return an instance of a dynamic attribute given a dynamic attribute definition and attribute parameters. More... | |
static DynamicAttr | getChecked (function_ref< InFlightDiagnostic()> emitError, DynamicAttrDefinition *attrDef, ArrayRef< Attribute > params={}) |
Return an instance of a dynamic attribute given a dynamic attribute definition and attribute parameters. More... | |
static bool | isa (Attribute attr, DynamicAttrDefinition *attrDef) |
Check if an attribute is a specific dynamic attribute. More... | |
static bool | classof (Attribute attr) |
Check if an attribute is a dynamic attribute. More... | |
static ParseResult | parse (AsmParser &parser, DynamicAttrDefinition *attrDef, DynamicAttr &parsedAttr) |
Parse the dynamic attribute parameters and construct the attribute. More... | |
Static Public Member Functions inherited from mlir::detail::StorageUserBase< ConcreteT, BaseT, StorageT, UniquerT, Traits > | |
static TypeID | getTypeID () |
Return a unique identifier for the concrete type. More... | |
template<typename T > | |
static bool | classof (T val) |
Provide an implementation of 'classof' that compares the type id of the provided value with that of the concrete type. More... | |
static detail::InterfaceMap | getInterfaceMap () |
Returns an interface map for the interfaces registered to this storage user. More... | |
static HasTraitFn | getHasTraitFn () |
Returns the function that returns true if the given Trait ID matches the IDs of any of the traits defined by the storage user. More... | |
static auto | getWalkImmediateSubElementsFn () |
Returns a function that walks immediate sub elements of a given instance of the storage user. More... | |
static auto | getReplaceImmediateSubElementsFn () |
Returns a function that replaces immediate sub elements of a given instance of the storage user. More... | |
template<typename... IfaceModels> | |
static void | attachInterface (MLIRContext &context) |
Attach the given models as implementations of the corresponding interfaces for the concrete storage user class. More... | |
template<typename... Args> | |
static ConcreteT | get (MLIRContext *ctx, Args &&...args) |
Get or create a new ConcreteT instance within the ctx. More... | |
template<typename... Args> | |
static ConcreteT | getChecked (const Location &loc, Args &&...args) |
Get or create a new ConcreteT instance within the ctx, defined at the given, potentially unknown, location. More... | |
template<typename... Args> | |
static ConcreteT | getChecked (function_ref< InFlightDiagnostic()> emitErrorFn, MLIRContext *ctx, Args... args) |
Get or create a new ConcreteT instance within the ctx. More... | |
static ConcreteT | getFromOpaquePointer (const void *ptr) |
Get an instance of the concrete type from a void pointer. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from mlir::detail::StorageUserBase< ConcreteT, BaseT, StorageT, UniquerT, Traits > | |
template<typename... Args> | |
LogicalResult | mutate (Args &&...args) |
Mutate the current storage instance. More... | |
Static Protected Member Functions inherited from mlir::detail::StorageUserBase< ConcreteT, BaseT, StorageT, UniquerT, Traits > | |
template<typename... Args> | |
static LogicalResult | verifyInvariants (Args... args) |
Default implementation that just returns success. More... | |
A dynamic attribute instance.
This is an attribute whose definition is defined at runtime. It is possible to check if an attribute is a dynamic attribute using my_attr.isa<DynamicAttr>()
, and getting the attribute definition of a dynamic attribute using the DynamicAttr::getAttrDef
method. All dynamic attributes have the same storage, which is an array of attributes.
Definition at line 157 of file ExtensibleDialect.h.
using mlir::detail::StorageUserBase< ConcreteT, BaseT, StorageT, UniquerT, Traits >::Base = StorageUserBase<ConcreteT, BaseT, StorageT, UniquerT, Traits...> |
Utility declarations for the concrete attribute class.
Definition at line 100 of file StorageUniquerSupport.h.
|
static |
Check if an attribute is a dynamic attribute.
Definition at line 264 of file ExtensibleDialect.cpp.
References mlir::Attribute::hasTrait().
|
static |
Return an instance of a dynamic attribute given a dynamic attribute definition and attribute parameters.
This asserts that the attribute verifier succeeded.
Definition at line 244 of file ExtensibleDialect.cpp.
References mlir::DynamicAttrDefinition::getContext(), and mlir::SelfOwningTypeID::getTypeID().
Referenced by getChecked().
DynamicAttrDefinition * DynamicAttr::getAttrDef | ( | ) |
Return the attribute definition of the concrete attribute.
Definition at line 260 of file ExtensibleDialect.cpp.
References mlir::detail::StorageUserBase< ConcreteT, BaseT, StorageT, UniquerT, Traits >::getImpl().
Referenced by print().
|
static |
Return an instance of a dynamic attribute given a dynamic attribute definition and attribute parameters.
If the parameters provided are invalid, errors are emitted using the provided location and a null object is returned.
Definition at line 252 of file ExtensibleDialect.cpp.
References mlir::emitError(), get(), and mlir::DynamicAttrDefinition::verify().
Return the attribute parameters.
Definition at line 262 of file ExtensibleDialect.cpp.
References mlir::detail::StorageUserBase< ConcreteT, BaseT, StorageT, UniquerT, Traits >::getImpl().
Referenced by print().
|
inlinestatic |
Check if an attribute is a specific dynamic attribute.
Definition at line 185 of file ExtensibleDialect.h.
References mlir::Attribute::getTypeID(), and mlir::SelfOwningTypeID::getTypeID().
|
static |
Parse the dynamic attribute parameters and construct the attribute.
The parameters are either empty, and nothing is parsed, or they are in the format '<>' or '<attr (,attr)*>'.
Definition at line 268 of file ExtensibleDialect.cpp.
References mlir::AsmParser::getChecked().
Referenced by mlir::ExtensibleDialect::parseOptionalDynamicAttr().
void DynamicAttr::print | ( | AsmPrinter & | printer | ) |
Print the dynamic attribute with the format 'attrname' if there is no parameters, or 'attrname<attr (,attr)*>'.
Definition at line 280 of file ExtensibleDialect.cpp.
References getAttrDef(), mlir::DynamicAttrDefinition::getName(), and getParams().