[llvm] [PassBuilder] Run trivial loop unswitching after late function-simpli… (PR #215899)
Abhay Kanhere via llvm-commits
llvm-commits at lists.llvm.org
Tue Sep 8 13:54:30 PDT 2026
https://github.com/AbhayKanhere updated https://github.com/llvm/llvm-project/pull/215899
>From f97cb923f111fb9a01c0ed8d3cbbe8abd29d6d6f Mon Sep 17 00:00:00 2001
From: Abhay Kanhere <a_kanhere at apple.com>
Date: Tue, 11 Aug 2026 16:05:54 -0700
Subject: [PATCH 1/3] [PassBuilder] Run trivial loop unswitching after late
function-simplification LICM
IndVarSimplify exit predication can leave a loop-invariant exit branch inside a
loop (e.g. a guard-dead trap check). A later LICM hoists the invariant condition
to the preheader, but nothing removes the branch, so it stays in the loop.
---
llvm/lib/Passes/PassBuilderPipelines.cpp | 14 ++-
llvm/test/Other/new-pm-defaults.ll | 1 +
.../Other/new-pm-thinlto-postlink-defaults.ll | 1 +
.../new-pm-thinlto-postlink-pgo-defaults.ll | 1 +
...-pm-thinlto-postlink-samplepgo-defaults.ll | 1 +
.../Other/new-pm-thinlto-prelink-defaults.ll | 1 +
.../new-pm-thinlto-prelink-pgo-defaults.ll | 1 +
...w-pm-thinlto-prelink-samplepgo-defaults.ll | 1 +
.../hoist-loop-invariant-guarded-trap.ll | 86 +++++++++++++++++++
9 files changed, 103 insertions(+), 4 deletions(-)
create mode 100644 llvm/test/Transforms/PhaseOrdering/hoist-loop-invariant-guarded-trap.ll
diff --git a/llvm/lib/Passes/PassBuilderPipelines.cpp b/llvm/lib/Passes/PassBuilderPipelines.cpp
index b8c5b1eab2f97..1e7366c32d16f 100644
--- a/llvm/lib/Passes/PassBuilderPipelines.cpp
+++ b/llvm/lib/Passes/PassBuilderPipelines.cpp
@@ -812,10 +812,16 @@ PassBuilder::buildFunctionSimplificationPipeline(OptimizationLevel Level,
FPM.addPass(DSEPass());
FPM.addPass(MoveAutoInitPass());
- FPM.addPass(createFunctionToLoopPassAdaptor(
- LICMPass(PTO.LicmMssaOptCap, PTO.LicmMssaNoAccForPromotionCap,
- /*AllowSpeculation=*/true),
- /*UseMemorySSA=*/true));
+ {
+ LoopPassManager LPM;
+ LPM.addPass(LICMPass(PTO.LicmMssaOptCap, PTO.LicmMssaNoAccForPromotionCap,
+ /*AllowSpeculation=*/true));
+ // LICM can hoist a loop-invariant exit condition into the preheader;
+ // trivial unswitching then hoists the invariant exit branch out of the loop.
+ LPM.addPass(SimpleLoopUnswitchPass(/*NonTrivial=*/false, /*Trivial=*/true));
+ FPM.addPass(
+ createFunctionToLoopPassAdaptor(std::move(LPM), /*UseMemorySSA=*/true));
+ }
FPM.addPass(CoroElidePass());
diff --git a/llvm/test/Other/new-pm-defaults.ll b/llvm/test/Other/new-pm-defaults.ll
index 6b2edf339dfdf..ed1d1ba9b1d1f 100644
--- a/llvm/test/Other/new-pm-defaults.ll
+++ b/llvm/test/Other/new-pm-defaults.ll
@@ -205,6 +205,7 @@
; CHECK-O23-NEXT: Running pass: LoopSimplifyPass
; CHECK-O23-NEXT: Running pass: LCSSAPass
; CHECK-O23-NEXT: Running pass: LICMPass
+; CHECK-O23-NEXT: Running pass: SimpleLoopUnswitchPass
; CHECK-O23-NEXT: Running pass: CoroElidePass
; CHECK-EP-SCALAR-LATE-NEXT: Running pass: NoOpFunctionPass
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
diff --git a/llvm/test/Other/new-pm-thinlto-postlink-defaults.ll b/llvm/test/Other/new-pm-thinlto-postlink-defaults.ll
index 0361db887cb61..dfc4a2e036abd 100644
--- a/llvm/test/Other/new-pm-thinlto-postlink-defaults.ll
+++ b/llvm/test/Other/new-pm-thinlto-postlink-defaults.ll
@@ -142,6 +142,7 @@
; CHECK-O23-NEXT: Running pass: LoopSimplifyPass
; CHECK-O23-NEXT: Running pass: LCSSAPass
; CHECK-O23-NEXT: Running pass: LICMPass on loop
+; CHECK-O23-NEXT: Running pass: SimpleLoopUnswitchPass on loop
; CHECK-O23-NEXT: Running pass: CoroElidePass
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
; CHECK-O-NEXT: Running pass: InstCombinePass
diff --git a/llvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll b/llvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll
index 667033cfce2b4..a52b79f31a7c4 100644
--- a/llvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll
+++ b/llvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll
@@ -127,6 +127,7 @@
; CHECK-O23-NEXT: Running pass: LoopSimplifyPass
; CHECK-O23-NEXT: Running pass: LCSSAPass
; CHECK-O23-NEXT: Running pass: LICMPass
+; CHECK-O23-NEXT: Running pass: SimpleLoopUnswitchPass
; CHECK-O23-NEXT: Running pass: CoroElidePass
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
; CHECK-O-NEXT: Running pass: InstCombinePass
diff --git a/llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll b/llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll
index 60971a852b413..d52ec471f2c04 100644
--- a/llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll
+++ b/llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll
@@ -134,6 +134,7 @@
; CHECK-O23-NEXT: Running pass: LoopSimplifyPass
; CHECK-O23-NEXT: Running pass: LCSSAPass
; CHECK-O23-NEXT: Running pass: LICMPass
+; CHECK-O23-NEXT: Running pass: SimpleLoopUnswitchPass
; CHECK-O23-NEXT: Running pass: CoroElidePass
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
; CHECK-O-NEXT: Running pass: InstCombinePass
diff --git a/llvm/test/Other/new-pm-thinlto-prelink-defaults.ll b/llvm/test/Other/new-pm-thinlto-prelink-defaults.ll
index 30f49dffaeeac..26c3be3574cc8 100644
--- a/llvm/test/Other/new-pm-thinlto-prelink-defaults.ll
+++ b/llvm/test/Other/new-pm-thinlto-prelink-defaults.ll
@@ -168,6 +168,7 @@
; CHECK-O23-NEXT: Running pass: LoopSimplifyPass
; CHECK-O23-NEXT: Running pass: LCSSAPass
; CHECK-O23-NEXT: Running pass: LICMPass on loop
+; CHECK-O23-NEXT: Running pass: SimpleLoopUnswitchPass on loop
; CHECK-O23-NEXT: Running pass: CoroElidePass
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
; CHECK-O-NEXT: Running pass: InstCombinePass
diff --git a/llvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll b/llvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll
index 742ecb36c6f05..a1b1247b7d1d8 100644
--- a/llvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll
+++ b/llvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll
@@ -174,6 +174,7 @@
; CHECK-O23-NEXT: Running pass: LoopSimplifyPass
; CHECK-O23-NEXT: Running pass: LCSSAPass
; CHECK-O23-NEXT: Running pass: LICMPass
+; CHECK-O23-NEXT: Running pass: SimpleLoopUnswitchPass
; CHECK-O23-NEXT: Running pass: CoroElidePass
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
; CHECK-O-NEXT: Running pass: InstCombinePass
diff --git a/llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll b/llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll
index 2a91901450917..a7278cc83d9cc 100644
--- a/llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll
+++ b/llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll
@@ -138,6 +138,7 @@
; CHECK-O23-NEXT: Running pass: LoopSimplifyPass
; CHECK-O23-NEXT: Running pass: LCSSAPass
; CHECK-O23-NEXT: Running pass: LICMPass
+; CHECK-O23-NEXT: Running pass: SimpleLoopUnswitchPass
; CHECK-O23-NEXT: Running pass: CoroElidePass
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
; CHECK-O-NEXT: Running pass: InstCombinePass
diff --git a/llvm/test/Transforms/PhaseOrdering/hoist-loop-invariant-guarded-trap.ll b/llvm/test/Transforms/PhaseOrdering/hoist-loop-invariant-guarded-trap.ll
new file mode 100644
index 0000000000000..62c3c66f91b30
--- /dev/null
+++ b/llvm/test/Transforms/PhaseOrdering/hoist-loop-invariant-guarded-trap.ll
@@ -0,0 +1,86 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 6
+; RUN: opt -passes='default<O2>' -S < %s | FileCheck %s
+
+; A loop-invariant exit branch, made invariant by IndVarSimplify exit
+; predication, is hoisted out of the surviving outer loop rather than
+; re-evaluated every iteration.
+
+define void @nested_guarded_trap(ptr %p, i64 %bp0, i64 %n, i64 %umax, i64 %rows) {
+; CHECK-LABEL: define void @nested_guarded_trap(
+; CHECK-SAME: ptr nofree writeonly captures(none) [[P:%.*]], i64 [[BP0:%.*]], i64 [[N:%.*]], i64 [[UMAX:%.*]], i64 [[ROWS:%.*]]) local_unnamed_addr #[[ATTR0:[0-9]+]] {
+; CHECK-NEXT: [[ENTRY:.*:]]
+; CHECK-NEXT: [[SUM:%.*]] = add i64 [[N]], [[BP0]]
+; CHECK-NEXT: [[BAD:%.*]] = icmp ugt i64 [[SUM]], [[UMAX]]
+; CHECK-NEXT: br i1 [[BAD]], label %[[GUARD_TRAP:.*]], label %[[OUTER_PREHEADER:.*]]
+; CHECK: [[OUTER_PREHEADER]]:
+; CHECK-NEXT: [[N0:%.*]] = icmp eq i64 [[N]], 0
+; CHECK-NEXT: br i1 [[N0]], label %[[EXIT_SPLIT:.*]], label %[[OUTER_PREHEADER1:.*]]
+; CHECK: [[OUTER_PREHEADER1]]:
+; CHECK-NEXT: [[TMP0:%.*]] = sub i64 [[UMAX]], [[BP0]]
+; CHECK-NEXT: [[TMP1:%.*]] = add i64 [[N]], -1
+; CHECK-NEXT: [[DOTNOT:%.*]] = icmp ugt i64 [[TMP0]], [[TMP1]]
+; CHECK-NEXT: [[TMP2:%.*]] = getelementptr i8, ptr [[P]], i64 [[BP0]]
+; CHECK-NEXT: br i1 [[DOTNOT]], label %[[OUTER:.*]], label %[[OOB_TRAP:.*]]
+; CHECK: [[OUTER]]:
+; CHECK-NEXT: [[R:%.*]] = phi i64 [ [[R_NEXT:%.*]], %[[OUTER]] ], [ 0, %[[OUTER_PREHEADER1]] ]
+; CHECK-NEXT: [[V:%.*]] = trunc i64 [[R]] to i8
+; CHECK-NEXT: [[TMP3:%.*]] = mul i64 [[N]], [[R]]
+; CHECK-NEXT: [[SCEVGEP:%.*]] = getelementptr i8, ptr [[TMP2]], i64 [[TMP3]]
+; CHECK-NEXT: tail call void @llvm.memset.p0.i64(ptr align 1 [[SCEVGEP]], i8 [[V]], i64 [[N]], i1 false)
+; CHECK-NEXT: [[R_NEXT]] = add i64 [[R]], 1
+; CHECK-NEXT: [[ODONE:%.*]] = icmp eq i64 [[R_NEXT]], [[ROWS]]
+; CHECK-NEXT: br i1 [[ODONE]], label %[[EXIT_SPLIT]], label %[[OUTER]]
+; CHECK: [[GUARD_TRAP]]:
+; CHECK-NEXT: tail call void @llvm.trap()
+; CHECK-NEXT: unreachable
+; CHECK: [[OOB_TRAP]]:
+; CHECK-NEXT: tail call void @llvm.trap()
+; CHECK-NEXT: unreachable
+; CHECK: [[EXIT_SPLIT]]:
+; CHECK-NEXT: ret void
+;
+entry:
+ %sum = add i64 %bp0, %n
+ %bad = icmp ugt i64 %sum, %umax
+ br i1 %bad, label %guard.trap, label %outer ; dominating guard
+
+outer:
+ %r = phi i64 [ 0, %entry ], [ %r.next, %inner.done ]
+ %n0 = icmp eq i64 %n, 0
+ br i1 %n0, label %inner.done, label %inner
+
+inner:
+ %bp = phi i64 [ %bp0, %outer ], [ %bp.next, %cont ]
+ %cnt = phi i64 [ %n, %outer ], [ %cnt.next, %cont ]
+ %oob = icmp eq i64 %bp, %umax
+ br i1 %oob, label %oob.trap, label %cont ; guard-dead per-element check
+
+cont:
+ %roff = mul i64 %r, %n
+ %aidx = add i64 %roff, %bp
+ %gep = getelementptr i8, ptr %p, i64 %aidx
+ %v = trunc i64 %r to i8
+ store i8 %v, ptr %gep ; distinct window per row
+ %bp.next = add i64 %bp, 1
+ %cnt.next = add i64 %cnt, -1
+ %idone = icmp eq i64 %cnt.next, 0
+ br i1 %idone, label %inner.done, label %inner
+
+inner.done:
+ %r.next = add i64 %r, 1
+ %odone = icmp eq i64 %r.next, %rows
+ br i1 %odone, label %exit, label %outer
+
+guard.trap:
+ tail call void @llvm.trap()
+ unreachable
+
+oob.trap:
+ tail call void @llvm.trap()
+ unreachable
+
+exit:
+ ret void
+}
+
+declare void @llvm.trap()
>From 7df29aed5fe64dd3396538b77e0fe41c75c4994a Mon Sep 17 00:00:00 2001
From: Abhay Kanhere <a_kanhere at apple.com>
Date: Wed, 12 Aug 2026 14:32:04 -0700
Subject: [PATCH 2/3] Apply clang-format
---
llvm/lib/Passes/PassBuilderPipelines.cpp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/llvm/lib/Passes/PassBuilderPipelines.cpp b/llvm/lib/Passes/PassBuilderPipelines.cpp
index 1e7366c32d16f..edcb119c669b2 100644
--- a/llvm/lib/Passes/PassBuilderPipelines.cpp
+++ b/llvm/lib/Passes/PassBuilderPipelines.cpp
@@ -817,7 +817,8 @@ PassBuilder::buildFunctionSimplificationPipeline(OptimizationLevel Level,
LPM.addPass(LICMPass(PTO.LicmMssaOptCap, PTO.LicmMssaNoAccForPromotionCap,
/*AllowSpeculation=*/true));
// LICM can hoist a loop-invariant exit condition into the preheader;
- // trivial unswitching then hoists the invariant exit branch out of the loop.
+ // trivial unswitching then hoists the invariant exit branch out of the
+ // loop.
LPM.addPass(SimpleLoopUnswitchPass(/*NonTrivial=*/false, /*Trivial=*/true));
FPM.addPass(
createFunctionToLoopPassAdaptor(std::move(LPM), /*UseMemorySSA=*/true));
>From 7ed8350c15a4a09fe057469604bc2b69c2cc82d8 Mon Sep 17 00:00:00 2001
From: Abhay Kanhere <a_kanhere at apple.com>
Date: Tue, 8 Sep 2026 13:45:45 -0700
Subject: [PATCH 3/3] [PassBuilder] Gate post-LICM trivial unswitch on
ShouldRunExtraSimpleLoopUnswitch
Only run the extra trivial SimpleLoopUnswitch after late-simplification LICM
when LICM changed the loop. LICMPass now requests and preserves the
ShouldRunExtraSimpleLoopUnswitch marker on change, and the pipeline wraps the
unswitch in ExtraLoopPassManager<ShouldRunExtraSimpleLoopUnswitch>.
---
llvm/lib/Passes/PassBuilderPipelines.cpp | 7 +++++--
llvm/lib/Transforms/Scalar/LICM.cpp | 6 ++++++
llvm/test/Other/new-pm-defaults.ll | 1 -
llvm/test/Other/new-pm-thinlto-postlink-defaults.ll | 1 -
llvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll | 1 -
.../Other/new-pm-thinlto-postlink-samplepgo-defaults.ll | 1 -
llvm/test/Other/new-pm-thinlto-prelink-defaults.ll | 1 -
llvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll | 1 -
.../Other/new-pm-thinlto-prelink-samplepgo-defaults.ll | 1 -
9 files changed, 11 insertions(+), 9 deletions(-)
diff --git a/llvm/lib/Passes/PassBuilderPipelines.cpp b/llvm/lib/Passes/PassBuilderPipelines.cpp
index edcb119c669b2..73282dd008b61 100644
--- a/llvm/lib/Passes/PassBuilderPipelines.cpp
+++ b/llvm/lib/Passes/PassBuilderPipelines.cpp
@@ -818,8 +818,11 @@ PassBuilder::buildFunctionSimplificationPipeline(OptimizationLevel Level,
/*AllowSpeculation=*/true));
// LICM can hoist a loop-invariant exit condition into the preheader;
// trivial unswitching then hoists the invariant exit branch out of the
- // loop.
- LPM.addPass(SimpleLoopUnswitchPass(/*NonTrivial=*/false, /*Trivial=*/true));
+ // loop. Only run it when LICM changed the loop.
+ ExtraLoopPassManager<ShouldRunExtraSimpleLoopUnswitch> ExtraPasses;
+ ExtraPasses.addPass(
+ SimpleLoopUnswitchPass(/*NonTrivial=*/false, /*Trivial=*/true));
+ LPM.addPass(std::move(ExtraPasses));
FPM.addPass(
createFunctionToLoopPassAdaptor(std::move(LPM), /*UseMemorySSA=*/true));
}
diff --git a/llvm/lib/Transforms/Scalar/LICM.cpp b/llvm/lib/Transforms/Scalar/LICM.cpp
index fed0b96ddc089..9c3e1c66be0f0 100644
--- a/llvm/lib/Transforms/Scalar/LICM.cpp
+++ b/llvm/lib/Transforms/Scalar/LICM.cpp
@@ -78,6 +78,7 @@
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Transforms/Scalar.h"
+#include "llvm/Transforms/Scalar/SimpleLoopUnswitch.h"
#include "llvm/Transforms/Utils/AssumeBundleBuilder.h"
#include "llvm/Transforms/Utils/BasicBlockUtils.h"
#include "llvm/Transforms/Utils/Local.h"
@@ -325,6 +326,11 @@ PreservedAnalyses LICMPass::run(Loop &L, LoopAnalysisManager &AM,
auto PA = getLoopPassPreservedAnalyses();
PA.preserve<MemorySSAAnalysis>();
+ // Hoisting an invariant exit condition can leave a now loop-invariant exit
+ // branch in the loop; request extra trivial unswitching to remove it.
+ AM.getResult<ShouldRunExtraSimpleLoopUnswitch>(L, AR);
+ PA.preserve<ShouldRunExtraSimpleLoopUnswitch>();
+
return PA;
}
diff --git a/llvm/test/Other/new-pm-defaults.ll b/llvm/test/Other/new-pm-defaults.ll
index ed1d1ba9b1d1f..6b2edf339dfdf 100644
--- a/llvm/test/Other/new-pm-defaults.ll
+++ b/llvm/test/Other/new-pm-defaults.ll
@@ -205,7 +205,6 @@
; CHECK-O23-NEXT: Running pass: LoopSimplifyPass
; CHECK-O23-NEXT: Running pass: LCSSAPass
; CHECK-O23-NEXT: Running pass: LICMPass
-; CHECK-O23-NEXT: Running pass: SimpleLoopUnswitchPass
; CHECK-O23-NEXT: Running pass: CoroElidePass
; CHECK-EP-SCALAR-LATE-NEXT: Running pass: NoOpFunctionPass
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
diff --git a/llvm/test/Other/new-pm-thinlto-postlink-defaults.ll b/llvm/test/Other/new-pm-thinlto-postlink-defaults.ll
index dfc4a2e036abd..0361db887cb61 100644
--- a/llvm/test/Other/new-pm-thinlto-postlink-defaults.ll
+++ b/llvm/test/Other/new-pm-thinlto-postlink-defaults.ll
@@ -142,7 +142,6 @@
; CHECK-O23-NEXT: Running pass: LoopSimplifyPass
; CHECK-O23-NEXT: Running pass: LCSSAPass
; CHECK-O23-NEXT: Running pass: LICMPass on loop
-; CHECK-O23-NEXT: Running pass: SimpleLoopUnswitchPass on loop
; CHECK-O23-NEXT: Running pass: CoroElidePass
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
; CHECK-O-NEXT: Running pass: InstCombinePass
diff --git a/llvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll b/llvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll
index a52b79f31a7c4..667033cfce2b4 100644
--- a/llvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll
+++ b/llvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll
@@ -127,7 +127,6 @@
; CHECK-O23-NEXT: Running pass: LoopSimplifyPass
; CHECK-O23-NEXT: Running pass: LCSSAPass
; CHECK-O23-NEXT: Running pass: LICMPass
-; CHECK-O23-NEXT: Running pass: SimpleLoopUnswitchPass
; CHECK-O23-NEXT: Running pass: CoroElidePass
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
; CHECK-O-NEXT: Running pass: InstCombinePass
diff --git a/llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll b/llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll
index d52ec471f2c04..60971a852b413 100644
--- a/llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll
+++ b/llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll
@@ -134,7 +134,6 @@
; CHECK-O23-NEXT: Running pass: LoopSimplifyPass
; CHECK-O23-NEXT: Running pass: LCSSAPass
; CHECK-O23-NEXT: Running pass: LICMPass
-; CHECK-O23-NEXT: Running pass: SimpleLoopUnswitchPass
; CHECK-O23-NEXT: Running pass: CoroElidePass
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
; CHECK-O-NEXT: Running pass: InstCombinePass
diff --git a/llvm/test/Other/new-pm-thinlto-prelink-defaults.ll b/llvm/test/Other/new-pm-thinlto-prelink-defaults.ll
index 26c3be3574cc8..30f49dffaeeac 100644
--- a/llvm/test/Other/new-pm-thinlto-prelink-defaults.ll
+++ b/llvm/test/Other/new-pm-thinlto-prelink-defaults.ll
@@ -168,7 +168,6 @@
; CHECK-O23-NEXT: Running pass: LoopSimplifyPass
; CHECK-O23-NEXT: Running pass: LCSSAPass
; CHECK-O23-NEXT: Running pass: LICMPass on loop
-; CHECK-O23-NEXT: Running pass: SimpleLoopUnswitchPass on loop
; CHECK-O23-NEXT: Running pass: CoroElidePass
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
; CHECK-O-NEXT: Running pass: InstCombinePass
diff --git a/llvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll b/llvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll
index a1b1247b7d1d8..742ecb36c6f05 100644
--- a/llvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll
+++ b/llvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll
@@ -174,7 +174,6 @@
; CHECK-O23-NEXT: Running pass: LoopSimplifyPass
; CHECK-O23-NEXT: Running pass: LCSSAPass
; CHECK-O23-NEXT: Running pass: LICMPass
-; CHECK-O23-NEXT: Running pass: SimpleLoopUnswitchPass
; CHECK-O23-NEXT: Running pass: CoroElidePass
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
; CHECK-O-NEXT: Running pass: InstCombinePass
diff --git a/llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll b/llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll
index a7278cc83d9cc..2a91901450917 100644
--- a/llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll
+++ b/llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll
@@ -138,7 +138,6 @@
; CHECK-O23-NEXT: Running pass: LoopSimplifyPass
; CHECK-O23-NEXT: Running pass: LCSSAPass
; CHECK-O23-NEXT: Running pass: LICMPass
-; CHECK-O23-NEXT: Running pass: SimpleLoopUnswitchPass
; CHECK-O23-NEXT: Running pass: CoroElidePass
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
; CHECK-O-NEXT: Running pass: InstCombinePass
More information about the llvm-commits
mailing list