Splits DictionaryAttr into DictionaryAttrBase and DictionaryAttr.
authorMLIR Team <no-reply@google.com>
Fri, 30 Aug 2019 22:40:51 +0000 (15:40 -0700)
committerA. Unique TensorFlower <gardener@tensorflow.org>
Fri, 30 Aug 2019 22:41:19 +0000 (15:41 -0700)
This maintains consistency with other *AttrBase/Attr splits.

PiperOrigin-RevId: 266469869

mlir/include/mlir/IR/OpBase.td

index 0ae17d0..1fed971 100644 (file)
@@ -850,13 +850,15 @@ class I64EnumAttr<string name, string description,
 //===----------------------------------------------------------------------===//
 // Composite attribute kinds
 
-class DictionaryAttr : Attr<CPred<"$_self.isa<DictionaryAttr>()">,
+class DictionaryAttrBase : Attr<CPred<"$_self.isa<DictionaryAttr>()">,
                           "dictionary of named attribute values"> {
   let storageType = [{ DictionaryAttr }];
   let returnType = [{ DictionaryAttr }];
   let convertFromStorage = "$_self";
 }
 
+def DictionaryAttr : DictionaryAttrBase;
+
 class ElementsAttrBase<Pred condition, string description> :
     Attr<condition, description> {
   let storageType = [{ ElementsAttr }];
@@ -939,7 +941,7 @@ class StructFieldAttr<string thisName, Attr thisType> {
 // validation method and set of accessors for a fixed set of fields. This is
 // useful when representing data that would normally be in a structure.
 class StructAttr<string name, Dialect dialect,
-                 list<StructFieldAttr> attributes> : DictionaryAttr {
+                 list<StructFieldAttr> attributes> : DictionaryAttrBase {
   // Name for this StructAttr.
   string className = name;