[Mlir-commits] [mlir] [NFC][mlir][AsmPrinter] Don't compute resourceStr when --mlir-elide-resource-strings-if-larger=0 (PR #138275)
Xiang Li
llvmlistbot at llvm.org
Fri May 2 06:34:41 PDT 2025
https://github.com/python3kgae created https://github.com/llvm/llvm-project/pull/138275
When skipping the printing of large DenseResourceElementsAttr with --mlir-elide-resource-strings-if-larger,
we need to compute resourceStr to check if the string is small enough to print.
With --mlir-elide-resource-strings-if-larger set to 0, nothing should be printed, but we still compute the size.
This change will allow an early return when --mlir-elide-resource-strings-if-larger=0, making the print process faster.
>From 34e0f36d525e25c08c43dc259e5fcb853205c8f7 Mon Sep 17 00:00:00 2001
From: Xiang Li <xiagli at microsoft.com>
Date: Fri, 2 May 2025 13:15:07 +0000
Subject: [PATCH] [NFC][mlir][AsmPrinter] Don't compute resourceStr when
--mlir-elide-resource-strings-if-larger=0
When skipping the printing of large DenseResourceElementsAttr with --mlir-elide-resource-strings-if-larger, we need to compute resourceStr to check if the string is small enough to print. With --mlir-elide-resource-strings-if-larger set to 0, nothing should be printed, but we still compute the size.
This change will allow an early return when --mlir-elide-resource-strings-if-larger=0, making the print process faster.
---
mlir/lib/IR/AsmPrinter.cpp | 4 ++++
mlir/test/IR/pretty-resources-print.mlir | 10 ++++++++++
2 files changed, 14 insertions(+)
diff --git a/mlir/lib/IR/AsmPrinter.cpp b/mlir/lib/IR/AsmPrinter.cpp
index 5b5ec841917e7..c7194aca7ff12 100644
--- a/mlir/lib/IR/AsmPrinter.cpp
+++ b/mlir/lib/IR/AsmPrinter.cpp
@@ -3463,6 +3463,10 @@ void OperationPrinter::printResourceFileMetadata(
std::optional<uint64_t> charLimit =
printerFlags.getLargeResourceStringLimit();
if (charLimit.has_value()) {
+ // Don't compute resourceStr when charLimit is 0.
+ if (charLimit.value() == 0)
+ return;
+
llvm::raw_string_ostream ss(resourceStr);
valueFn(ss);
diff --git a/mlir/test/IR/pretty-resources-print.mlir b/mlir/test/IR/pretty-resources-print.mlir
index 297c83bbb1389..980af80343d47 100644
--- a/mlir/test/IR/pretty-resources-print.mlir
+++ b/mlir/test/IR/pretty-resources-print.mlir
@@ -2,11 +2,16 @@
// RUN: mlir-opt %s --mlir-elide-resource-strings-if-larger=20| FileCheck %s
+// RUN: mlir-opt %s --mlir-elide-resource-strings-if-larger=0| FileCheck %s --check-prefix=ZERO
+
+
// To ensure we print the resource keys, have reference to them
// CHECK: attr = dense_resource<blob1> : tensor<3xi64>
+// ZERO: attr = dense_resource<blob1> : tensor<3xi64>
"test.blob1op"() {attr = dense_resource<blob1> : tensor<3xi64> } : () -> ()
// CHECK-NEXT: attr = dense_resource<blob2> : tensor<3xi64>
+// ZERO-NEXT: attr = dense_resource<blob2> : tensor<3xi64>
"test.blob2op"() {attr = dense_resource<blob2> : tensor<3xi64> } : () -> ()
// CHECK: {-#
@@ -21,6 +26,11 @@
// CHECK-NEXT: }
// CHECK-NEXT: #-}
+// Make sure no external_resources are printed when --mlir-elide-resource-strings-if-larger=0
+// ZERO: {-#
+// ZERO-EMPTY:
+// ZERO-NEXT: #-}
+
{-#
dialect_resources: {
builtin: {
More information about the Mlir-commits
mailing list