|
MLIR 22.0.0git
|
A dynamic attribute instance. More...
#include "mlir/IR/ExtensibleDialect.h"
Public Types | |
| using | Base |
| Utility declarations for the concrete attribute class. | |
| Public Types inherited from mlir::detail::StorageUserBase< ConcreteType, BaseType, StorageType, detail::AttributeUniquer, Traits... > | |
| using | Base |
| Utility declarations for the concrete attribute class. | |
| using | ImplType |
| using | HasTraitFn |
Public Member Functions | |
| DynamicAttrDefinition * | getAttrDef () |
| Return the attribute definition of the concrete attribute. | |
| ArrayRef< Attribute > | getParams () |
| Return the attribute parameters. | |
| void | print (AsmPrinter &printer) |
| Print the dynamic attribute with the format 'attrname' if there is no parameters, or 'attrname<attr (,attr)*>'. | |
| Public Member Functions inherited from mlir::detail::StorageUserBase< ConcreteType, BaseType, StorageType, detail::AttributeUniquer, Traits... > | |
| ImplType * | getImpl () const |
| Utility for easy access to the storage instance. | |
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. | |
| 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. | |
| static bool | isa (Attribute attr, DynamicAttrDefinition *attrDef) |
| Check if an attribute is a specific dynamic attribute. | |
| static bool | classof (Attribute attr) |
| Check if an attribute is a dynamic attribute. | |
| static ParseResult | parse (AsmParser &parser, DynamicAttrDefinition *attrDef, DynamicAttr &parsedAttr) |
| Parse the dynamic attribute parameters and construct the attribute. | |
| Static Public Member Functions inherited from mlir::detail::StorageUserBase< ConcreteType, BaseType, StorageType, detail::AttributeUniquer, Traits... > | |
| static TypeID | getTypeID () |
| Return a unique identifier for the concrete type. | |
| 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. | |
| static detail::InterfaceMap | getInterfaceMap () |
| Returns an interface map for the interfaces registered to this storage user. | |
| 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. | |
| static auto | getWalkImmediateSubElementsFn () |
| Returns a function that walks immediate sub elements of a given instance of the storage user. | |
| static auto | getReplaceImmediateSubElementsFn () |
| Returns a function that replaces immediate sub elements of a given instance of the storage user. | |
| static void | attachInterface (MLIRContext &context) |
| Attach the given models as implementations of the corresponding interfaces for the concrete storage user class. | |
| static ConcreteType | get (MLIRContext *ctx, Args &&...args) |
| Get or create a new ConcreteT instance within the ctx. | |
| static ConcreteType | getChecked (const Location &loc, Args &&...args) |
| Get or create a new ConcreteT instance within the ctx, defined at the given, potentially unknown, location. | |
| static ConcreteType | getChecked (function_ref< InFlightDiagnostic()> emitErrorFn, MLIRContext *ctx, Args... args) |
| Get or create a new ConcreteT instance within the ctx. | |
| static ConcreteType | getFromOpaquePointer (const void *ptr) |
| Get an instance of the concrete type from a void pointer. | |
Additional Inherited Members | |
| Protected Member Functions inherited from mlir::detail::StorageUserBase< ConcreteType, BaseType, StorageType, detail::AttributeUniquer, Traits... > | |
| LogicalResult | mutate (Args &&...args) |
| Mutate the current storage instance. | |
| Static Protected Member Functions inherited from mlir::detail::StorageUserBase< ConcreteType, BaseType, StorageType, detail::AttributeUniquer, Traits... > | |
| static LogicalResult | verifyInvariants (Args... args) |
| Default implementation that just returns success. | |
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 isa<DynamicAttr>(myAttr), 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< ConcreteType, BaseType, StorageType, detail::AttributeUniquer, Traits >::Base |
Utility declarations for the concrete attribute class.
Definition at line 100 of file StorageUniquerSupport.h.
Check if an attribute is a dynamic attribute.
Definition at line 263 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 243 of file ExtensibleDialect.cpp.
References mlir::DynamicAttrDefinition::getContext(), mlir::SelfOwningTypeID::getTypeID(), and mlir::detail::AttributeUniquer::getWithTypeID().
Referenced by getChecked().
| DynamicAttrDefinition * DynamicAttr::getAttrDef | ( | ) |
Return the attribute definition of the concrete attribute.
Definition at line 259 of file ExtensibleDialect.cpp.
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 251 of file ExtensibleDialect.cpp.
References mlir::emitError(), get(), and mlir::DynamicAttrDefinition::verify().
Return the attribute parameters.
Definition at line 261 of file ExtensibleDialect.cpp.
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 267 of file ExtensibleDialect.cpp.
References mlir::AsmParser::getChecked(), and success().
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 279 of file ExtensibleDialect.cpp.
References getAttrDef(), mlir::DynamicAttrDefinition::getName(), and getParams().