aboutsummaryrefslogtreecommitdiff
path: root/mlir/lib/Analysis/DataFlow/LivenessAnalysis.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'mlir/lib/Analysis/DataFlow/LivenessAnalysis.cpp')
-rw-r--r--mlir/lib/Analysis/DataFlow/LivenessAnalysis.cpp18
1 files changed, 10 insertions, 8 deletions
diff --git a/mlir/lib/Analysis/DataFlow/LivenessAnalysis.cpp b/mlir/lib/Analysis/DataFlow/LivenessAnalysis.cpp
index fdb97d5..d705d8d4 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`, "
@@ -146,12 +146,13 @@ 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: "
- << result;
+ LDBG() << "[visitBranchOperand] Non-forwarded branch operand may be "
+ "live due to live result #"
+ << resultIndex << ": "
+ << OpWithFlags(op, OpPrintingFlags().skipRegions());
break;
}
}
@@ -233,7 +234,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