[Mlir-commits] [mlir] 997f33c - [MLIR] Add IndexAttr to primitive attributes kinds in tablegen.
Alex Zinenko
llvmlistbot at llvm.org
Thu Apr 16 01:28:40 PDT 2020
Author: Ulysse Beaugnon
Date: 2020-04-16T10:28:33+02:00
New Revision: 997f33cfeec9cd8c5bc913cf862794e986a4bd39
URL: https://github.com/llvm/llvm-project/commit/997f33cfeec9cd8c5bc913cf862794e986a4bd39
DIFF: https://github.com/llvm/llvm-project/commit/997f33cfeec9cd8c5bc913cf862794e986a4bd39.diff
LOG: [MLIR] Add IndexAttr to primitive attributes kinds in tablegen.
Summary:
OpBase.td defined attributes kind for all integer types expect index. This
commit fixes that by adding an IndexAttr attribute kind.
Differential Revision: https://reviews.llvm.org/D78195
Added:
Modified:
mlir/include/mlir/IR/OpBase.td
mlir/test/IR/attribute.mlir
mlir/test/lib/Dialect/Test/TestOps.td
Removed:
################################################################################
diff --git a/mlir/include/mlir/IR/OpBase.td b/mlir/include/mlir/IR/OpBase.td
index e552279e8a8e..14ef45ed4c7f 100644
--- a/mlir/include/mlir/IR/OpBase.td
+++ b/mlir/include/mlir/IR/OpBase.td
@@ -845,6 +845,16 @@ def BoolAttr : Attr<CPred<"$_self.isa<BoolAttr>()">, "bool attribute"> {
let constBuilderCall = "$_builder.getBoolAttr($0)";
}
+// Index attribute.
+def IndexAttr :
+ TypedAttrBase<
+ Index, "IntegerAttr",
+ And<[CPred<"$_self.isa<IntegerAttr>()">,
+ CPred<"$_self.cast<IntegerAttr>().getType().isa<IndexType>()">]>,
+ "index attribute"> {
+ let returnType = [{ APInt }];
+}
+
// Base class for any integer (regardless of signedness semantics) attributes
// of fixed width.
class AnyIntegerAttrBase<AnyI attrValType, string descr> :
diff --git a/mlir/test/IR/attribute.mlir b/mlir/test/IR/attribute.mlir
index 31804b274a55..32b8f8c25180 100644
--- a/mlir/test/IR/attribute.mlir
+++ b/mlir/test/IR/attribute.mlir
@@ -8,6 +8,8 @@ func @int_attrs_pass() {
"test.int_attrs"() {
// CHECK: any_i32_attr = 5 : ui32
any_i32_attr = 5 : ui32,
+ // CHECK-SAME: index_attr = 8 : index
+ index_attr = 8 : index,
// CHECK-SAME: si32_attr = 7 : si32
si32_attr = 7 : si32,
// CHECK-SAME: ui32_attr = 6 : ui32
diff --git a/mlir/test/lib/Dialect/Test/TestOps.td b/mlir/test/lib/Dialect/Test/TestOps.td
index 6f1ef4a50f67..524780b89552 100644
--- a/mlir/test/lib/Dialect/Test/TestOps.td
+++ b/mlir/test/lib/Dialect/Test/TestOps.td
@@ -199,6 +199,7 @@ def I64EnumAttrOp : TEST_Op<"i64_enum_attr"> {
def IntAttrOp : TEST_Op<"int_attrs"> {
let arguments = (ins
AnyI32Attr:$any_i32_attr,
+ IndexAttr:$index_attr,
UI32Attr:$ui32_attr,
SI32Attr:$si32_attr
);
More information about the Mlir-commits
mailing list