[llvm] [ControlFlowHub] Fix duplicate DomTree updates when branch successors are identical (PR #176620)

Shilei Tian via llvm-commits llvm-commits at lists.llvm.org
Sat Jan 17 19:15:21 PST 2026


================
@@ -0,0 +1,37 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 6
+; RUN: opt -S -passes=fix-irreducible %s | FileCheck %s
+
+define void @func(i1 %v.0, i1 %v.1) {
+; CHECK-LABEL: define void @func(
+; CHECK-SAME: i1 [[V_0:%.*]], i1 [[V_1:%.*]]) {
+; CHECK-NEXT:  [[ENTRY:.*:]]
+; CHECK-NEXT:    br i1 [[V_0]], label %[[BB_1:.*]], label %[[BB_2:.*]]
+; CHECK:       [[BB_1]]:
+; CHECK-NEXT:    br label %[[IRR_GUARD:.*]]
+; CHECK:       [[BB_2]]:
+; CHECK-NEXT:    br label %[[IRR_GUARD]]
+; CHECK:       [[BB_3:.*]]:
+; CHECK-NEXT:    br label %[[BB_4:.*]]
+; CHECK:       [[BB_4]]:
+; CHECK-NEXT:    br label %[[IRR_GUARD]]
+; CHECK:       [[IRR_GUARD]]:
+; CHECK-NEXT:    [[GUARD_BB_3:%.*]] = phi i1 [ true, %[[BB_4]] ], [ [[V_1]], %[[BB_2]] ], [ false, %[[BB_1]] ]
----------------
shiltian wrote:

Well, this `fix-irreducible` doesn't work right for `bb.2`. Need to fix there.

https://github.com/llvm/llvm-project/pull/176620


More information about the llvm-commits mailing list