[Mlir-commits] [mlir] [MLIR][ODS] Check hasProperties when generating populateDefaultAttrs (PR #78525)
Billy Zhu
llvmlistbot at llvm.org
Thu Jan 18 10:11:41 PST 2024
https://github.com/zyx-billy updated https://github.com/llvm/llvm-project/pull/78525
>From 2035ce59fc141435679556e2b99715e66a30aed8 Mon Sep 17 00:00:00 2001
From: Billy Zhu <billyzhu at modular.com>
Date: Wed, 17 Jan 2024 16:38:04 -0800
Subject: [PATCH] use hasProperties
---
mlir/test/mlir-tblgen/op-attribute.td | 13 +++++++++++++
mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp | 2 +-
2 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/mlir/test/mlir-tblgen/op-attribute.td b/mlir/test/mlir-tblgen/op-attribute.td
index 07636f53c1e15ce..b5b8619e7c9beaf 100644
--- a/mlir/test/mlir-tblgen/op-attribute.td
+++ b/mlir/test/mlir-tblgen/op-attribute.td
@@ -173,6 +173,8 @@ def AOp : NS_Op<"a_op", []> {
// DEF: ::llvm::ArrayRef<::mlir::NamedAttribute> attributes
// DEF: odsState.addAttributes(attributes);
+// DEF: void AOp::populateDefaultAttrs
+
// Test the above but with prefix.
def Test2_Dialect : Dialect {
@@ -287,6 +289,17 @@ def AgetOp : Op<Test2_Dialect, "a_get_op", []> {
// DEF: ::llvm::ArrayRef<::mlir::NamedAttribute> attributes
// DEF: odsState.addAttributes(attributes);
+// Test the above but using properties.
+def ApropOp : NS_Op<"a_prop_op", []> {
+ let arguments = (ins
+ Property<"unsigned">:$aAttr,
+ DefaultValuedAttr<SomeAttr, "4.2">:$bAttr
+ );
+}
+
+// DEF-LABEL: ApropOp definitions
+// DEF: void ApropOp::populateDefaultProperties
+
def SomeTypeAttr : TypeAttrBase<"SomeType", "some type attribute">;
def BOp : NS_Op<"b_op", []> {
diff --git a/mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp b/mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
index cd37c8dcd3d5e0e..71326049af05796 100644
--- a/mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
+++ b/mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
@@ -2506,7 +2506,7 @@ void OpEmitter::genPopulateDefaultAttributes() {
}))
return;
- if (op.getDialect().usePropertiesForAttributes()) {
+ if (emitHelper.hasProperties()) {
SmallVector<MethodParameter> paramList;
paramList.emplace_back("::mlir::OperationName", "opName");
paramList.emplace_back("Properties &", "properties");
More information about the Mlir-commits
mailing list