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
