13 #ifndef MLIR_IR_ATTRIBUTESUPPORT_H 14 #define MLIR_IR_ATTRIBUTESUPPORT_H 18 #include "llvm/ADT/PointerIntPair.h" 29 class AttributeUniquer;
44 assert(dialect &&
"Malformed attribute storage object.");
45 return const_cast<Dialect &
>(*dialect);
57 void setType(
Type type);
92 template <
typename T,
typename... Args>
93 static T
get(
MLIRContext *ctx,
unsigned kind, Args &&... args) {
94 return ctx->getAttributeUniquer().
get<
typename T::ImplType>(
95 getInitFn(ctx, T::getClassID()), kind, std::forward<Args>(args)...);
100 static std::function<void(AttributeStorage *)>
Definition: InferTypeOpInterface.cpp:20
Definition: STLExtras.h:95
Definition: Attributes.h:139
Definition: StorageUniquer.h:89
static T get(MLIRContext *ctx, unsigned kind, Args &&... args)
Get an uniqued instance of attribute T.
Definition: AttributeSupport.h:93
Definition: StorageUniquer.h:64
Definition: StorageUniquer.h:71
void initializeDialect(Dialect &newDialect)
Definition: AttributeSupport.h:61
Definition: MLIRContext.h:34
Definition: AttributeSupport.h:34
Dialect & getDialect() const
Get the dialect of this attribute.
Definition: AttributeSupport.h:43
Definition: AttributeSupport.h:89