[Mlir-commits] [mlir] [MLIR] Removing dead values for branches (PR #117501)
Mehdi Amini
llvmlistbot at llvm.org
Wed Nov 27 05:25:12 PST 2024
================
@@ -563,6 +575,48 @@ static void cleanRegionBranchOp(RegionBranchOpInterface regionBranchOp,
dropUsesAndEraseResults(regionBranchOp.getOperation(), resultsToKeep.flip());
}
+// 1. Iterate over each successor block of the given BranchOpInterface
+// operation.
+// 2. For each successor block:
+// a. Retrieve the operands passed to the successor.
+// b. Use the provided liveness analysis (`RunLivenessAnalysis`) to determine
+// which
+// operands are live in the successor block.
+// c. Mark each operand as live or dead based on the analysis.
+// 3. Remove dead operands from the branch operation and arguments accordingly
+
+static void cleanBranchOp(BranchOpInterface branchOp, RunLivenessAnalysis &la) {
----------------
joker-eph wrote:
This function is called in a `walk()` which itself will recursively visit the IR.
That said: what about adding a test to cover the case that @codemzs is describing?
https://github.com/llvm/llvm-project/pull/117501
More information about the Mlir-commits
mailing list