[Mlir-commits] [mlir] [mlir] Do not print empty property (PR #93379)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Sat May 25 04:45:01 PDT 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-mlir
@llvm/pr-subscribers-mlir-core
Author: Beal Wang (bealwang)
<details>
<summary>Changes</summary>
Skip printing property as `<<<NULL ATTRIBUTE>>>` when operation has an empty property.
---
Full diff: https://github.com/llvm/llvm-project/pull/93379.diff
3 Files Affected:
- (modified) mlir/lib/IR/Operation.cpp (+2)
- (modified) mlir/test/IR/properties.mlir (+11)
- (modified) mlir/test/lib/Dialect/Test/TestOps.td (+5)
``````````diff
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
//===----------------------------------------------------------------------===//
``````````
</details>
https://github.com/llvm/llvm-project/pull/93379
More information about the Mlir-commits
mailing list