Author: Momchil Velikov
Date: 2026-11-02T16:53:45Z
New Revision: d4dd2ecbeed3d766f0548e43dc1ffb5006832672

URL: 
https://github.com/llvm/llvm-project/commit/d4dd2ecbeed3d766f0548e43dc1ffb5006832672
DIFF: 
https://github.com/llvm/llvm-project/commit/d4dd2ecbeed3d766f0548e43dc1ffb5006832672.diff

LOG: Revert "Disable pre-link LTO vectorisation and loop unroll for at O2 and 
O3 optimisation levels (#195886)" (#238029)

There's test failure for the added NewPM Test which sometimes outputs
"FunctionAnalysisManager" and sometimes
"AnalysisManager<Function>" (they are aliases).

This reverts commit e3c929c8f1bca3e96dcb3c3b1886f25f8244bb5d.

Added: 
    

Modified: 
    clang/test/CodeGen/lto-newpm-pipeline.c
    llvm/lib/Passes/PassBuilderPipelines.cpp
    llvm/test/Other/new-pm-defaults.ll
    llvm/test/Other/new-pm-lto-defaults.ll

Removed: 
    llvm/test/Other/new-pm-pre-link.ll


################################################################################
diff  --git a/clang/test/CodeGen/lto-newpm-pipeline.c 
b/clang/test/CodeGen/lto-newpm-pipeline.c
index a07f9b0d60578..5126b53bfd865 100644
--- a/clang/test/CodeGen/lto-newpm-pipeline.c
+++ b/clang/test/CodeGen/lto-newpm-pipeline.c
@@ -60,6 +60,7 @@
 // TODO: The LTO pre-link pipeline currently invokes
 //       buildPerModuleDefaultPipeline(), which contains LoopVectorizePass.
 //       This may change as the pipeline gets implemented.
+// CHECK-FULL-OPTIMIZED: Running pass: LoopVectorizePass
 // CHECK-FULL-OPTIMIZED: Running pass: BitcodeWriterPass
 
 // The ThinLTO pre-link pipeline shouldn't contain passes like

diff  --git a/llvm/lib/Passes/PassBuilderPipelines.cpp 
b/llvm/lib/Passes/PassBuilderPipelines.cpp
index 87ec0b7fd1686..8123752df7c23 100644
--- a/llvm/lib/Passes/PassBuilderPipelines.cpp
+++ b/llvm/lib/Passes/PassBuilderPipelines.cpp
@@ -1246,11 +1246,8 @@ 
PassBuilder::buildModuleSimplificationPipeline(OptimizationLevel Level,
 void PassBuilder::addVectorPasses(OptimizationLevel Level,
                                   FunctionPassManager &FPM,
                                   ThinOrFullLTOPhase LTOPhase) {
-  // Vectorisation is not enabled for optimization levels below O2 in post-link
-  // LTO phases, we don't want to remove completely.
-  if (Level < OptimizationLevel::O2 || !isFullLTOPreLink(LTOPhase))
-    FPM.addPass(LoopVectorizePass(
-        LoopVectorizeOptions(!PTO.LoopInterleaving, !PTO.LoopVectorization)));
+  FPM.addPass(LoopVectorizePass(
+      LoopVectorizeOptions(!PTO.LoopInterleaving, !PTO.LoopVectorization)));
 
   // Drop dereferenceable assumes after vectorization, as they are no longer
   // needed and can inhibit further optimization.
@@ -1346,8 +1343,7 @@ void PassBuilder::addVectorPasses(OptimizationLevel Level,
   }
 
   // Optimize parallel scalar instruction chains into SIMD instructions.
-  if (PTO.SLPVectorization &&
-      (Level < OptimizationLevel::O2 || !isFullLTOPreLink(LTOPhase))) {
+  if (PTO.SLPVectorization) {
     FPM.addPass(SLPVectorizerPass());
     if (Level >= OptimizationLevel::O2 && Opts.extra_vectorizer_passes) {
       FPM.addPass(EarlyCSEPass());
@@ -1356,7 +1352,7 @@ void PassBuilder::addVectorPasses(OptimizationLevel Level,
   // Enhance/cleanup vector code.
   FPM.addPass(VectorCombinePass());
 
-  if (Level < OptimizationLevel::O2 || !isFullLTOPreLink(LTOPhase)) {
+  if (!isFullLTOPostLink(LTOPhase)) {
     FPM.addPass(InstCombinePass());
     // Unroll small loops to hide loop backedge latency and saturate any
     // parallel execution resources of an out-of-order processor. We also then

diff  --git a/llvm/test/Other/new-pm-defaults.ll 
b/llvm/test/Other/new-pm-defaults.ll
index f1bdc12310af3..0eb201432132c 100644
--- a/llvm/test/Other/new-pm-defaults.ll
+++ b/llvm/test/Other/new-pm-defaults.ll
@@ -12,10 +12,10 @@
 ; RUN:     | FileCheck %s 
--check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O1,%llvmcheckext
 ; RUN: opt -disable-verify -verify-analysis-invalidation=0 
-eagerly-invalidate-analyses=0 -debug-pass-manager \
 ; RUN:     -passes='default<O2>' -S  %s 2>&1 \
-; RUN:     | FileCheck %s 
--check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-DEFAULT-O23,CHECK-O2,CHECK-O23,%llvmcheckext
+; RUN:     | FileCheck %s 
--check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O2,CHECK-O23,%llvmcheckext
 ; RUN: opt -disable-verify -verify-analysis-invalidation=0 
-eagerly-invalidate-analyses=0 -debug-pass-manager \
 ; RUN:     -passes='default<O3>' -S  %s 2>&1 \
-; RUN:     | FileCheck %s 
--check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-DEFAULT-O23,CHECK-O3,CHECK-O23,%llvmcheckext
+; RUN:     | FileCheck %s 
--check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O3,CHECK-O23,%llvmcheckext
 ; RUN: opt -disable-verify -verify-analysis-invalidation=0 
-eagerly-invalidate-analyses=0 -debug-pass-manager \
 ; RUN:     -passes='lto-pre-link<O2>' -S %s 2>&1 \
 ; RUN:     | FileCheck %s 
--check-prefixes=CHECK-O,CHECK-LTO,CHECK-O2,CHECK-O23,%llvmcheckext
@@ -23,39 +23,39 @@
 ; RUN: opt -disable-verify -verify-analysis-invalidation=0 
-eagerly-invalidate-analyses=0 -debug-pass-manager \
 ; RUN:     -passes-ep-peephole='no-op-function' \
 ; RUN:     -passes='default<O3>' -S  %s 2>&1 \
-; RUN:     | FileCheck %s 
--check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-DEFAULT-O23,CHECK-O3,%llvmcheckext,CHECK-EP-PEEPHOLE,CHECK-O23
+; RUN:     | FileCheck %s 
--check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O3,%llvmcheckext,CHECK-EP-PEEPHOLE,CHECK-O23
 ; RUN: opt -disable-verify -verify-analysis-invalidation=0 
-eagerly-invalidate-analyses=0 -debug-pass-manager \
 ; RUN:     -passes-ep-late-loop-optimizations='no-op-loop' \
 ; RUN:     -passes='default<O3>' -S  %s 2>&1 \
-; RUN:     | FileCheck %s 
--check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-DEFAULT-O23,CHECK-O3,%llvmcheckext,CHECK-EP-LOOP-LATE,CHECK-O23
+; RUN:     | FileCheck %s 
--check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O3,%llvmcheckext,CHECK-EP-LOOP-LATE,CHECK-O23
 ; RUN: opt -disable-verify -verify-analysis-invalidation=0 
-eagerly-invalidate-analyses=0 -debug-pass-manager \
 ; RUN:     -passes-ep-loop-optimizer-end='no-op-loop' \
 ; RUN:     -passes='default<O3>' -S  %s 2>&1 \
-; RUN:     | FileCheck %s 
--check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-DEFAULT-O23,CHECK-O3,%llvmcheckext,CHECK-EP-LOOP-END,CHECK-O23
+; RUN:     | FileCheck %s 
--check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O3,%llvmcheckext,CHECK-EP-LOOP-END,CHECK-O23
 ; RUN: opt -disable-verify -verify-analysis-invalidation=0 
-eagerly-invalidate-analyses=0 -debug-pass-manager \
 ; RUN:     -passes-ep-scalar-optimizer-late='no-op-function' \
 ; RUN:     -passes='default<O3>' -S  %s 2>&1 \
-; RUN:     | FileCheck %s 
--check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-DEFAULT-O23,CHECK-O3,%llvmcheckext,CHECK-EP-SCALAR-LATE,CHECK-O23
+; RUN:     | FileCheck %s 
--check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O3,%llvmcheckext,CHECK-EP-SCALAR-LATE,CHECK-O23
 ; RUN: opt -disable-verify -verify-analysis-invalidation=0 
-eagerly-invalidate-analyses=0 -debug-pass-manager \
 ; RUN:     -passes-ep-cgscc-optimizer-late='no-op-cgscc' \
 ; RUN:     -passes='default<O3>' -S  %s 2>&1 \
-; RUN:     | FileCheck %s 
--check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-DEFAULT-O23,CHECK-O3,%llvmcheckext,CHECK-EP-CGSCC-LATE,CHECK-O23
+; RUN:     | FileCheck %s 
--check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O3,%llvmcheckext,CHECK-EP-CGSCC-LATE,CHECK-O23
 ; RUN: opt -disable-verify -verify-analysis-invalidation=0 
-eagerly-invalidate-analyses=0 -debug-pass-manager \
 ; RUN:     -passes-ep-vectorizer-start='no-op-function' \
 ; RUN:     -passes='default<O3>' -S  %s 2>&1 \
-; RUN:     | FileCheck %s 
--check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-DEFAULT-O23,CHECK-O3,%llvmcheckext,CHECK-EP-VECTORIZER-START,CHECK-O23
+; RUN:     | FileCheck %s 
--check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O3,%llvmcheckext,CHECK-EP-VECTORIZER-START,CHECK-O23
 ; RUN: opt -disable-verify -verify-analysis-invalidation=0 
-eagerly-invalidate-analyses=0 -debug-pass-manager \
 ; RUN:     -passes-ep-vectorizer-end='no-op-function' \
 ; RUN:     -passes='default<O3>' -S  %s 2>&1 \
-; RUN:     | FileCheck %s 
--check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-DEFAULT-O23,CHECK-O3,%llvmcheckext,CHECK-EP-VECTORIZER-END,CHECK-O23
+; RUN:     | FileCheck %s 
--check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O3,%llvmcheckext,CHECK-EP-VECTORIZER-END,CHECK-O23
 ; RUN: opt -disable-verify -verify-analysis-invalidation=0 
-eagerly-invalidate-analyses=0 -debug-pass-manager \
 ; RUN:     -passes-ep-pipeline-start='no-op-module' \
 ; RUN:     -passes='default<O3>' -S  %s 2>&1 \
-; RUN:     | FileCheck %s 
--check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-DEFAULT-O23,CHECK-O3,%llvmcheckext,CHECK-EP-PIPELINE-START,CHECK-O23
+; RUN:     | FileCheck %s 
--check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O3,%llvmcheckext,CHECK-EP-PIPELINE-START,CHECK-O23
 ; RUN: opt -disable-verify -verify-analysis-invalidation=0 
-eagerly-invalidate-analyses=0 -debug-pass-manager \
 ; RUN:     -passes-ep-pipeline-early-simplification='no-op-module' \
 ; RUN:     -passes='default<O3>' -S  %s 2>&1 \
-; RUN:     | FileCheck %s 
--check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-DEFAULT-O23,CHECK-O3,%llvmcheckext,CHECK-EP-PIPELINE-EARLY-SIMPLIFICATION,CHECK-O23
+; RUN:     | FileCheck %s 
--check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O3,%llvmcheckext,CHECK-EP-PIPELINE-EARLY-SIMPLIFICATION,CHECK-O23
 ; RUN: opt -disable-verify -verify-analysis-invalidation=0 
-eagerly-invalidate-analyses=0 -debug-pass-manager \
 ; RUN:     -passes-ep-pipeline-start='no-op-module' \
 ; RUN:     -passes='lto-pre-link<O3>' -S  %s 2>&1 \
@@ -63,23 +63,23 @@
 ; RUN: opt -disable-verify -verify-analysis-invalidation=0 
-eagerly-invalidate-analyses=0 -debug-pass-manager \
 ; RUN:     -passes-ep-optimizer-early='no-op-module' \
 ; RUN:     -passes='default<O3>' -S  %s 2>&1 \
-; RUN:     | FileCheck %s 
--check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-DEFAULT-O23,CHECK-O3,%llvmcheckext,CHECK-EP-OPTIMIZER-EARLY,CHECK-O23
+; RUN:     | FileCheck %s 
--check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O3,%llvmcheckext,CHECK-EP-OPTIMIZER-EARLY,CHECK-O23
 ; RUN: opt -disable-verify -verify-analysis-invalidation=0 
-eagerly-invalidate-analyses=0 -debug-pass-manager \
 ; RUN:     -passes-ep-optimizer-last='no-op-module' \
 ; RUN:     -passes='default<O3>' -S  %s 2>&1 \
-; RUN:     | FileCheck %s 
--check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-DEFAULT-O23,CHECK-O3,%llvmcheckext,CHECK-EP-OPTIMIZER-LAST,CHECK-O23
+; RUN:     | FileCheck %s 
--check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O3,%llvmcheckext,CHECK-EP-OPTIMIZER-LAST,CHECK-O23
 
 ; RUN: opt -disable-verify -verify-analysis-invalidation=0 
-eagerly-invalidate-analyses=0 -debug-pass-manager \
 ; RUN:     -passes='default<O3>' -enable-matrix -S  %s 2>&1 \
-; RUN:     | FileCheck %s 
--check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-DEFAULT-O23,CHECK-O3,CHECK-O23,%llvmcheckext,CHECK-MATRIX
+; RUN:     | FileCheck %s 
--check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O3,CHECK-O23,%llvmcheckext,CHECK-MATRIX
 
 ; RUN: opt -disable-verify -verify-analysis-invalidation=0 
-eagerly-invalidate-analyses=0 -debug-pass-manager \
 ; RUN:     -passes='default<O3>' -enable-merge-functions -S  %s 2>&1 \
-; RUN:     | FileCheck %s 
--check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-DEFAULT-O23,CHECK-O3,CHECK-O23,%llvmcheckext,CHECK-MERGE-FUNCS
+; RUN:     | FileCheck %s 
--check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O3,CHECK-O23,%llvmcheckext,CHECK-MERGE-FUNCS
 
 ; RUN: opt -disable-verify -verify-analysis-invalidation=0 
-eagerly-invalidate-analyses=0 -debug-pass-manager \
 ; RUN:     -passes='default<O3>' -hot-cold-split -S  %s 2>&1 \
-; RUN:     | FileCheck %s 
--check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-DEFAULT-O23,CHECK-O3,CHECK-O23,%llvmcheckext,CHECK-HOT-COLD-SPLIT
+; RUN:     | FileCheck %s 
--check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O3,CHECK-O23,%llvmcheckext,CHECK-HOT-COLD-SPLIT
 
 ; CHECK-O: Running pass: Annotation2Metadata
 ; CHECK-O-NEXT: Running pass: ForceFunctionAttrsPass
@@ -244,18 +244,18 @@
 ; CHECK-O-NEXT: Running pass: LoopDistributePass
 ; CHECK-O-NEXT: Running analysis: LoopAccessAnalysis on foo
 ; CHECK-O-NEXT: Running pass: InjectTLIMappings
-; CHECK-DEFAULT-NEXT: Running pass: LoopVectorizePass
+; CHECK-O-NEXT: Running pass: LoopVectorizePass
 ; CHECK-DEFAULT-NEXT: Running pass: DropUnnecessaryAssumesPass
 ; CHECK-O-NEXT: Running pass: InferAlignmentPass
 ; CHECK-O-NEXT: Running pass: LoopLoadEliminationPass
 ; CHECK-O-NEXT: Running pass: InstCombinePass
 ; CHECK-O-NEXT: Running pass: SimplifyCFGPass
-; CHECK-DEFAULT-O23-NEXT: Running pass: SLPVectorizerPass
+; CHECK-O23-NEXT: Running pass: SLPVectorizerPass
 ; CHECK-O-NEXT: Running pass: VectorCombinePass
-; CHECK-DEFAULT-NEXT: Running pass: InstCombinePass
-; CHECK-DEFAULT-NEXT: Running pass: LoopUnrollPass
-; CHECK-DEFAULT-NEXT: Running pass: WarnMissedTransformationsPass
-; CHECK-DEFAULT-NEXT: Running pass: SROAPass
+; CHECK-O-NEXT: Running pass: InstCombinePass
+; CHECK-O-NEXT: Running pass: LoopUnrollPass
+; CHECK-O-NEXT: Running pass: WarnMissedTransformationsPass
+; CHECK-O-NEXT: Running pass: SROAPass
 ; CHECK-O-NEXT: Running pass: InferAlignmentPass
 ; CHECK-O-NEXT: Running pass: InstCombinePass
 ; CHECK-O-NEXT: Running pass: LoopSimplifyPass

diff  --git a/llvm/test/Other/new-pm-lto-defaults.ll 
b/llvm/test/Other/new-pm-lto-defaults.ll
index aa25b397428ba..84a4d2b2a04ba 100644
--- a/llvm/test/Other/new-pm-lto-defaults.ll
+++ b/llvm/test/Other/new-pm-lto-defaults.ll
@@ -141,10 +141,6 @@
 ; CHECK-O23-NEXT: Running pass: BDCEPass on foo
 ; CHECK-O23-NEXT: Running pass: SLPVectorizerPass on foo
 ; CHECK-O23-NEXT: Running pass: VectorCombinePass on foo
-; CHECK-O23-NEXT: Running pass: InstCombinePass on foo
-; CHECK-O23-NEXT: Running pass: LoopUnrollPass on foo
-; CHECK-O23-NEXT: Running pass: WarnMissedTransformationsPass on foo
-; CHECK-O23-NEXT: Running pass: SROAPass on foo
 ; CHECK-O23-NEXT: Running pass: InferAlignmentPass on foo
 ; CHECK-O23-NEXT: Running pass: InstCombinePass on foo
 ; CHECK-O23-NEXT: Running pass: LoopSimplifyPass

diff  --git a/llvm/test/Other/new-pm-pre-link.ll 
b/llvm/test/Other/new-pm-pre-link.ll
deleted file mode 100644
index d6186fbfd4eaa..0000000000000
--- a/llvm/test/Other/new-pm-pre-link.ll
+++ /dev/null
@@ -1,224 +0,0 @@
-; NOTE: Assertions have been autogenerated by utils/update_test_checks.py 
UTC_ARGS: --version 6
-; RUN: opt -disable-verify -verify-analysis-invalidation=0 
-eagerly-invalidate-analyses=0 -debug-pass-manager \
-; RUN:     -passes='lto-pre-link<O0>' -S %s 2>&1 \
-; RUN:     | FileCheck %s --check-prefixes=CHECK-O0
-
-; RUN: opt -disable-verify -verify-analysis-invalidation=0 
-eagerly-invalidate-analyses=0 -debug-pass-manager \
-; RUN:     -passes='lto-pre-link<O1>' -S %s 2>&1 \
-; RUN:     | FileCheck %s --check-prefixes=CHECK-O,CHECK-O1
-
-; RUN: opt -disable-verify -verify-analysis-invalidation=0 
-eagerly-invalidate-analyses=0 -debug-pass-manager \
-; RUN:     -passes='lto-pre-link<O2>' -S %s 2>&1 \
-; RUN:     | FileCheck %s --check-prefixes=CHECK-O,CHECK-O23
-
-; RUN: opt -disable-verify -verify-analysis-invalidation=0 
-eagerly-invalidate-analyses=0 -debug-pass-manager \
-; RUN:     -passes='lto-pre-link<O3>' -S %s 2>&1 \
-; RUN:     | FileCheck %s --check-prefixes=CHECK-O,CHECK-O23,CHECK-O3
-
-; Meaning of prefixes:
-; CHeCK-O0: Passes enabled at optimization level O0
-; CHeCK-O1: Passes enabled only at optimization level O1
-; CHeCK-O: Passes enabled at optimization levels O1, O2, and O3
-; CHeCK-O12: Passes enabled only at optimization levels O1 and O2
-; CHeCK-O23: Passes enabled only at optimization levels O2 and O3
-
-
-; CHECK-O0: Running analysis: 
InnerAnalysisManagerProxy<FunctionAnalysisManager, Module> on [module]
-; CHECK-O0-NEXT: Running pass: EntryExitInstrumenterPass on foo (7 
instructions)
-; CHECK-O0-NEXT: Running pass: AlwaysInlinerPass on [module]
-; CHECK-O0-NEXT: Running analysis: ProfileSummaryAnalysis on [module]
-; CHECK-O0-NEXT: Running pass: CoroConditionalWrapper on [module]
-; CHECK-O0-NEXT: Running pass: LowerCommentStringPass on [module]
-; CHECK-O0-NEXT: Running pass: CanonicalizeAliasesPass on [module]
-; CHECK-O0-NEXT: Running pass: NameAnonGlobalPass on [module]
-; CHECK-O0-NEXT: Running pass: AssignGUIDPass on [module]
-; CHECK-O0-NEXT: Running pass: AnnotationRemarksPass on foo (7 instructions)
-; CHECK-O0-NEXT: Running analysis: TargetLibraryAnalysis on foo
-; CHECK-O0-NEXT: Running pass: PrintModulePass on [module]
-
-; CHECK-O:        Running pass: ForceFunctionAttrsPass on [module]
-; CHECK-O-NEXT:   Running pass: InferFunctionAttrsPass on [module]
-; CHECK-O-NEXT:   Running analysis: 
InnerAnalysisManagerProxy<FunctionAnalysisManager, Module> on [module]
-; CHECK-O-NEXT:   Running analysis: TargetLibraryAnalysis on bar
-; CHECK-O-NEXT:   Running pass: CoroEarlyPass on [module]
-; CHECK-O-NEXT:   Running pass: EntryExitInstrumenterPass on foo (7 
instructions)
-; CHECK-O-NEXT:   Running pass: LowerExpectIntrinsicPass on foo (7 
instructions)
-; CHECK-O-NEXT:   Running pass: SimplifyCFGPass on foo (7 instructions)
-; CHECK-O-NEXT:   Running analysis: TargetIRAnalysis on foo
-; CHECK-O-NEXT:   Running analysis: AssumptionAnalysis on foo
-; CHECK-O-NEXT:   Running pass: SROAPass on foo (7 instructions)
-; CHECK-O-NEXT:   Running analysis: DominatorTreeAnalysis on foo
-; CHECK-O-NEXT:   Running pass: EarlyCSEPass on foo (7 instructions)
-; CHECK-O-NEXT:   Running analysis: TargetLibraryAnalysis on foo
-; CHECK-O3-NEXT:  Running pass: CallSiteSplittingPass on foo (7 instructions)
-; CHECK-O-NEXT:   Running pass: OpenMPOptPass on [module]
-; CHECK-O-NEXT:   Running pass: IPSCCPPass on [module]
-; CHECK-O-NEXT:   Running pass: CalledValuePropagationPass on [module]
-; CHECK-O-NEXT:   Running pass: GlobalOptPass on [module]
-; CHECK-O-NEXT:   Running pass: PromotePass on foo (7 instructions)
-; CHECK-O-NEXT:   Running pass: InstCombinePass on foo (7 instructions)
-; CHECK-O-NEXT:   Running analysis: LastRunTrackingAnalysis on foo
-; CHECK-O-NEXT:   Running analysis: OptimizationRemarkEmitterAnalysis on foo
-; CHECK-O-NEXT:   Running analysis: AAManager on foo
-; CHECK-O-NEXT:   Running analysis: BasicAA on foo
-; CHECK-O-NEXT:   Running analysis: ScopedNoAliasAA on foo
-; CHECK-O-NEXT:   Running analysis: TypeBasedAA on foo
-; CHECK-O-NEXT:   Running analysis: 
OuterAnalysisManagerProxy<ModuleAnalysisManager, Function> on foo
-; CHECK-O-NEXT:   Running pass: SimplifyCFGPass on foo (7 instructions)
-; CHECK-O-NEXT:   Running pass: AlwaysInlinerPass on [module]
-; CHECK-O-NEXT:   Running analysis: ProfileSummaryAnalysis on [module]
-; CHECK-O-NEXT:   Running pass: ModuleInlinerWrapperPass on [module]
-; CHECK-O-NEXT:   Running analysis: InlineAdvisorAnalysis on [module]
-; CHECK-O-NEXT:   Running pass: RequireAnalysisPass<llvm::GlobalsAA, 
llvm::Module, llvm::AnalysisManager<Module>> on [module]
-; CHECK-O-NEXT:   Running analysis: GlobalsAA on [module]
-; CHECK-O-NEXT:   Running analysis: CallGraphAnalysis on [module]
-; CHECK-O-NEXT:   Running pass: InvalidateAnalysisPass<llvm::AAManager> on foo 
(7 instructions)
-; CHECK-O-NEXT:   Invalidating analysis: AAManager on foo
-; CHECK-O-NEXT:   Running pass: 
RequireAnalysisPass<llvm::ProfileSummaryAnalysis, llvm::Module, 
llvm::AnalysisManager<Module>> on [module]
-; CHECK-O-NEXT:   Running analysis: 
InnerAnalysisManagerProxy<CGSCCAnalysisManager, Module> on [module]
-; CHECK-O-NEXT:   Running analysis: LazyCallGraphAnalysis on [module]
-; CHECK-O-NEXT:   Running analysis: FunctionAnalysisManagerCGSCCProxy on (foo)
-; CHECK-O-NEXT:   Running analysis: 
OuterAnalysisManagerProxy<ModuleAnalysisManager, LazyCallGraph::SCC, 
LazyCallGraph &> on (foo)
-; CHECK-O-NEXT:   Running pass: DevirtSCCRepeatedPass on (foo) (1 node)
-; CHECK-O-NEXT:   Running pass: InlinerPass on (foo) (1 node)
-; CHECK-O-NEXT:   Running pass: PostOrderFunctionAttrsPass on (foo) (1 node)
-; CHECK-O3-NEXT:  Running pass: ArgumentPromotionPass on (foo) (1 node)
-; CHECK-O23-NEXT: Running pass: OpenMPOptCGSCCPass on (foo) (1 node)
-; CHECK-O-NEXT:   Running pass: SROAPass on foo (7 instructions)
-; CHECK-O-NEXT:   Running pass: EarlyCSEPass on foo (7 instructions)
-; CHECK-O-NEXT:   Running analysis: MemorySSAAnalysis on foo
-; CHECK-O-NEXT:   Running analysis: AAManager on foo
-; CHECK-O23-NEXT: Running pass: SpeculativeExecutionPass on foo (7 
instructions)
-; CHECK-O23-NEXT: Running pass: JumpThreadingPass on foo (7 instructions)
-; CHECK-O23-NEXT: Running analysis: LazyValueAnalysis on foo
-; CHECK-O23-NEXT: Running pass: CorrelatedValuePropagationPass on foo (7 
instructions)
-; CHECK-O23-NEXT: Invalidating analysis: LazyValueAnalysis on foo
-; CHECK-O23-NEXT: Running pass: JumpTableToSwitchPass on foo (7 instructions)
-; CHECK-O-NEXT:   Running pass: SimplifyCFGPass on foo (7 instructions)
-; CHECK-O-NEXT:   Running pass: InstCombinePass on foo (7 instructions)
-; CHECK-O23-NEXT: Running pass: AggressiveInstCombinePass on foo (7 
instructions)
-; CHECK-O-NEXT:   Running pass: LibCallsShrinkWrapPass on foo (7 instructions)
-; CHECK-O23-NEXT: Running pass: TailCallElimPass on foo (7 instructions)
-; CHECK-O-NEXT:   Running pass: SimplifyCFGPass on foo (7 instructions)
-; CHECK-O-NEXT:   Running pass: ReassociatePass on foo (7 instructions)
-; CHECK-O-NEXT:   Running analysis: UniformityInfoAnalysis on foo
-; CHECK-O23-NEXT: Running pass: ConstraintEliminationPass on foo (7 
instructions)
-; CHECK-O-NEXT:   Running analysis: LoopAnalysis on foo
-; CHECK-O23-NEXT: Running analysis: ScalarEvolutionAnalysis on foo
-; CHECK-O-NEXT:   Running pass: LoopSimplifyPass on foo (7 instructions)
-; CHECK-O-NEXT:   Running pass: LCSSAPass on foo (7 instructions)
-; CHECK-O1-NEXT:  Running analysis: ScalarEvolutionAnalysis on foo
-; CHECK-O-NEXT:   Running analysis: 
InnerAnalysisManagerProxy<LoopAnalysisManager, Function> on foo
-; CHECK-O-NEXT:   Running pass: LoopInstSimplifyPass on loop %loop in function 
foo
-; CHECK-O-NEXT:   Running pass: LoopSimplifyCFGPass on loop %loop in function 
foo
-; CHECK-O-NEXT:   Running pass: LICMPass on loop %loop in function foo
-; CHECK-O-NEXT:   Running pass: LoopRotatePass on loop %loop in function foo
-; CHECK-O-NEXT:   Running pass: LICMPass on loop %loop in function foo
-; CHECK-O-NEXT:   Running pass: SimpleLoopUnswitchPass on loop %loop in 
function foo
-; CHECK-O-NEXT:   Running pass: SimplifyCFGPass on foo (7 instructions)
-; CHECK-O-NEXT:   Running pass: InstCombinePass on foo (7 instructions)
-; CHECK-O-NEXT:   Running pass: LoopSimplifyPass on foo (7 instructions)
-; CHECK-O-NEXT:   Running pass: LCSSAPass on foo (7 instructions)
-; CHECK-O-NEXT:   Running pass: LoopIdiomRecognizePass on loop %loop in 
function foo
-; CHECK-O-NEXT:   Running pass: IndVarSimplifyPass on loop %loop in function 
foo
-; CHECK-O-NEXT:   Running pass: LoopDeletionPass on loop %loop in function foo
-; CHECK-O-NEXT:   Running pass: LoopFullUnrollPass on loop %loop in function 
foo
-; CHECK-O-NEXT:   Running pass: SROAPass on foo (7 instructions)
-; CHECK-O1-NEXT:  Running pass: MemCpyOptPass on foo (7 instructions)
-; CHECK-O1-NEXT:  Running analysis: PostDominatorTreeAnalysis on foo
-; CHECK-O23-NEXT: Running pass: VectorCombinePass on foo (7 instructions)
-; CHECK-O23-NEXT: Running pass: MergedLoadStoreMotionPass on foo (7 
instructions)
-; CHECK-O23-NEXT: Running pass: GVNPass on foo (7 instructions)
-; CHECK-O23-NEXT: Running analysis: MemoryDependenceAnalysis on foo
-; CHECK-O-NEXT:   Running pass: SCCPPass on foo (7 instructions)
-; CHECK-O-NEXT:   Running pass: BDCEPass on foo (7 instructions)
-; CHECK-O-NEXT:   Running analysis: DemandedBitsAnalysis on foo
-; CHECK-O-NEXT:   Running pass: InstCombinePass on foo (7 instructions)
-; CHECK-O1-NEXT:  Running pass: CoroElidePass on foo (7 instructions)
-; CHECK-O23-NEXT: Running pass: DFAJumpThreadingPass on foo (7 instructions)
-; CHECK-O23-NEXT: Running pass: JumpThreadingPass on foo (7 instructions)
-; CHECK-O23-NEXT: Running analysis: LazyValueAnalysis on foo
-; CHECK-O23-NEXT: Running pass: CorrelatedValuePropagationPass on foo (7 
instructions)
-; CHECK-O23-NEXT: Invalidating analysis: LazyValueAnalysis on foo
-; CHECK-O-NEXT:   Running pass: ADCEPass on foo (7 instructions)
-; CHECK-O23-NEXT: Running analysis: PostDominatorTreeAnalysis on foo
-; CHECK-O23-NEXT: Running pass: MemCpyOptPass on foo (7 instructions)
-; CHECK-O23-NEXT: Running pass: DSEPass on foo (7 instructions)
-; CHECK-O23-NEXT: Running analysis: CycleAnalysis on foo
-; CHECK-O23-NEXT: Running pass: MoveAutoInitPass on foo (7 instructions)
-; CHECK-O23-NEXT: Running pass: LoopSimplifyPass on foo (7 instructions)
-; CHECK-O23-NEXT: Running pass: LCSSAPass on foo (7 instructions)
-; CHECK-O23-NEXT: Running pass: LICMPass on loop %loop in function foo
-; CHECK-O23-NEXT: Running pass: CoroElidePass on foo (7 instructions)
-; CHECK-O-NEXT:   Running pass: SimplifyCFGPass on foo (7 instructions)
-; CHECK-O-NEXT:   Running pass: InstCombinePass on foo (7 instructions)
-; CHECK-O-NEXT:   Running pass: PostOrderFunctionAttrsPass on (foo) (1 node)
-; CHECK-O-NEXT:   Running pass: 
RequireAnalysisPass<llvm::ShouldNotRunFunctionPassesAnalysis, llvm::Function, 
llvm::AnalysisManager<Function>> on foo (7 instructions)
-; CHECK-O-NEXT:   Running analysis: ShouldNotRunFunctionPassesAnalysis on foo
-; CHECK-O-NEXT:   Running pass: CoroSplitPass on (foo) (1 node)
-; CHECK-O-NEXT:   Running pass: CoroAnnotationElidePass on (foo) (1 node)
-; CHECK-O-NEXT:   Running pass: 
InvalidateAnalysisPass<llvm::ShouldNotRunFunctionPassesAnalysis> on foo (7 
instructions)
-; CHECK-O-NEXT:   Invalidating analysis: ShouldNotRunFunctionPassesAnalysis on 
foo
-; CHECK-O-NEXT:   Invalidating analysis: InlineAdvisorAnalysis on [module]
-; CHECK-O-NEXT:   Running pass: DeadArgumentEliminationPass on [module]
-; CHECK-O-NEXT:   Running pass: CoroCleanupPass on [module]
-; CHECK-O-NEXT:   Running pass: GlobalOptPass on [module]
-; CHECK-O-NEXT:   Running pass: GlobalDCEPass on [module]
-; CHECK-O-NEXT:   Running pass: ReversePostOrderFunctionAttrsPass on [module]
-; CHECK-O-NEXT:   Running pass: RecomputeGlobalsAAPass on [module]
-; CHECK-O-NEXT:   Running pass: Float2IntPass on foo (7 instructions)
-; CHECK-O3-NEXT:  Running pass: ControlHeightReductionPass on foo (7 
instructions)
-; CHECK-O-NEXT:   Running pass: LoopSimplifyPass on foo (7 instructions)
-; CHECK-O-NEXT:   Running pass: LCSSAPass on foo (7 instructions)
-; CHECK-O-NEXT:   Running pass: LoopRotatePass on loop %loop in function foo
-; CHECK-O-NEXT:   Running pass: LoopDeletionPass on loop %loop in function foo
-; CHECK-O-NEXT:   Running pass: LoopInterchangePass on loop %loop in function 
foo
-; CHECK-O-NEXT:   Running pass: LoopDistributePass on foo (7 instructions)
-; CHECK-O-NEXT:   Running analysis: LoopAccessAnalysis on foo
-; CHECK-O-NEXT:   Running pass: InjectTLIMappings on foo (7 instructions)
-; CHECK-O1-NEXT:  Running pass: LoopVectorizePass on foo (7 instructions)
-; CHECK-O-NEXT:   Running pass: InferAlignmentPass on foo (7 instructions)
-; CHECK-O-NEXT:   Running pass: LoopLoadEliminationPass on foo (7 instructions)
-; CHECK-O-NEXT:   Running pass: InstCombinePass on foo (7 instructions)
-; CHECK-O-NEXT:   Running pass: SimplifyCFGPass on foo (7 instructions)
-; CHECK-O-NEXT:   Running pass: VectorCombinePass on foo (7 instructions)
-; CHECK-O1-NEXT:  Running pass: InstCombinePass on foo (7 instructions)
-; CHECK-O1-NEXT:  Running pass: LoopUnrollPass on foo (7 instructions)
-; CHECK-O1-NEXT:  Running pass: WarnMissedTransformationsPass on foo (7 
instructions)
-; CHECK-O1-NEXT:  Running pass: SROAPass on foo (7 instructions)
-; CHECK-O-NEXT:   Running pass: InferAlignmentPass on foo (7 instructions)
-; CHECK-O-NEXT:   Running pass: InstCombinePass on foo (7 instructions)
-; CHECK-O-NEXT:   Running pass: LoopSimplifyPass on foo (7 instructions)
-; CHECK-O-NEXT:   Running pass: LCSSAPass on foo (7 instructions)
-; CHECK-O-NEXT:   Running pass: LICMPass on loop %loop in function foo
-; CHECK-O-NEXT:   Running pass: AlignmentFromAssumptionsPass on foo (7 
instructions)
-; CHECK-O-NEXT:   Running pass: LoopSinkPass on foo (7 instructions)
-; CHECK-O-NEXT:   Running pass: InstSimplifyPass on foo (7 instructions)
-; CHECK-O-NEXT:   Running pass: DivRemPairsPass on foo (7 instructions)
-; CHECK-O-NEXT:   Running pass: MergeICmpsPass on foo (7 instructions)
-; CHECK-O-NEXT:   Running pass: ExpandMemCmpPass on foo (7 instructions)
-; CHECK-O-NEXT:   Running pass: TailCallElimPass on foo (7 instructions)
-; CHECK-O-NEXT:   Running pass: SimplifyCFGPass on foo (7 instructions)
-; CHECK-O-NEXT:   Running pass: GlobalDCEPass on [module]
-; CHECK-O-NEXT:   Running pass: ConstantMergePass on [module]
-; CHECK-O-NEXT:   Running pass: LowerCommentStringPass on [module]
-; CHECK-O-NEXT:   Running pass: AnnotationRemarksPass on foo (7 instructions)
-; CHECK-O-NEXT:   Running pass: CanonicalizeAliasesPass on [module]
-; CHECK-O-NEXT:   Running pass: NameAnonGlobalPass on [module]
-; CHECK-O-NEXT:   Running pass: AssignGUIDPass on [module]
-; CHECK-O-NEXT:   Running pass: PrintModulePass on [module]
-
-declare void @bar() local_unnamed_addr
-
-define void @foo(i32 %n) local_unnamed_addr {
-entry:
-  br label %loop
-loop:
-  %iv = phi i32 [ 0, %entry ], [ %iv.next, %loop ]
-  %iv.next = add i32 %iv, 1
-  tail call void @bar()
-  %cmp = icmp eq i32 %iv, %n
-  br i1 %cmp, label %exit, label %loop
-exit:
-  ret void
-}


        
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to