diff --git a/mlir/lib/Analysis/DataFlow/DeadCodeAnalysis.cpp b/mlir/lib/Analysis/DataFlow/DeadCodeAnalysis.cpp index 062bc5ea22d17..7648d8ab4b532 100644 --- a/mlir/lib/Analysis/DataFlow/DeadCodeAnalysis.cpp +++ b/mlir/lib/Analysis/DataFlow/DeadCodeAnalysis.cpp @@ -514,9 +514,9 @@ void DeadCodeAnalysis::visitRegionBranchEdges( for (const RegionSuccessor &successor : successors) { // The successor can be either an entry block or the parent operation. ProgramPoint *point = - successor.getSuccessor() - ? getProgramPointBefore(&successor.getSuccessor()->front()) - : getProgramPointAfter(regionBranchOp); + successor.isParent() + ? getProgramPointAfter(regionBranchOp) + : getProgramPointBefore(&successor.getSuccessor()->front()); // Mark the entry block as executable. auto *state = getOrCreate(point); diff --git a/mlir/test/lib/Analysis/DataFlow/TestDenseBackwardDataFlowAnalysis.cpp b/mlir/test/lib/Analysis/DataFlow/TestDenseBackwardDataFlowAnalysis.cpp index 7a7a58384fbb8..232bf14827556 100644 --- a/mlir/test/lib/Analysis/DataFlow/TestDenseBackwardDataFlowAnalysis.cpp +++ b/mlir/test/lib/Analysis/DataFlow/TestDenseBackwardDataFlowAnalysis.cpp @@ -373,7 +373,7 @@ struct TestNextAccessPass SmallVector regionSuccessors; iface.getSuccessorRegions(RegionBranchPoint::parent(), regionSuccessors); for (const RegionSuccessor &successor : regionSuccessors) { - if (!successor.getSuccessor() || successor.getSuccessor()->empty()) + if (successor.isParent() || successor.getSuccessor()->empty()) continue; Block &successorBlock = successor.getSuccessor()->front(); ProgramPoint *successorPoint =