MLIR 22.0.0git
mlir::DynamicAttr Class Reference

A dynamic attribute instance. More...

#include "mlir/IR/ExtensibleDialect.h"

Inheritance diagram for mlir::DynamicAttr:

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

DynamicAttrDefinitiongetAttrDef ()
 Return the attribute definition of the concrete attribute.
ArrayRef< AttributegetParams ()
 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... >
ImplTypegetImpl () 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.

Detailed Description

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.

Member Typedef Documentation

◆ Base

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.

Member Function Documentation

◆ classof()

bool DynamicAttr::classof ( Attribute attr)
static

Check if an attribute is a dynamic attribute.

Definition at line 263 of file ExtensibleDialect.cpp.

References mlir::Attribute::hasTrait().

◆ get()

DynamicAttr DynamicAttr::get ( DynamicAttrDefinition * attrDef,
ArrayRef< Attribute > params = {} )
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().

◆ getAttrDef()

DynamicAttrDefinition * DynamicAttr::getAttrDef ( )

Return the attribute definition of the concrete attribute.

Definition at line 259 of file ExtensibleDialect.cpp.

References mlir::detail::StorageUserBase< ConcreteType, BaseType, StorageType, detail::AttributeUniquer, Traits... >::getImpl().

Referenced by print().

◆ getChecked()

DynamicAttr DynamicAttr::getChecked ( function_ref< InFlightDiagnostic()> emitError,
DynamicAttrDefinition * attrDef,
ArrayRef< Attribute > params = {} )
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().

◆ getParams()

ArrayRef< Attribute > DynamicAttr::getParams ( )

◆ isa()

bool mlir::DynamicAttr::isa ( Attribute attr,
DynamicAttrDefinition * attrDef )
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().

◆ parse()

ParseResult DynamicAttr::parse ( AsmParser & parser,
DynamicAttrDefinition * attrDef,
DynamicAttr & parsedAttr )
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().

◆ print()

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().


The documentation for this class was generated from the following files: