[Mlir-commits] [mlir] [mlir] Do not print empty property (PR #93379)
Beal Wang
llvmlistbot at llvm.org
Sat May 25 04:44:32 PDT 2024
https://github.com/bealwang created https://github.com/llvm/llvm-project/pull/93379
Skip printing property as `<<<NULL ATTRIBUTE>>>` when operation has an empty property.
>From 73e7856618a50a77b4682aaab6514db7792418e5 Mon Sep 17 00:00:00 2001
From: Biao Wang <biaow at nvidia.com>
Date: Sat, 25 May 2024 19:36:38 +0800
Subject: [PATCH] [mlir] Do not print empty property
Skip printing property as `<<<NULL ATTRIBUTE>>>` when operation has
an empty property.
---
mlir/lib/IR/Operation.cpp | 2 ++
mlir/test/IR/properties.mlir | 11 +++++++++++
mlir/test/lib/Dialect/Test/TestOps.td | 5 +++++
3 files changed, 18 insertions(+)
diff --git a/mlir/lib/IR/Operation.cpp b/mlir/lib/IR/Operation.cpp
index 0feb078db297d..b51357198b1ca 100644
--- a/mlir/lib/IR/Operation.cpp
+++ b/mlir/lib/IR/Operation.cpp
@@ -801,6 +801,8 @@ ParseResult OpState::genericParseProperties(OpAsmParser &parser,
/// 'elidedProps'
void OpState::genericPrintProperties(OpAsmPrinter &p, Attribute properties,
ArrayRef<StringRef> elidedProps) {
+ if (!properties)
+ return;
auto dictAttr = dyn_cast_or_null<::mlir::DictionaryAttr>(properties);
if (dictAttr && !elidedProps.empty()) {
ArrayRef<NamedAttribute> attrs = dictAttr.getValue();
diff --git a/mlir/test/IR/properties.mlir b/mlir/test/IR/properties.mlir
index 1d22cb1940f24..01ea856b03168 100644
--- a/mlir/test/IR/properties.mlir
+++ b/mlir/test/IR/properties.mlir
@@ -38,3 +38,14 @@ test.using_property_ref_in_custom 1 + 4 = 5
// GENERIC: "test.with_default_valued_properties"()
// GENERIC-SAME: <{a = 0 : i32}>
test.with_default_valued_properties <{a = 0 : i32}>
+
+// CHECK: test.with_optional_properties
+// CHECK-SAME: <{b = 0 : i32}>
+// GENERIC: "test.with_optional_properties"()
+// GENERIC-SAME: <{b = 0 : i32}>
+test.with_optional_properties <{b = 0 : i32}>
+
+// CHECK: test.with_optional_properties {{$}}
+// GENERIC: "test.with_optional_properties"()
+// GENERIC-SAME: : () -> ()
+test.with_optional_properties
diff --git a/mlir/test/lib/Dialect/Test/TestOps.td b/mlir/test/lib/Dialect/Test/TestOps.td
index faf70ad91b06b..18324482153a5 100644
--- a/mlir/test/lib/Dialect/Test/TestOps.td
+++ b/mlir/test/lib/Dialect/Test/TestOps.td
@@ -3113,6 +3113,11 @@ def TestOpWithDefaultValuedProperties : TEST_Op<"with_default_valued_properties"
let arguments = (ins DefaultValuedAttr<I32Attr, "0">:$a);
}
+def TestOpWithOptionalProperties : TEST_Op<"with_optional_properties"> {
+ let assemblyFormat = "prop-dict attr-dict";
+ let arguments = (ins OptionalAttr<I32Attr>:$a, OptionalAttr<I32Attr>:$b);
+}
+
//===----------------------------------------------------------------------===//
// Test Dataflow
//===----------------------------------------------------------------------===//
More information about the Mlir-commits
mailing list