[Mlir-commits] [mlir] [mlir][dataflow] Use skipRegions to print region op (NFC) (PR #161066)
lonely eagle
llvmlistbot at llvm.org
Sun Sep 28 04:11:19 PDT 2025
https://github.com/linuxlonelyeagle updated https://github.com/llvm/llvm-project/pull/161066
>From 8b620660f618d1926f9b7f233ae95c1754386f43 Mon Sep 17 00:00:00 2001
From: linuxlonelyeagle <2020382038 at qq.com>
Date: Sun, 28 Sep 2025 08:29:36 +0000
Subject: [PATCH 1/2] Use skipRegions to print region op.
---
mlir/lib/Analysis/DataFlow/LivenessAnalysis.cpp | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/mlir/lib/Analysis/DataFlow/LivenessAnalysis.cpp b/mlir/lib/Analysis/DataFlow/LivenessAnalysis.cpp
index fdb97d5963299..afba2665d713a 100644
--- a/mlir/lib/Analysis/DataFlow/LivenessAnalysis.cpp
+++ b/mlir/lib/Analysis/DataFlow/LivenessAnalysis.cpp
@@ -109,19 +109,19 @@ LivenessAnalysis::visitOperation(Operation *op, ArrayRef<Liveness *> operands,
foundLiveResult = true;
}
LDBG() << "[visitOperation] Adding dependency for result: " << r
- << " after op: " << *op;
+ << " after op: " << OpWithFlags(op, OpPrintingFlags().skipRegions());
addDependency(const_cast<Liveness *>(r), getProgramPointAfter(op));
}
return success();
}
void LivenessAnalysis::visitBranchOperand(OpOperand &operand) {
+ Operation *op = operand.getOwner();
LDBG() << "Visiting branch operand: " << operand.get()
- << " in op: " << *operand.getOwner();
+ << " in op: " << OpWithFlags(op, OpPrintingFlags().skipRegions());
// We know (at the moment) and assume (for the future) that `operand` is a
// non-forwarded branch operand of a `RegionBranchOpInterface`,
// `BranchOpInterface`, `RegionBranchTerminatorOpInterface` or return-like op.
- Operation *op = operand.getOwner();
assert((isa<RegionBranchOpInterface>(op) || isa<BranchOpInterface>(op) ||
isa<RegionBranchTerminatorOpInterface>(op)) &&
"expected the op to be `RegionBranchOpInterface`, "
@@ -151,7 +151,7 @@ void LivenessAnalysis::visitBranchOperand(OpOperand &operand) {
mayLive = true;
LDBG() << "[visitBranchOperand] Non-forwarded branch "
"operand may be live due to live result: "
- << result;
+ << OpWithFlags(op, OpPrintingFlags().skipRegions());
break;
}
}
@@ -233,7 +233,8 @@ void LivenessAnalysis::visitBranchOperand(OpOperand &operand) {
SmallVector<const Liveness *, 4> resultsLiveness;
for (const Value result : op->getResults())
resultsLiveness.push_back(getLatticeElement(result));
- LDBG() << "Visiting operation for non-forwarded branch operand: " << *op;
+ LDBG() << "Visiting operation for non-forwarded branch operand: "
+ << OpWithFlags(op, OpPrintingFlags().skipRegions());
(void)visitOperation(op, operandLiveness, resultsLiveness);
// We also visit the parent op with the parent's results and this operand if
>From ae9271deb6dfceb391195d391cad4b7213d759fe Mon Sep 17 00:00:00 2001
From: linuxlonelyeagle <2020382038 at qq.com>
Date: Sun, 28 Sep 2025 11:11:01 +0000
Subject: [PATCH 2/2] update
---
mlir/lib/Analysis/DataFlow/LivenessAnalysis.cpp | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/mlir/lib/Analysis/DataFlow/LivenessAnalysis.cpp b/mlir/lib/Analysis/DataFlow/LivenessAnalysis.cpp
index afba2665d713a..d705d8d4c7819 100644
--- a/mlir/lib/Analysis/DataFlow/LivenessAnalysis.cpp
+++ b/mlir/lib/Analysis/DataFlow/LivenessAnalysis.cpp
@@ -146,11 +146,12 @@ void LivenessAnalysis::visitBranchOperand(OpOperand &operand) {
// Therefore, if the result value is live, we conservatively consider the
// non-forwarded operand of the region branch operation with result may
// live and record all result.
- for (Value result : op->getResults()) {
+ for (auto [resultIndex, result] : llvm::enumerate(op->getResults())) {
if (getLatticeElement(result)->isLive) {
mayLive = true;
- LDBG() << "[visitBranchOperand] Non-forwarded branch "
- "operand may be live due to live result: "
+ LDBG() << "[visitBranchOperand] Non-forwarded branch operand may be "
+ "live due to live result #"
+ << resultIndex << ": "
<< OpWithFlags(op, OpPrintingFlags().skipRegions());
break;
}
More information about the Mlir-commits
mailing list