| MLIR
    22.0.0git
    | 
A dynamic attribute instance. More...
#include "mlir/IR/ExtensibleDialect.h"
 Inheritance diagram for mlir::DynamicAttr:
 Inheritance diagram for mlir::DynamicAttr:| 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 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< 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 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(), and mlir::SelfOwningTypeID::getTypeID().
Referenced by getChecked().
| DynamicAttrDefinition * DynamicAttr::getAttrDef | ( | ) | 
Return the attribute definition of the concrete attribute.
Definition at line 259 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 251 of file ExtensibleDialect.cpp.
References mlir::emitError(), mlir::remark::failed(), get(), and mlir::DynamicAttrDefinition::verify().
Return the attribute parameters.
Definition at line 261 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 267 of file ExtensibleDialect.cpp.
References mlir::remark::failed(), and 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 279 of file ExtensibleDialect.cpp.
References getAttrDef(), mlir::DynamicAttrDefinition::getName(), and getParams().