[Mlir-commits] [mlir] [mlir] Add `Operation::dumpPrettyPrinted` (PR #120117)
weiwei chen
llvmlistbot at llvm.org
Tue Dec 17 07:02:40 PST 2024
https://github.com/weiweichen updated https://github.com/llvm/llvm-project/pull/120117
>From 4cbb253c5d5dc0382d881ef211b7f8676c0393b4 Mon Sep 17 00:00:00 2001
From: Weiwei Chen <weiwei.chen at modular.com>
Date: Mon, 16 Dec 2024 12:24:01 -0500
Subject: [PATCH 1/3] [mlir] Add Operation::dumpPrettyPrinted.
Pretty print Operation that may not be verified for ease
of readabilty while debugging.
---
mlir/include/mlir/IR/Operation.h | 3 +++
mlir/lib/IR/AsmPrinter.cpp | 5 +++++
2 files changed, 8 insertions(+)
diff --git a/mlir/include/mlir/IR/Operation.h b/mlir/include/mlir/IR/Operation.h
index f0dd7c51780566..4f6bea3dcf113c 100644
--- a/mlir/include/mlir/IR/Operation.h
+++ b/mlir/include/mlir/IR/Operation.h
@@ -322,6 +322,9 @@ class alignas(8) Operation final
void print(raw_ostream &os, AsmState &state);
void dump();
+ /// Pretty print for ease of debugging readabilty with unverified IR.
+ void dumpPrettyPrinted();
+
//===--------------------------------------------------------------------===//
// Operands
//===--------------------------------------------------------------------===//
diff --git a/mlir/lib/IR/AsmPrinter.cpp b/mlir/lib/IR/AsmPrinter.cpp
index 61b90bc9b0a7bb..7beb2ab1fb0444 100644
--- a/mlir/lib/IR/AsmPrinter.cpp
+++ b/mlir/lib/IR/AsmPrinter.cpp
@@ -3985,6 +3985,11 @@ void Operation::dump() {
llvm::errs() << "\n";
}
+void Operation::dumpPrettyPrinted() {
+ print(llvm::errs(), OpPrintingFlags().useLocalScope().assumeVerified());
+ llvm::errs() << "\n";
+}
+
void Block::print(raw_ostream &os) {
Operation *parentOp = getParentOp();
if (!parentOp) {
>From fe13015f4e311d742bf84624d88fe0a5f7cd3763 Mon Sep 17 00:00:00 2001
From: Weiwei Chen <weiwei.chen at modular.com>
Date: Mon, 16 Dec 2024 15:52:44 -0500
Subject: [PATCH 2/3] Update API according to comment.
---
mlir/include/mlir/IR/Operation.h | 5 +----
mlir/lib/IR/AsmPrinter.cpp | 12 +++++-------
2 files changed, 6 insertions(+), 11 deletions(-)
diff --git a/mlir/include/mlir/IR/Operation.h b/mlir/include/mlir/IR/Operation.h
index 4f6bea3dcf113c..c1ba5270308e61 100644
--- a/mlir/include/mlir/IR/Operation.h
+++ b/mlir/include/mlir/IR/Operation.h
@@ -320,10 +320,7 @@ class alignas(8) Operation final
void print(raw_ostream &os, const OpPrintingFlags &flags = std::nullopt);
void print(raw_ostream &os, AsmState &state);
- void dump();
-
- /// Pretty print for ease of debugging readabilty with unverified IR.
- void dumpPrettyPrinted();
+ void dump(bool assumeVerified = false);
//===--------------------------------------------------------------------===//
// Operands
diff --git a/mlir/lib/IR/AsmPrinter.cpp b/mlir/lib/IR/AsmPrinter.cpp
index 7beb2ab1fb0444..cdf136780ecc6a 100644
--- a/mlir/lib/IR/AsmPrinter.cpp
+++ b/mlir/lib/IR/AsmPrinter.cpp
@@ -3980,13 +3980,11 @@ void Operation::print(raw_ostream &os, AsmState &state) {
}
}
-void Operation::dump() {
- print(llvm::errs(), OpPrintingFlags().useLocalScope());
- llvm::errs() << "\n";
-}
-
-void Operation::dumpPrettyPrinted() {
- print(llvm::errs(), OpPrintingFlags().useLocalScope().assumeVerified());
+void Operation::dump(bool assumeVerified) {
+ OpPrintingFlags flags;
+ if (assumeVerified)
+ flags.assumeVerified();
+ print(llvm::errs(), flags.useLocalScope());
llvm::errs() << "\n";
}
>From 4504b3cb1a0fa004a6054365867d646295ff0bb9 Mon Sep 17 00:00:00 2001
From: Weiwei Chen <weiwei.chen at modular.com>
Date: Tue, 17 Dec 2024 10:01:30 -0500
Subject: [PATCH 3/3] Use dumpPretty instead because lldb doesn't understand
default arguments.
---
mlir/include/mlir/IR/Operation.h | 7 ++++++-
mlir/lib/IR/AsmPrinter.cpp | 13 ++++++++-----
2 files changed, 14 insertions(+), 6 deletions(-)
diff --git a/mlir/include/mlir/IR/Operation.h b/mlir/include/mlir/IR/Operation.h
index c1ba5270308e61..95d944170732e7 100644
--- a/mlir/include/mlir/IR/Operation.h
+++ b/mlir/include/mlir/IR/Operation.h
@@ -320,7 +320,12 @@ class alignas(8) Operation final
void print(raw_ostream &os, const OpPrintingFlags &flags = std::nullopt);
void print(raw_ostream &os, AsmState &state);
- void dump(bool assumeVerified = false);
+ void dump();
+
+ // Dump pretty printed IR. This method is helpful for better readability if
+ // the Operation is not verified because it won't disable custom printers to
+ // fall back to the generic one.
+ LLVM_DUMP_METHOD void dumpPretty();
//===--------------------------------------------------------------------===//
// Operands
diff --git a/mlir/lib/IR/AsmPrinter.cpp b/mlir/lib/IR/AsmPrinter.cpp
index cdf136780ecc6a..f32eca12f087f6 100644
--- a/mlir/lib/IR/AsmPrinter.cpp
+++ b/mlir/lib/IR/AsmPrinter.cpp
@@ -3980,14 +3980,17 @@ void Operation::print(raw_ostream &os, AsmState &state) {
}
}
-void Operation::dump(bool assumeVerified) {
- OpPrintingFlags flags;
- if (assumeVerified)
- flags.assumeVerified();
- print(llvm::errs(), flags.useLocalScope());
+void Operation::dump() {
+ print(llvm::errs(), OpPrintingFlags().useLocalScope());
llvm::errs() << "\n";
}
+void Operation::dumpPretty() {
+ print(llvm::errs(), OpPrintingFlags().useLocalScope().assumeVerified());
+ llvm::errs() << "\n";
+}
+
+
void Block::print(raw_ostream &os) {
Operation *parentOp = getParentOp();
if (!parentOp) {
More information about the Mlir-commits
mailing list