From 6288f86e870c7bb7fe47cc138320b9eb34c93941 Mon Sep 17 00:00:00 2001 From: Teresa Johnson Date: Mon, 13 Jan 2020 11:01:48 -0800 Subject: [PATCH] Revert "[ThinLTO] Add additional ThinLTO pipeline testing with new PM" This reverts commit 2af97be8027a0823b88d4b6a07fc5eedb440bc1f. After attempting to fix bot failures from matching issues (mostly due to inconsistent printing of "llvm::" prefixes on objects, and AnalysisManager objects being printed differntly, I am now seeing some differences I don't understand (real differences in the passes being printed). Giving up at this point to allow the bots to recover. Will revisit later. --- clang/test/CodeGen/thinlto-distributed-newpm.ll | 236 ----------------- .../new-pm-thinlto-prelink-pgo-defaults.proftext | 1 - .../Inputs/new-pm-thinlto-samplepgo-defaults.prof | 1 - llvm/test/Other/new-pm-pgo.ll | 5 - .../Other/new-pm-thinlto-postlink-pgo-defaults.ll | 280 --------------------- .../new-pm-thinlto-postlink-samplepgo-defaults.ll | 261 ------------------- .../Other/new-pm-thinlto-prelink-pgo-defaults.ll | 255 ------------------- .../new-pm-thinlto-prelink-samplepgo-defaults.ll | 215 ---------------- 8 files changed, 1254 deletions(-) delete mode 100644 clang/test/CodeGen/thinlto-distributed-newpm.ll delete mode 100644 llvm/test/Other/Inputs/new-pm-thinlto-prelink-pgo-defaults.proftext delete mode 100644 llvm/test/Other/Inputs/new-pm-thinlto-samplepgo-defaults.prof delete mode 100644 llvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll delete mode 100644 llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll delete mode 100644 llvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll delete mode 100644 llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll diff --git a/clang/test/CodeGen/thinlto-distributed-newpm.ll b/clang/test/CodeGen/thinlto-distributed-newpm.ll deleted file mode 100644 index 01e840c..0000000 --- a/clang/test/CodeGen/thinlto-distributed-newpm.ll +++ /dev/null @@ -1,236 +0,0 @@ -; REQUIRES: x86-registered-target - -; Validate ThinLTO post link pipeline at O2 and O3 - -; RUN: opt -thinlto-bc -o %t.o %s - -; RUN: llvm-lto2 run -thinlto-distributed-indexes %t.o \ -; RUN: -o %t2.index \ -; RUN: -r=%t.o,main,px - -; RUN: %clang -target x86_64-grtev4-linux-gnu \ -; RUN: -O2 -fexperimental-new-pass-manager -Xclang -fdebug-pass-manager \ -; RUN: -c -fthinlto-index=%t.o.thinlto.bc \ -; RUN: -o %t.native.o -x ir %t.o 2>&1 | FileCheck -check-prefixes=CHECK-O,CHECK-O2 %s - -; RUN: %clang -target x86_64-grtev4-linux-gnu \ -; RUN: -O3 -fexperimental-new-pass-manager -Xclang -fdebug-pass-manager \ -; RUN: -c -fthinlto-index=%t.o.thinlto.bc \ -; RUN: -o %t.native.o -x ir %t.o 2>&1 | FileCheck -check-prefixes=CHECK-O,CHECK-O3 %s - -; CHECK-O: Running analysis: PassInstrumentationAnalysis -; CHECK-O: Starting {{.*}}Module pass manager run. -; CHECK-O: Running pass: WholeProgramDevirtPass -; CHECK-O: Running analysis: InnerAnalysisManagerProxy -; CHECK-O: Running pass: LowerTypeTestsPass -; CHECK-O: Invalidating all non-preserved analyses for: -; CHECK-O: Invalidating analysis: InnerAnalysisManagerProxy -; CHECK-O: Running pass: ForceFunctionAttrsPass -; CHECK-O: Running pass: PassManager<{{.*}}Module> -; CHECK-O: Starting {{.*}}Module pass manager run. -; CHECK-O: Running pass: PGOIndirectCallPromotion -; CHECK-O: Running analysis: ProfileSummaryAnalysis -; CHECK-O: Running analysis: InnerAnalysisManagerProxy -; CHECK-O: Running analysis: OptimizationRemarkEmitterAnalysis on main -; CHECK-O: Running analysis: PassInstrumentationAnalysis on main -; CHECK-O: Running pass: InferFunctionAttrsPass -; CHECK-O: Running pass: ModuleToFunctionPassAdaptor<{{.*}}PassManager<{{.*}}Function> > -; CHECK-O: Starting {{.*}}Function pass manager run. -; CHECK-O: Running pass: SimplifyCFGPass on main -; CHECK-O: Running analysis: TargetIRAnalysis on main -; CHECK-O: Running analysis: AssumptionAnalysis on main -; CHECK-O: Running pass: SROA on main -; CHECK-O: Running analysis: DominatorTreeAnalysis on main -; CHECK-O: Running pass: EarlyCSEPass on main -; CHECK-O: Running analysis: TargetLibraryAnalysis on main -; CHECK-O: Running pass: LowerExpectIntrinsicPass on main -; CHECK-O3: Running pass: CallSiteSplittingPass on main -; CHECK-O: Finished {{.*}}Function pass manager run. -; CHECK-O: Running pass: IPSCCPPass -; CHECK-O: Running pass: CalledValuePropagationPass -; CHECK-O: Running pass: GlobalOptPass -; CHECK-O: Invalidating all non-preserved analyses for: -; CHECK-O: Invalidating analysis: InnerAnalysisManagerProxy -; CHECK-O: Running pass: ModuleToFunctionPassAdaptor<{{.*}}PromotePass> -; CHECK-O: Running analysis: InnerAnalysisManagerProxy -; CHECK-O: Running analysis: DominatorTreeAnalysis on main -; CHECK-O: Running analysis: PassInstrumentationAnalysis on main -; CHECK-O: Running analysis: AssumptionAnalysis on main -; CHECK-O: Running pass: DeadArgumentEliminationPass -; CHECK-O: Running pass: ModuleToFunctionPassAdaptor<{{.*}}PassManager<{{.*}}Function> > -; CHECK-O: Starting {{.*}}Function pass manager run. -; CHECK-O: Running pass: InstCombinePass on main -; CHECK-O: Running analysis: TargetLibraryAnalysis on main -; CHECK-O: Running analysis: OptimizationRemarkEmitterAnalysis on main -; CHECK-O: Running analysis: AAManager on main -; CHECK-O: Running analysis: BasicAA on main -; CHECK-O: Running analysis: ScopedNoAliasAA on main -; CHECK-O: Running analysis: TypeBasedAA on main -; CHECK-O: Running analysis: OuterAnalysisManagerProxy -; CHECK-O: Running pass: SimplifyCFGPass on main -; CHECK-O: Running analysis: TargetIRAnalysis on main -; CHECK-O: Finished {{.*}}Function pass manager run. -; CHECK-O: Running pass: RequireAnalysisPass<{{.*}}GlobalsAA -; CHECK-O: Running analysis: GlobalsAA -; CHECK-O: Running analysis: CallGraphAnalysis -; CHECK-O: Running pass: RequireAnalysisPass<{{.*}}ProfileSummaryAnalysis -; CHECK-O: Running pass: ModuleToPostOrderCGSCCPassAdaptor<{{.*}}DevirtSCCRepeatedPass<{{.*}}PassManager<{{.*}}LazyCallGraph::SCC -; CHECK-O: Running analysis: InnerAnalysisManagerProxy -; CHECK-O: Running analysis: LazyCallGraphAnalysis -; CHECK-O: Running analysis: FunctionAnalysisManagerCGSCCProxy on (main) -; CHECK-O: Running analysis: PassInstrumentationAnalysis on (main) -; CHECK-O: Running analysis: OuterAnalysisManagerProxy -; CHECK-O: Starting CGSCC pass manager run. -; CHECK-O: Running pass: InlinerPass on (main) -; CHECK-O: Running pass: PostOrderFunctionAttrsPass on (main) -; CHECK-O: Invalidating all non-preserved analyses for: (main) -; CHECK-O: Clearing all analysis results for: main -; CHECK-O: Invalidating analysis: FunctionAnalysisManagerCGSCCProxy on (main) -; CHECK-O3: Running pass: ArgumentPromotionPass on (main) -; CHECK-O2: Running pass: CGSCCToFunctionPassAdaptor<{{.*}}PassManager<{{.*}}Function> > on (main) -; CHECK-O: Running analysis: FunctionAnalysisManagerCGSCCProxy on (main) -; CHECK-O3: Running analysis: TargetIRAnalysis on main -; CHECK-O: Running analysis: PassInstrumentationAnalysis on main -; CHECK-O3: Running pass: CGSCCToFunctionPassAdaptor<{{.*}}PassManager<{{.*}}Function> > on (main) -; CHECK-O: Starting {{.*}}Function pass manager run. -; CHECK-O: Running pass: SROA on main -; CHECK-O: Running analysis: DominatorTreeAnalysis on main -; CHECK-O: Running analysis: AssumptionAnalysis on main -; CHECK-O: Running pass: EarlyCSEPass on main -; CHECK-O: Running analysis: TargetLibraryAnalysis on main -; CHECK-O2: Running analysis: TargetIRAnalysis on main -; CHECK-O: Running analysis: MemorySSAAnalysis on main -; CHECK-O: Running analysis: AAManager on main -; CHECK-O: Running analysis: BasicAA on main -; CHECK-O: Running analysis: ScopedNoAliasAA on main -; CHECK-O: Running analysis: TypeBasedAA on main -; CHECK-O: Running analysis: OuterAnalysisManagerProxy -; CHECK-O: Running pass: SpeculativeExecutionPass on main -; CHECK-O: Running pass: JumpThreadingPass on main -; CHECK-O: Running analysis: LazyValueAnalysis on main -; CHECK-O: Running pass: CorrelatedValuePropagationPass on main -; CHECK-O: Running pass: SimplifyCFGPass on main -; CHECK-O3: Running pass: AggressiveInstCombinePass on main -; CHECK-O: Running pass: InstCombinePass on main -; CHECK-O: Running analysis: OptimizationRemarkEmitterAnalysis on main -; CHECK-O: Running pass: LibCallsShrinkWrapPass on main -; CHECK-O: Running pass: TailCallElimPass on main -; CHECK-O: Running pass: SimplifyCFGPass on main -; CHECK-O: Running pass: ReassociatePass on main -; CHECK-O: Running pass: RequireAnalysisPass<{{.*}}OptimizationRemarkEmitterAnalysis -; CHECK-O: Running pass: FunctionToLoopPassAdaptor<{{.*}}PassManager<{{.*}}Loop -; CHECK-O: Starting {{.*}}Function pass manager run. -; CHECK-O: Running pass: LoopSimplifyPass on main -; CHECK-O: Running analysis: LoopAnalysis on main -; CHECK-O: Running pass: LCSSAPass on main -; CHECK-O: Finished {{.*}}Function pass manager run. -; CHECK-O: Running pass: SimplifyCFGPass on main -; CHECK-O: Running pass: InstCombinePass on main -; CHECK-O: Running pass: FunctionToLoopPassAdaptor<{{.*}}PassManager<{{.*}}Loop -; CHECK-O: Starting {{.*}}Function pass manager run. -; CHECK-O: Running pass: LoopSimplifyPass on main -; CHECK-O: Running pass: LCSSAPass on main -; CHECK-O: Finished {{.*}}Function pass manager run. -; CHECK-O: Running pass: SROA on main -; CHECK-O: Running pass: MergedLoadStoreMotionPass on main -; CHECK-O: Running pass: GVN on main -; CHECK-O: Running analysis: MemoryDependenceAnalysis on main -; CHECK-O: Running analysis: PhiValuesAnalysis on main -; CHECK-O: Running pass: MemCpyOptPass on main -; CHECK-O: Running pass: SCCPPass on main -; CHECK-O: Running pass: BDCEPass on main -; CHECK-O: Running analysis: DemandedBitsAnalysis on main -; CHECK-O: Running pass: InstCombinePass on main -; CHECK-O: Running pass: JumpThreadingPass on main -; CHECK-O: Running pass: CorrelatedValuePropagationPass on main -; CHECK-O: Running pass: DSEPass on main -; CHECK-O: Running pass: FunctionToLoopPassAdaptor<{{.*}}LICMPass> on main -; CHECK-O: Starting {{.*}}Function pass manager run. -; CHECK-O: Running pass: LoopSimplifyPass on main -; CHECK-O: Running pass: LCSSAPass on main -; CHECK-O: Finished {{.*}}Function pass manager run. -; CHECK-O: Running pass: ADCEPass on main -; CHECK-O: Running analysis: PostDominatorTreeAnalysis on main -; CHECK-O: Running pass: SimplifyCFGPass on main -; CHECK-O: Running pass: InstCombinePass on main -; CHECK-O: Finished {{.*}}Function pass manager run. -; CHECK-O: Finished CGSCC pass manager run. -; CHECK-O: Invalidating all non-preserved analyses for: -; CHECK-O: Invalidating all non-preserved analyses for: main -; CHECK-O: Invalidating analysis: DominatorTreeAnalysis on main -; CHECK-O: Invalidating analysis: BasicAA on main -; CHECK-O: Invalidating analysis: AAManager on main -; CHECK-O: Invalidating analysis: MemorySSAAnalysis on main -; CHECK-O: Invalidating analysis: LazyValueAnalysis on main -; CHECK-O: Invalidating analysis: LoopAnalysis on main -; CHECK-O: Invalidating analysis: PhiValuesAnalysis on main -; CHECK-O: Invalidating analysis: MemoryDependenceAnalysis on main -; CHECK-O: Invalidating analysis: DemandedBitsAnalysis on main -; CHECK-O: Invalidating analysis: PostDominatorTreeAnalysis on main -; CHECK-O: Invalidating analysis: CallGraphAnalysis -; CHECK-O: Invalidating analysis: GlobalsAA -; CHECK-O: Finished {{.*}}Module pass manager run. -; CHECK-O: Running pass: PassManager<{{.*}}Module> -; CHECK-O: Starting {{.*}}Module pass manager run. -; CHECK-O: Running pass: GlobalOptPass -; CHECK-O: Running analysis: DominatorTreeAnalysis on main -; CHECK-O: Running pass: GlobalDCEPass -; CHECK-O: Running pass: EliminateAvailableExternallyPass -; CHECK-O: Running pass: ReversePostOrderFunctionAttrsPass -; CHECK-O: Running analysis: CallGraphAnalysis -; CHECK-O: Running pass: RequireAnalysisPass<{{.*}}GlobalsAA -; CHECK-O: Running analysis: GlobalsAA -; CHECK-O: Running pass: ModuleToFunctionPassAdaptor<{{.*}}PassManager<{{.*}}Function> > -; CHECK-O: Starting {{.*}}Function pass manager run. -; CHECK-O: Running pass: Float2IntPass on main -; CHECK-O: Running pass: LowerConstantIntrinsicsPass on main -; CHECK-O: Running pass: FunctionToLoopPassAdaptor<{{.*}}LoopRotatePass> on main -; CHECK-O: Starting {{.*}}Function pass manager run. -; CHECK-O: Running pass: LoopSimplifyPass on main -; CHECK-O: Running analysis: LoopAnalysis on main -; CHECK-O: Running pass: LCSSAPass on main -; CHECK-O: Finished {{.*}}Function pass manager run. -; CHECK-O: Running pass: LoopDistributePass on main -; CHECK-O: Running analysis: ScalarEvolutionAnalysis on main -; CHECK-O: Running analysis: AAManager on main -; CHECK-O: Running analysis: BasicAA on main -; CHECK-O: Running analysis: InnerAnalysisManagerProxy -; CHECK-O: Running pass: LoopVectorizePass on main -; CHECK-O: Running analysis: BlockFrequencyAnalysis on main -; CHECK-O: Running analysis: BranchProbabilityAnalysis on main -; CHECK-O: Running analysis: DemandedBitsAnalysis on main -; CHECK-O: Running analysis: MemorySSAAnalysis on main -; CHECK-O: Running pass: LoopLoadEliminationPass on main -; CHECK-O: Running pass: InstCombinePass on main -; CHECK-O: Running pass: SimplifyCFGPass on main -; CHECK-O: Running pass: SLPVectorizerPass on main -; CHECK-O: Running pass: InstCombinePass on main -; CHECK-O: Running pass: LoopUnrollPass on main -; CHECK-O: Running pass: WarnMissedTransformationsPass on main -; CHECK-O: Running pass: InstCombinePass on main -; CHECK-O: Running pass: RequireAnalysisPass<{{.*}}OptimizationRemarkEmitterAnalysis -; CHECK-O: Running pass: FunctionToLoopPassAdaptor<{{.*}}LICMPass> on main -; CHECK-O: Starting {{.*}}Function pass manager run. -; CHECK-O: Running pass: LoopSimplifyPass on main -; CHECK-O: Running pass: LCSSAPass on main -; CHECK-O: Finished {{.*}}Function pass manager run. -; CHECK-O: Running pass: AlignmentFromAssumptionsPass on main -; CHECK-O: Running pass: LoopSinkPass on main -; CHECK-O: Running pass: InstSimplifyPass on main -; CHECK-O: Running pass: DivRemPairsPass on main -; CHECK-O: Running pass: SimplifyCFGPass on main -; CHECK-O: Running pass: SpeculateAroundPHIsPass on main -; CHECK-O: Finished {{.*}}Function pass manager run. -; CHECK-O: Running pass: CGProfilePass -; CHECK-O: Running pass: GlobalDCEPass -; CHECK-O: Running pass: ConstantMergePass -; CHECK-O: Finished {{.*}}Module pass manager run. -; CHECK-O: Finished {{.*}}Module pass manager run. - -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-grtev4-linux-gnu" - -define i32 @main() { -entry: - ret i32 0 -} diff --git a/llvm/test/Other/Inputs/new-pm-thinlto-prelink-pgo-defaults.proftext b/llvm/test/Other/Inputs/new-pm-thinlto-prelink-pgo-defaults.proftext deleted file mode 100644 index 04a7c1c..0000000 --- a/llvm/test/Other/Inputs/new-pm-thinlto-prelink-pgo-defaults.proftext +++ /dev/null @@ -1 +0,0 @@ -:ir diff --git a/llvm/test/Other/Inputs/new-pm-thinlto-samplepgo-defaults.prof b/llvm/test/Other/Inputs/new-pm-thinlto-samplepgo-defaults.prof deleted file mode 100644 index 4642cb9..0000000 --- a/llvm/test/Other/Inputs/new-pm-thinlto-samplepgo-defaults.prof +++ /dev/null @@ -1 +0,0 @@ -foo:0:0 diff --git a/llvm/test/Other/new-pm-pgo.ll b/llvm/test/Other/new-pm-pgo.ll index 610f200..ab9f084 100644 --- a/llvm/test/Other/new-pm-pgo.ll +++ b/llvm/test/Other/new-pm-pgo.ll @@ -1,8 +1,6 @@ ; RUN: opt -debug-pass-manager -passes='default' -pgo-kind=pgo-instr-gen-pipeline -profile-file='temp' %s 2>&1 |FileCheck %s --check-prefixes=GEN ; RUN: llvm-profdata merge %S/Inputs/new-pm-pgo.proftext -o %t.profdata ; RUN: opt -debug-pass-manager -passes='default' -pgo-kind=pgo-instr-use-pipeline -profile-file='%t.profdata' %s 2>&1 |FileCheck %s --check-prefixes=USE -; RUN: opt -debug-pass-manager -passes='thinlto-pre-link' -pgo-kind=pgo-instr-use-pipeline -profile-file='%t.profdata' %s 2>&1 |FileCheck %s --check-prefixes=USE -; RUN: opt -debug-pass-manager -passes='thinlto' -pgo-kind=pgo-instr-use-pipeline -profile-file='%t.profdata' %s 2>&1 |FileCheck %s --check-prefixes=USE_POST_LINK ; RUN: opt -debug-pass-manager -passes='default' -hot-cold-split -pgo-kind=pgo-instr-use-pipeline -profile-file='%t.profdata' %s 2>&1 |FileCheck %s --check-prefixes=USE --check-prefixes=SPLIT ; RUN: opt -debug-pass-manager -passes='default' -pgo-kind=pgo-sample-use-pipeline -profile-file='%S/Inputs/new-pm-pgo.prof' %s 2>&1 \ ; RUN: |FileCheck %s --check-prefixes=SAMPLE_USE,SAMPLE_USE_O @@ -16,8 +14,6 @@ ; USE: Running pass: PGOInstrumentationUse ; USE: Running pass: PGOIndirectCallPromotion ; USE: Running pass: PGOMemOPSizeOpt -; USE_POST_LINK: Running pass: PGOIndirectCallPromotion -; USE_POST_LINK: Running pass: PGOMemOPSizeOpt ; SAMPLE_USE_O: Running pass: ModuleToFunctionPassAdaptor<{{.*}}AddDiscriminatorsPass{{.*}}> ; SAMPLE_USE_PRE_LINK: Running pass: ModuleToFunctionPassAdaptor<{{.*}}AddDiscriminatorsPass{{.*}}> ; SAMPLE_USE: Running pass: SimplifyCFGPass @@ -29,7 +25,6 @@ ; SAMPLE_USE_O: Running pass: PGOIndirectCallPromotion ; SAMPLE_USE_POST_LINK-NOT: Running pass: GlobalOptPass ; SAMPLE_USE_POST_LINK: Running pass: PGOIndirectCallPromotion -; SAMPLE_USE_PRE_LINK-NOT: Running pass: PGOIndirectCallPromotion ; SAMPLE_GEN: Running pass: ModuleToFunctionPassAdaptor<{{.*}}AddDiscriminatorsPass{{.*}}> ; SPLIT: Running pass: HotColdSplittingPass diff --git a/llvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll b/llvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll deleted file mode 100644 index 843a0a0..0000000 --- a/llvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll +++ /dev/null @@ -1,280 +0,0 @@ -; Validate ThinLTO post link pipeline when we have instrumentation PGO -; -; Postlink pipelines: -; RUN: opt -disable-verify -debug-pass-manager \ -; RUN: -passes='thinlto' -S %s 2>&1 \ -; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O1,%llvmcheckext --dump-input=fail -; RUN: opt -disable-verify -debug-pass-manager \ -; RUN: -passes='thinlto' -S %s 2>&1 \ -; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O2,CHECK-O23SZ,%llvmcheckext --dump-input=fail -; RUN: opt -disable-verify -debug-pass-manager -passes-ep-pipeline-start='no-op-module' \ -; RUN: -passes='thinlto' -S %s 2>&1 \ -; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O3,CHECK-O23SZ,%llvmcheckext --dump-input=fail -; RUN: opt -disable-verify -debug-pass-manager \ -; RUN: -passes='thinlto' -S %s 2>&1 \ -; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-Os,CHECK-O23SZ,%llvmcheckext --dump-input=fail -; RUN: opt -disable-verify -debug-pass-manager \ -; RUN: -passes='thinlto' -S %s 2>&1 \ -; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-Oz,CHECK-O23SZ,%llvmcheckext --dump-input=fail -; RUN: opt -disable-verify -debug-pass-manager -new-pm-debug-info-for-profiling \ -; RUN: -passes='thinlto' -S %s 2>&1 \ -; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O2,CHECK-O23SZ,%llvmcheckext --dump-input=fail -; -; CHECK-O: Running analysis: PassInstrumentationAnalysis -; CHECK-O-NEXT: Starting {{.*}}Module pass manager run. -; CHECK-O-NEXT: Running pass: PassManager<{{.*}}Module{{.*}}> -; CHECK-O-NEXT: Starting {{.*}}Module pass manager run. -; CHECK-O-NEXT: Running pass: ForceFunctionAttrsPass -; CHECK-EP-PIPELINE-START-NEXT: Running pass: NoOpModulePass -; CHECK-O-NEXT: Running pass: PassManager<{{.*}}Module{{.*}}> -; CHECK-O-NEXT: Starting {{.*}}Module pass manager run. -; CHECK-O-NEXT: Running pass: PGOIndirectCallPromotion -; CHECK-O-NEXT: Running analysis: ProfileSummaryAnalysis -; CHECK-O-NEXT: Running analysis: InnerAnalysisManagerProxy -; CHECK-O-NEXT: Running analysis: OptimizationRemarkEmitterAnalysis -; CHECK-O-NEXT: Running analysis: PassInstrumentationAnalysis -; CHECK-O-NEXT: Running pass: InferFunctionAttrsPass -; CHECK-O-NEXT: Running analysis: TargetLibraryAnalysis -; CHECK-O-NEXT: Running analysis: PassInstrumentationAnalysis -; CHECK-O-NEXT: Running pass: ModuleToFunctionPassAdaptor<{{.*}}PassManager{{.*}}> -; CHECK-O-NEXT: Starting {{.*}}Function pass manager run. -; CHECK-O-NEXT: Running pass: SimplifyCFGPass -; CHECK-O-NEXT: Running analysis: TargetIRAnalysis -; CHECK-O-NEXT: Running analysis: AssumptionAnalysis -; CHECK-O-NEXT: Running pass: SROA -; CHECK-O-NEXT: Running analysis: DominatorTreeAnalysis -; CHECK-O-NEXT: Running pass: EarlyCSEPass -; CHECK-O-NEXT: Running analysis: TargetLibraryAnalysis -; CHECK-O-NEXT: Running pass: LowerExpectIntrinsicPass -; CHECK-O3-NEXT: Running pass: CallSiteSplittingPass -; CHECK-O-NEXT: Finished {{.*}}Function pass manager run. -; CHECK-O-NEXT: Running pass: IPSCCPPass -; CHECK-O-NEXT: Running pass: CalledValuePropagationPass -; CHECK-O-NEXT: Running pass: GlobalOptPass -; CHECK-O-NEXT: Running pass: ModuleToFunctionPassAdaptor<{{.*}}PromotePass> -; CHECK-O-NEXT: Running pass: DeadArgumentEliminationPass -; CHECK-O-NEXT: Running pass: ModuleToFunctionPassAdaptor<{{.*}}PassManager{{.*}}> -; CHECK-O-NEXT: Starting {{.*}}Function pass manager run. -; CHECK-O-NEXT: Running pass: InstCombinePass -; CHECK-O-NEXT: Running analysis: AAManager -; CHECK-O-NEXT: Running analysis: OuterAnalysisManagerProxy -; CHECK-O-NEXT: Running analysis: BlockFrequencyAnalysis on foo -; These next two can appear in any order since they are accessed as parameters -; on the same call to BlockFrequencyInfo::calculate. -; CHECK-O-DAG: Running analysis: BranchProbabilityAnalysis on foo -; CHECK-O-DAG: Running analysis: LoopAnalysis on foo -; CHECK-O-NEXT: Running pass: SimplifyCFGPass -; CHECK-O-NEXT: Finished {{.*}}Function pass manager run. -; CHECK-O-NEXT: Running pass: RequireAnalysisPass<{{.*}}GlobalsAA -; CHECK-O-NEXT: Running analysis: GlobalsAA -; CHECK-O-NEXT: Running analysis: CallGraphAnalysis -; CHECK-O-NEXT: Running pass: RequireAnalysisPass<{{.*}}ProfileSummaryAnalysis -; CHECK-O-NEXT: Running pass: ModuleToPostOrderCGSCCPassAdaptor<{{.*}}LazyCallGraph{{.*}}> -; CHECK-O-NEXT: Running analysis: InnerAnalysisManagerProxy -; CHECK-O-NEXT: Running analysis: LazyCallGraphAnalysis -; CHECK-O-NEXT: Running analysis: FunctionAnalysisManagerCGSCCProxy -; CHECK-O-NEXT: Running analysis: PassInstrumentationAnalysis -; CHECK-O-NEXT: Running analysis: OuterAnalysisManagerProxy<{{.*}}LazyCallGraph::SCC{{.*}}> -; CHECK-O-NEXT: Starting CGSCC pass manager run. -; CHECK-O-NEXT: Running pass: InlinerPass -; CHECK-O-NEXT: Running pass: PostOrderFunctionAttrsPass -; CHECK-O3-NEXT: Running pass: ArgumentPromotionPass -; CHECK-O-NEXT: Running pass: CGSCCToFunctionPassAdaptor<{{.*}}PassManager{{.*}}> -; CHECK-O-NEXT: Starting {{.*}}Function pass manager run. -; CHECK-O-NEXT: Running pass: SROA -; CHECK-O-NEXT: Running pass: EarlyCSEPass -; CHECK-O-NEXT: Running analysis: MemorySSAAnalysis -; CHECK-O23SZ-NEXT: Running pass: SpeculativeExecutionPass -; CHECK-O23SZ-NEXT: Running pass: JumpThreadingPass -; CHECK-O23SZ-NEXT: Running analysis: LazyValueAnalysis -; CHECK-O23SZ-NEXT: Running pass: CorrelatedValuePropagationPass -; CHECK-O-NEXT: Running pass: SimplifyCFGPass -; CHECK-O3-NEXT: Running pass: AggressiveInstCombinePass -; CHECK-O-NEXT: Running pass: InstCombinePass -; CHECK-O1-NEXT: Running pass: LibCallsShrinkWrapPass -; CHECK-O2-NEXT: Running pass: LibCallsShrinkWrapPass -; CHECK-O3-NEXT: Running pass: LibCallsShrinkWrapPass -; CHECK-O23SZ-NEXT: Running pass: TailCallElimPass -; CHECK-O-NEXT: Running pass: SimplifyCFGPass -; CHECK-O-NEXT: Running pass: ReassociatePass -; CHECK-O-NEXT: Running pass: RequireAnalysisPass<{{.*}}OptimizationRemarkEmitterAnalysis -; CHECK-O-NEXT: Running pass: FunctionToLoopPassAdaptor<{{.*}}LoopStandardAnalysisResults{{.*}}> -; CHECK-O-NEXT: Starting {{.*}}Function pass manager run -; CHECK-O-NEXT: Running pass: LoopSimplifyPass -; CHECK-O-NEXT: Running pass: LCSSAPass -; CHECK-O-NEXT: Finished {{.*}}Function pass manager run -; CHECK-O-NEXT: Running analysis: ScalarEvolutionAnalysis -; CHECK-O-NEXT: Running analysis: InnerAnalysisManagerProxy -; CHECK-O-NEXT: Starting Loop pass manager run. -; CHECK-O-NEXT: Running analysis: PassInstrumentationAnalysis -; CHECK-O-NEXT: Running pass: LoopInstSimplifyPass -; CHECK-O-NEXT: Running pass: LoopSimplifyCFGPass -; CHECK-O-NEXT: Running pass: LoopRotatePass -; CHECK-O-NEXT: Running pass: LICM -; CHECK-O-NEXT: Running analysis: OuterAnalysisManagerProxy -; CHECK-O-NEXT: Running pass: SimpleLoopUnswitchPass -; CHECK-O-NEXT: Finished Loop pass manager run. -; CHECK-O-NEXT: Running pass: SimplifyCFGPass -; CHECK-O-NEXT: Running pass: InstCombinePass -; CHECK-O-NEXT: Running pass: FunctionToLoopPassAdaptor<{{.*}}LoopStandardAnalysisResults{{.*}}> -; CHECK-O-NEXT: Starting {{.*}}Function pass manager run -; CHECK-O-NEXT: Running pass: LoopSimplifyPass -; CHECK-O-NEXT: Running pass: LCSSAPass -; CHECK-O-NEXT: Finished {{.*}}Function pass manager run -; CHECK-O-NEXT: Starting Loop pass manager run. -; CHECK-O-NEXT: Running pass: IndVarSimplifyPass -; CHECK-O-NEXT: Running pass: LoopIdiomRecognizePass -; CHECK-O-NEXT: Running pass: LoopDeletionPass -; CHECK-O-NEXT: Running pass: LoopFullUnrollPass -; CHECK-O-NEXT: Finished Loop pass manager run. -; CHECK-O-NEXT: Running pass: SROA on foo -; CHECK-Os-NEXT: Running pass: MergedLoadStoreMotionPass -; CHECK-Os-NEXT: Running pass: GVN -; CHECK-Os-NEXT: Running analysis: MemoryDependenceAnalysis -; CHECK-Os-NEXT: Running analysis: PhiValuesAnalysis -; CHECK-Oz-NEXT: Running pass: MergedLoadStoreMotionPass -; CHECK-Oz-NEXT: Running pass: GVN -; CHECK-Oz-NEXT: Running analysis: MemoryDependenceAnalysis -; CHECK-Oz-NEXT: Running analysis: PhiValuesAnalysis -; CHECK-O2-NEXT: Running pass: MergedLoadStoreMotionPass -; CHECK-O2-NEXT: Running pass: GVN -; CHECK-O2-NEXT: Running analysis: MemoryDependenceAnalysis -; CHECK-O2-NEXT: Running analysis: PhiValuesAnalysis -; CHECK-O3-NEXT: Running pass: MergedLoadStoreMotionPass -; CHECK-O3-NEXT: Running pass: GVN -; CHECK-O3-NEXT: Running analysis: MemoryDependenceAnalysis -; CHECK-O3-NEXT: Running analysis: PhiValuesAnalysis -; CHECK-O-NEXT: Running pass: MemCpyOptPass -; CHECK-O1-NEXT: Running analysis: MemoryDependenceAnalysis -; CHECK-O1-NEXT: Running analysis: PhiValuesAnalysis -; CHECK-O-NEXT: Running pass: SCCPPass -; CHECK-O-NEXT: Running pass: BDCEPass -; CHECK-O-NEXT: Running analysis: DemandedBitsAnalysis -; CHECK-O-NEXT: Running pass: InstCombinePass -; CHECK-O23SZ-NEXT: Running pass: JumpThreadingPass -; CHECK-O23SZ-NEXT: Running pass: CorrelatedValuePropagationPass -; CHECK-O23SZ-NEXT: Running pass: DSEPass -; CHECK-O23SZ-NEXT: Running pass: FunctionToLoopPassAdaptor<{{.*}}LICMPass{{.*}}> -; CHECK-O23SZ-NEXT: Starting {{.*}}Function pass manager run -; CHECK-O23SZ-NEXT: Running pass: LoopSimplifyPass -; CHECK-O23SZ-NEXT: Running pass: LCSSAPass -; CHECK-O23SZ-NEXT: Finished {{.*}}Function pass manager run -; CHECK-O-NEXT: Running pass: ADCEPass -; CHECK-O-NEXT: Running analysis: PostDominatorTreeAnalysis -; CHECK-O-NEXT: Running pass: SimplifyCFGPass -; CHECK-O-NEXT: Running pass: InstCombinePass -; CHECK-O-NEXT: Finished {{.*}}Function pass manager run. -; CHECK-O-NEXT: Finished CGSCC pass manager run. -; CHECK-O-NEXT: Finished {{.*}}Module pass manager run. -; CHECK-O-NEXT: Running pass: PassManager<{{.*}}Module{{.*}}> -; CHECK-O-NEXT: Starting {{.*}}Module pass manager run. -; CHECK-O-NEXT: Running pass: GlobalOptPass -; CHECK-O-NEXT: Running pass: GlobalDCEPass -; CHECK-O-NEXT: Running pass: EliminateAvailableExternallyPass -; CHECK-O-NEXT: Running pass: ReversePostOrderFunctionAttrsPass -; CHECK-O-NEXT: Running pass: RequireAnalysisPass<{{.*}}GlobalsAA -; CHECK-O-NEXT: Running pass: ModuleToFunctionPassAdaptor<{{.*}}PassManager{{.*}}> -; CHECK-O-NEXT: Starting {{.*}}Function pass manager run. -; CHECK-O-NEXT: Running pass: Float2IntPass -; CHECK-O-NEXT: Running pass: LowerConstantIntrinsicsPass -; CHECK-EXT: Running pass: {{.*}}::Bye -; CHECK-O-NEXT: Running pass: FunctionToLoopPassAdaptor<{{.*}}LoopRotatePass -; CHECK-O-NEXT: Starting {{.*}}Function pass manager run -; CHECK-O-NEXT: Running pass: LoopSimplifyPass -; CHECK-O-NEXT: Running pass: LCSSAPass -; CHECK-O-NEXT: Finished {{.*}}Function pass manager run -; CHECK-O-NEXT: Running pass: LoopDistributePass -; CHECK-O-NEXT: Running pass: LoopVectorizePass -; CHECK-O-NEXT: Running pass: LoopLoadEliminationPass -; CHECK-O-NEXT: Running analysis: LoopAccessAnalysis -; CHECK-O-NEXT: Running pass: InstCombinePass -; CHECK-O-NEXT: Running pass: SimplifyCFGPass -; CHECK-O2-NEXT: Running pass: SLPVectorizerPass -; CHECK-O3-NEXT: Running pass: SLPVectorizerPass -; CHECK-Os-NEXT: Running pass: SLPVectorizerPass -; CHECK-O-NEXT: Running pass: InstCombinePass -; CHECK-O-NEXT: Running pass: LoopUnrollPass -; CHECK-O-NEXT: Running pass: WarnMissedTransformationsPass -; CHECK-O-NEXT: Running pass: InstCombinePass -; CHECK-O-NEXT: Running pass: RequireAnalysisPass<{{.*}}OptimizationRemarkEmitterAnalysis -; CHECK-O-NEXT: Running pass: FunctionToLoopPassAdaptor<{{.*}}LICMPass -; CHECK-O-NEXT: Starting {{.*}}Function pass manager run -; CHECK-O-NEXT: Running pass: LoopSimplifyPass -; CHECK-O-NEXT: Running pass: LCSSAPass -; CHECK-O-NEXT: Finished {{.*}}Function pass manager run -; CHECK-O-NEXT: Running pass: AlignmentFromAssumptionsPass -; CHECK-O-NEXT: Running pass: LoopSinkPass -; CHECK-O-NEXT: Running pass: InstSimplifyPass -; CHECK-O-NEXT: Running pass: DivRemPairsPass -; CHECK-O-NEXT: Running pass: SimplifyCFGPass -; CHECK-O-NEXT: Running pass: SpeculateAroundPHIsPass -; CHECK-O-NEXT: Finished {{.*}}Function pass manager run. -; CHECK-O-NEXT: Running pass: CGProfilePass -; CHECK-O-NEXT: Running pass: GlobalDCEPass -; CHECK-O-NEXT: Running pass: ConstantMergePass -; CHECK-O-NEXT: Finished {{.*}}Module pass manager run. -; CHECK-O-NEXT: Finished {{.*}}Module pass manager run. -; CHECK-O-NEXT: Running pass: PrintModulePass - -; Make sure we get the IR back out without changes when we print the module. -; CHECK-O-LABEL: define void @foo(i32 %n) local_unnamed_addr { -; CHECK-O-NEXT: entry: -; CHECK-O-NEXT: br label %loop -; CHECK-O: loop: -; CHECK-O-NEXT: %iv = phi i32 [ 0, %entry ], [ %iv.next, %loop ] -; CHECK-O-NEXT: %iv.next = add i32 %iv, 1 -; CHECK-O-NEXT: tail call void @bar() -; CHECK-O-NEXT: %cmp = icmp eq i32 %iv, %n -; CHECK-O-NEXT: br i1 %cmp, label %exit, label %loop -; CHECK-O: exit: -; CHECK-O-NEXT: ret void -; CHECK-O-NEXT: } -; -; Ignore a bunch of intervening metadata containing profile data. -; -; CHECK-O: Finished {{.*}}Module pass manager run. - -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 -} - -!llvm.module.flags = !{!0} - -!0 = !{i32 1, !"ProfileSummary", !1} -!1 = !{!2, !3, !4, !5, !6, !7, !8, !9} -!2 = !{!"ProfileFormat", !"InstrProf"} -!3 = !{!"TotalCount", i64 0} -!4 = !{!"MaxCount", i64 0} -!5 = !{!"MaxInternalCount", i64 0} -!6 = !{!"MaxFunctionCount", i64 0} -!7 = !{!"NumCounts", i64 0} -!8 = !{!"NumFunctions", i64 0} -!9 = !{!"DetailedSummary", !10} -!10 = !{!11, !12, !13, !14, !15, !16, !17, !18, !19, !20, !21, !22, !23, !24, !25, !26} -!11 = !{i32 10000, i64 0, i32 0} -!12 = !{i32 100000, i64 0, i32 0} -!13 = !{i32 200000, i64 0, i32 0} -!14 = !{i32 300000, i64 0, i32 0} -!15 = !{i32 400000, i64 0, i32 0} -!16 = !{i32 500000, i64 0, i32 0} -!17 = !{i32 600000, i64 0, i32 0} -!18 = !{i32 700000, i64 0, i32 0} -!19 = !{i32 800000, i64 0, i32 0} -!20 = !{i32 900000, i64 0, i32 0} -!21 = !{i32 950000, i64 0, i32 0} -!22 = !{i32 990000, i64 0, i32 0} -!23 = !{i32 999000, i64 0, i32 0} -!24 = !{i32 999900, i64 0, i32 0} -!25 = !{i32 999990, i64 0, i32 0} -!26 = !{i32 999999, i64 0, i32 0} diff --git a/llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll b/llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll deleted file mode 100644 index 4063913..0000000 --- a/llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll +++ /dev/null @@ -1,261 +0,0 @@ -; Validate ThinLTO postlink pipeline when we have Sample PGO -; -; RUN: opt -disable-verify -debug-pass-manager \ -; RUN: -pgo-kind=pgo-sample-use-pipeline -profile-file='%S/Inputs/new-pm-thinlto-samplepgo-defaults.prof' \ -; RUN: -passes='thinlto' -S %s 2>&1 \ -; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O1,%llvmcheckext -; RUN: opt -disable-verify -debug-pass-manager \ -; RUN: -pgo-kind=pgo-sample-use-pipeline -profile-file='%S/Inputs/new-pm-thinlto-samplepgo-defaults.prof' \ -; RUN: -passes='thinlto' -S %s 2>&1 \ -; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O2,CHECK-O23SZ,%llvmcheckext -; RUN: opt -disable-verify -debug-pass-manager -passes-ep-pipeline-start='no-op-module' \ -; RUN: -pgo-kind=pgo-sample-use-pipeline -profile-file='%S/Inputs/new-pm-thinlto-samplepgo-defaults.prof' \ -; RUN: -passes='thinlto' -S %s 2>&1 \ -; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O3,CHECK-O23SZ,%llvmcheckext -; RUN: opt -disable-verify -debug-pass-manager \ -; RUN: -pgo-kind=pgo-sample-use-pipeline -profile-file='%S/Inputs/new-pm-thinlto-samplepgo-defaults.prof' \ -; RUN: -passes='thinlto' -S %s 2>&1 \ -; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-Os,CHECK-O23SZ,%llvmcheckext -; RUN: opt -disable-verify -debug-pass-manager \ -; RUN: -pgo-kind=pgo-sample-use-pipeline -profile-file='%S/Inputs/new-pm-thinlto-samplepgo-defaults.prof' \ -; RUN: -passes='thinlto' -S %s 2>&1 \ -; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-Oz,CHECK-O23SZ,%llvmcheckext -; RUN: opt -disable-verify -debug-pass-manager -new-pm-debug-info-for-profiling \ -; RUN: -pgo-kind=pgo-sample-use-pipeline -profile-file='%S/Inputs/new-pm-thinlto-samplepgo-defaults.prof' \ -; RUN: -passes='thinlto' -S %s 2>&1 \ -; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O2,CHECK-O23SZ,%llvmcheckext -; -; CHECK-O: Running analysis: PassInstrumentationAnalysis -; CHECK-O-NEXT: Starting {{.*}}Module pass manager run. -; CHECK-O-NEXT: Running pass: PassManager<{{.*}}Module{{.*}}> -; CHECK-O-NEXT: Starting {{.*}}Module pass manager run. -; CHECK-O-NEXT: Running pass: ForceFunctionAttrsPass -; CHECK-EP-PIPELINE-START-NEXT: Running pass: NoOpModulePass -; CHECK-O-NEXT: Running pass: PassManager<{{.*}}Module{{.*}}> -; CHECK-O-NEXT: Starting {{.*}}Module pass manager run. -; CHECK-O-NEXT: Running pass: InferFunctionAttrsPass -; CHECK-O-NEXT: Running analysis: InnerAnalysisManagerProxy -; CHECK-O-NEXT: Running analysis: TargetLibraryAnalysis -; CHECK-O-NEXT: Running analysis: PassInstrumentationAnalysis -; CHECK-O-NEXT: Running pass: ModuleToFunctionPassAdaptor<{{.*}}PassManager{{.*}}> -; CHECK-O-NEXT: Running analysis: PassInstrumentationAnalysis -; CHECK-O-NEXT: Starting {{.*}}Function pass manager run. -; CHECK-O-NEXT: Running pass: SimplifyCFGPass -; CHECK-O-NEXT: Running analysis: TargetIRAnalysis -; CHECK-O-NEXT: Running analysis: AssumptionAnalysis -; CHECK-O-NEXT: Running pass: SROA -; CHECK-O-NEXT: Running analysis: DominatorTreeAnalysis -; CHECK-O-NEXT: Running pass: EarlyCSEPass -; CHECK-O-NEXT: Running analysis: TargetLibraryAnalysis -; CHECK-O-NEXT: Running pass: LowerExpectIntrinsicPass -; CHECK-O3-NEXT: Running pass: CallSiteSplittingPass -; CHECK-O-NEXT: Running pass: InstCombinePass on foo -; CHECK-O-NEXT: Running analysis: OptimizationRemarkEmitterAnalysis on foo -; CHECK-O-NEXT: Running analysis: AAManager on foo -; CHECK-O-NEXT: Running analysis: OuterAnalysisManagerProxy -; CHECK-O-NEXT: Finished {{.*}}Function pass manager run. -; CHECK-O-NEXT: Running pass: SampleProfileLoaderPass -; CHECK-O-NEXT: Running analysis: ProfileSummaryAnalysis -; CHECK-O-NEXT: Running analysis: CallGraphAnalysis -; CHECK-O-NEXT: Running pass: RequireAnalysisPass<{{.*}}ProfileSummaryAnalysis -; CHECK-O-NEXT: Running pass: PGOIndirectCallPromotion -; CHECK-O-NEXT: Running pass: IPSCCPPass -; CHECK-O-NEXT: Running pass: CalledValuePropagationPass -; CHECK-O-NEXT: Running pass: GlobalOptPass -; CHECK-O-NEXT: Running pass: ModuleToFunctionPassAdaptor<{{.*}}PromotePass> -; CHECK-O-NEXT: Running pass: DeadArgumentEliminationPass -; CHECK-O-NEXT: Running pass: ModuleToFunctionPassAdaptor<{{.*}}PassManager{{.*}}> -; CHECK-O-NEXT: Starting {{.*}}Function pass manager run. -; CHECK-O-NEXT: Running pass: InstCombinePass -; CHECK-O-NEXT: Running analysis: BlockFrequencyAnalysis on foo -; These next two can appear in any order since they are accessed as parameters -; on the same call to BlockFrequencyInfo::calculate. -; CHECK-O-DAG: Running analysis: BranchProbabilityAnalysis on foo -; CHECK-O-DAG: Running analysis: LoopAnalysis on foo -; CHECK-O-NEXT: Running pass: SimplifyCFGPass on foo -; CHECK-O-NEXT: Finished {{.*}}Function pass manager run -; CHECK-O-NEXT: Running pass: RequireAnalysisPass<{{.*}}GlobalsAA -; CHECK-O-NEXT: Running analysis: GlobalsAA -; CHECK-O-NEXT: Running pass: RequireAnalysisPass<{{.*}}ProfileSummaryAnalysis -; CHECK-O-NEXT: Running pass: ModuleToPostOrderCGSCCPassAdaptor<{{.*}}LazyCallGraph{{.*}}> -; CHECK-O-NEXT: Running analysis: InnerAnalysisManagerProxy -; CHECK-O-NEXT: Running analysis: LazyCallGraphAnalysis -; CHECK-O-NEXT: Running analysis: FunctionAnalysisManagerCGSCCProxy -; CHECK-O-NEXT: Running analysis: PassInstrumentationAnalysis -; CHECK-O-NEXT: Running analysis: OuterAnalysisManagerProxy<{{.*}}LazyCallGraph::SCC{{.*}}> -; CHECK-O-NEXT: Starting CGSCC pass manager run. -; CHECK-O-NEXT: Running pass: InlinerPass -; CHECK-O-NEXT: Running pass: PostOrderFunctionAttrsPass -; CHECK-O3-NEXT: Running pass: ArgumentPromotionPass -; CHECK-O-NEXT: Running pass: CGSCCToFunctionPassAdaptor<{{.*}}PassManager{{.*}}> -; CHECK-O-NEXT: Starting {{.*}}Function pass manager run. -; CHECK-O-NEXT: Running pass: SROA -; CHECK-O-NEXT: Running pass: EarlyCSEPass -; CHECK-O-NEXT: Running analysis: MemorySSAAnalysis -; CHECK-O23SZ-NEXT: Running pass: SpeculativeExecutionPass -; CHECK-O23SZ-NEXT: Running pass: JumpThreadingPass -; CHECK-O23SZ-NEXT: Running analysis: LazyValueAnalysis -; CHECK-O23SZ-NEXT: Running pass: CorrelatedValuePropagationPass -; CHECK-O-NEXT: Running pass: SimplifyCFGPass -; CHECK-O3-NEXT: Running pass: AggressiveInstCombinePass -; CHECK-O-NEXT: Running pass: InstCombinePass -; CHECK-O1-NEXT: Running pass: LibCallsShrinkWrapPass -; CHECK-O2-NEXT: Running pass: LibCallsShrinkWrapPass -; CHECK-O3-NEXT: Running pass: LibCallsShrinkWrapPass -; CHECK-O23SZ-NEXT: Running pass: TailCallElimPass -; CHECK-O-NEXT: Running pass: SimplifyCFGPass -; CHECK-O-NEXT: Running pass: ReassociatePass -; CHECK-O-NEXT: Running pass: RequireAnalysisPass<{{.*}}OptimizationRemarkEmitterAnalysis -; CHECK-O-NEXT: Running pass: FunctionToLoopPassAdaptor<{{.*}}LoopStandardAnalysisResults{{.*}}> -; CHECK-O-NEXT: Starting {{.*}}Function pass manager run -; CHECK-O-NEXT: Running pass: LoopSimplifyPass -; CHECK-O-NEXT: Running pass: LCSSAPass -; CHECK-O-NEXT: Finished {{.*}}Function pass manager run -; CHECK-O-NEXT: Running analysis: ScalarEvolutionAnalysis -; CHECK-O-NEXT: Running analysis: InnerAnalysisManagerProxy -; CHECK-O-NEXT: Starting Loop pass manager run. -; CHECK-O-NEXT: Running analysis: PassInstrumentationAnalysis -; CHECK-O-NEXT: Running pass: LoopInstSimplifyPass -; CHECK-O-NEXT: Running pass: LoopSimplifyCFGPass -; CHECK-O-NEXT: Running pass: LoopRotatePass -; CHECK-O-NEXT: Running pass: LICM -; CHECK-O-NEXT: Running analysis: OuterAnalysisManagerProxy -; CHECK-O-NEXT: Running pass: SimpleLoopUnswitchPass -; CHECK-O-NEXT: Finished Loop pass manager run. -; CHECK-O-NEXT: Running pass: SimplifyCFGPass -; CHECK-O-NEXT: Running pass: InstCombinePass -; CHECK-O-NEXT: Running pass: FunctionToLoopPassAdaptor<{{.*}}LoopStandardAnalysisResults{{.*}}> -; CHECK-O-NEXT: Starting {{.*}}Function pass manager run -; CHECK-O-NEXT: Running pass: LoopSimplifyPass -; CHECK-O-NEXT: Running pass: LCSSAPass -; CHECK-O-NEXT: Finished {{.*}}Function pass manager run -; CHECK-O-NEXT: Starting Loop pass manager run. -; CHECK-O-NEXT: Running pass: IndVarSimplifyPass -; CHECK-O-NEXT: Running pass: LoopIdiomRecognizePass -; CHECK-O-NEXT: Running pass: LoopDeletionPass -; CHECK-O-NEXT: Running pass: LoopFullUnrollPass -; CHECK-O-NEXT: Finished Loop pass manager run. -; CHECK-O-NEXT: Running pass: SROA on foo -; CHECK-Os-NEXT: Running pass: MergedLoadStoreMotionPass -; CHECK-Os-NEXT: Running pass: GVN -; CHECK-Os-NEXT: Running analysis: MemoryDependenceAnalysis -; CHECK-Os-NEXT: Running analysis: PhiValuesAnalysis -; CHECK-Oz-NEXT: Running pass: MergedLoadStoreMotionPass -; CHECK-Oz-NEXT: Running pass: GVN -; CHECK-Oz-NEXT: Running analysis: MemoryDependenceAnalysis -; CHECK-Oz-NEXT: Running analysis: PhiValuesAnalysis -; CHECK-O2-NEXT: Running pass: MergedLoadStoreMotionPass -; CHECK-O2-NEXT: Running pass: GVN -; CHECK-O2-NEXT: Running analysis: MemoryDependenceAnalysis -; CHECK-O2-NEXT: Running analysis: PhiValuesAnalysis -; CHECK-O3-NEXT: Running pass: MergedLoadStoreMotionPass -; CHECK-O3-NEXT: Running pass: GVN -; CHECK-O3-NEXT: Running analysis: MemoryDependenceAnalysis -; CHECK-O3-NEXT: Running analysis: PhiValuesAnalysis -; CHECK-O-NEXT: Running pass: MemCpyOptPass -; CHECK-O1-NEXT: Running analysis: MemoryDependenceAnalysis -; CHECK-O1-NEXT: Running analysis: PhiValuesAnalysis -; CHECK-O-NEXT: Running pass: SCCPPass -; CHECK-O-NEXT: Running pass: BDCEPass -; CHECK-O-NEXT: Running analysis: DemandedBitsAnalysis -; CHECK-O-NEXT: Running pass: InstCombinePass -; CHECK-O23SZ-NEXT: Running pass: JumpThreadingPass -; CHECK-O23SZ-NEXT: Running pass: CorrelatedValuePropagationPass -; CHECK-O23SZ-NEXT: Running pass: DSEPass -; CHECK-O23SZ-NEXT: Running pass: FunctionToLoopPassAdaptor<{{.*}}LICMPass{{.*}}> -; CHECK-O23SZ-NEXT: Starting {{.*}}Function pass manager run -; CHECK-O23SZ-NEXT: Running pass: LoopSimplifyPass -; CHECK-O23SZ-NEXT: Running pass: LCSSAPass -; CHECK-O23SZ-NEXT: Finished {{.*}}Function pass manager run -; CHECK-O-NEXT: Running pass: ADCEPass -; CHECK-O-NEXT: Running analysis: PostDominatorTreeAnalysis -; CHECK-O-NEXT: Running pass: SimplifyCFGPass -; CHECK-O-NEXT: Running pass: InstCombinePass -; CHECK-O3-NEXT: Running pass: ControlHeightReductionPass on foo -; CHECK-O3-NEXT: Running analysis: RegionInfoAnalysis on foo -; CHECK-O3-NEXT: Running analysis: DominanceFrontierAnalysis on foo -; CHECK-O-NEXT: Finished {{.*}}Function pass manager run. -; CHECK-O-NEXT: Finished CGSCC pass manager run. -; CHECK-O-NEXT: Finished {{.*}}Module pass manager run. -; CHECK-O-NEXT: Running pass: PassManager<{{.*}}Module{{.*}}> -; CHECK-O-NEXT: Starting {{.*}}Module pass manager run. -; CHECK-O-NEXT: Running pass: GlobalOptPass -; CHECK-O-NEXT: Running pass: GlobalDCEPass -; CHECK-O-NEXT: Running pass: EliminateAvailableExternallyPass -; CHECK-O-NEXT: Running pass: ReversePostOrderFunctionAttrsPass -; CHECK-O-NEXT: Running pass: RequireAnalysisPass<{{.*}}GlobalsAA -; CHECK-O-NEXT: Running pass: ModuleToFunctionPassAdaptor<{{.*}}PassManager{{.*}}> -; CHECK-O-NEXT: Starting {{.*}}Function pass manager run. -; CHECK-O-NEXT: Running pass: Float2IntPass -; CHECK-O-NEXT: Running pass: LowerConstantIntrinsicsPass -; CHECK-EXT: Running pass: {{.*}}::Bye -; CHECK-O-NEXT: Running pass: FunctionToLoopPassAdaptor<{{.*}}LoopRotatePass -; CHECK-O-NEXT: Starting {{.*}}Function pass manager run -; CHECK-O-NEXT: Running pass: LoopSimplifyPass -; CHECK-O-NEXT: Running pass: LCSSAPass -; CHECK-O-NEXT: Finished {{.*}}Function pass manager run -; CHECK-O-NEXT: Running pass: LoopDistributePass -; CHECK-O-NEXT: Running pass: LoopVectorizePass -; CHECK-O-NEXT: Running pass: LoopLoadEliminationPass -; CHECK-O-NEXT: Running analysis: LoopAccessAnalysis -; CHECK-O-NEXT: Running pass: InstCombinePass -; CHECK-O-NEXT: Running pass: SimplifyCFGPass -; CHECK-O2-NEXT: Running pass: SLPVectorizerPass -; CHECK-O3-NEXT: Running pass: SLPVectorizerPass -; CHECK-Os-NEXT: Running pass: SLPVectorizerPass -; CHECK-O-NEXT: Running pass: InstCombinePass -; CHECK-O-NEXT: Running pass: LoopUnrollPass -; CHECK-O-NEXT: Running pass: WarnMissedTransformationsPass -; CHECK-O-NEXT: Running pass: InstCombinePass -; CHECK-O-NEXT: Running pass: RequireAnalysisPass<{{.*}}OptimizationRemarkEmitterAnalysis -; CHECK-O-NEXT: Running pass: FunctionToLoopPassAdaptor<{{.*}}LICMPass -; CHECK-O-NEXT: Starting {{.*}}Function pass manager run -; CHECK-O-NEXT: Running pass: LoopSimplifyPass -; CHECK-O-NEXT: Running pass: LCSSAPass -; CHECK-O-NEXT: Finished {{.*}}Function pass manager run -; CHECK-O-NEXT: Running pass: AlignmentFromAssumptionsPass -; CHECK-O-NEXT: Running pass: LoopSinkPass -; CHECK-O-NEXT: Running pass: InstSimplifyPass -; CHECK-O-NEXT: Running pass: DivRemPairsPass -; CHECK-O-NEXT: Running pass: SimplifyCFGPass -; CHECK-O-NEXT: Running pass: SpeculateAroundPHIsPass -; CHECK-O-NEXT: Finished {{.*}}Function pass manager run. -; CHECK-O-NEXT: Running pass: CGProfilePass -; CHECK-O-NEXT: Running pass: GlobalDCEPass -; CHECK-O-NEXT: Running pass: ConstantMergePass -; CHECK-O-NEXT: Finished {{.*}}Module pass manager run. -; CHECK-O-NEXT: Finished {{.*}}Module pass manager run. -; CHECK-O-NEXT: Running pass: PrintModulePass - -; Make sure we get the IR back out without changes when we print the module. -; CHECK-O-LABEL: define void @foo(i32 %n) local_unnamed_addr -; CHECK-O-NEXT: entry: -; CHECK-O-NEXT: br label %loop -; CHECK-O: loop: -; CHECK-O-NEXT: %iv = phi i32 [ 0, %entry ], [ %iv.next, %loop ] -; CHECK-O-NEXT: %iv.next = add i32 %iv, 1 -; CHECK-O-NEXT: tail call void @bar() -; CHECK-O-NEXT: %cmp = icmp eq i32 %iv, %n -; CHECK-O-NEXT: br i1 %cmp, label %exit, label %loop -; CHECK-O: exit: -; CHECK-O-NEXT: ret void -; CHECK-O-NEXT: } -; -; Ignore a bunch of intervening metadata containing profile data. -; -; CHECK-O: Finished {{.*}}Module pass manager run. - -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 -} diff --git a/llvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll b/llvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll deleted file mode 100644 index 5f91a3f..0000000 --- a/llvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll +++ /dev/null @@ -1,255 +0,0 @@ -; Validate ThinLTO prelink pipeline when we have instrumentation PGO -; -; RUN: llvm-profdata merge %S/Inputs/new-pm-thinlto-prelink-pgo-defaults.proftext -o %t.profdata -; -; RUN: opt -disable-verify -debug-pass-manager \ -; RUN: -pgo-kind=pgo-instr-use-pipeline -profile-file='%t.profdata' \ -; RUN: -passes='thinlto-pre-link,name-anon-globals' -S %s 2>&1 \ -; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O1,CHECK-O-NODIS,CHECK-O123 -; RUN: opt -disable-verify -debug-pass-manager \ -; RUN: -pgo-kind=pgo-instr-use-pipeline -profile-file='%t.profdata' \ -; RUN: -passes='thinlto-pre-link,name-anon-globals' -S %s 2>&1 \ -; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O2,CHECK-O23SZ,CHECK-O-NODIS,CHECK-O123 -; RUN: opt -disable-verify -debug-pass-manager \ -; RUN: -pgo-kind=pgo-instr-use-pipeline -profile-file='%t.profdata' \ -; RUN: -passes='thinlto-pre-link,name-anon-globals' -S -passes-ep-pipeline-start='no-op-module' %s 2>&1 \ -; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O3,CHECK-O23SZ,CHECK-O-NODIS,CHECK-O123,CHECK-EP-PIPELINE-START -; RUN: opt -disable-verify -debug-pass-manager \ -; RUN: -pgo-kind=pgo-instr-use-pipeline -profile-file='%t.profdata' \ -; RUN: -passes='thinlto-pre-link,name-anon-globals' -S %s 2>&1 \ -; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-Os,CHECK-O23SZ,CHECK-O-NODIS -; RUN: opt -disable-verify -debug-pass-manager \ -; RUN: -pgo-kind=pgo-instr-use-pipeline -profile-file='%t.profdata' \ -; RUN: -passes='thinlto-pre-link,name-anon-globals' -S %s 2>&1 \ -; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-Oz,CHECK-O23SZ,CHECK-O-NODIS -; RUN: opt -disable-verify -debug-pass-manager -new-pm-debug-info-for-profiling \ -; RUN: -pgo-kind=pgo-instr-use-pipeline -profile-file='%t.profdata' \ -; RUN: -passes='thinlto-pre-link,name-anon-globals' -S %s 2>&1 \ -; RUN: | FileCheck %s --check-prefixes=CHECK-DIS,CHECK-O,CHECK-O2,CHECK-O23SZ,CHECK-O123 -; -; CHECK-O: Running analysis: PassInstrumentationAnalysis -; CHECK-O-NEXT: Starting {{.*}}Module pass manager run. -; CHECK-O-NEXT: Running pass: PassManager<{{.*}}Module{{.*}}> -; CHECK-O-NEXT: Starting {{.*}}Module pass manager run. -; CHECK-O-NEXT: Running pass: ForceFunctionAttrsPass -; CHECK-EP-PIPELINE-START-NEXT: Running pass: NoOpModulePass -; CHECK-O-NEXT: Running pass: PassManager<{{.*}}Module{{.*}}> -; CHECK-O-NEXT: Starting {{.*}}Module pass manager run. -; CHECK-O-NEXT: Running pass: InferFunctionAttrsPass -; CHECK-O-NEXT: Running analysis: InnerAnalysisManagerProxy -; CHECK-O-NEXT: Running analysis: TargetLibraryAnalysis -; CHECK-O-NEXT: Running analysis: PassInstrumentationAnalysis -; CHECK-O-NEXT: Running pass: ModuleToFunctionPassAdaptor<{{.*}}PassManager{{.*}}> -; CHECK-O-NEXT: Running analysis: PassInstrumentationAnalysis -; CHECK-O-NEXT: Starting {{.*}}Function pass manager run. -; CHECK-O-NEXT: Running pass: SimplifyCFGPass -; CHECK-O-NEXT: Running analysis: TargetIRAnalysis -; CHECK-O-NEXT: Running analysis: AssumptionAnalysis -; CHECK-O-NEXT: Running pass: SROA -; CHECK-O-NEXT: Running analysis: DominatorTreeAnalysis -; CHECK-O-NEXT: Running pass: EarlyCSEPass -; CHECK-O-NEXT: Running analysis: TargetLibraryAnalysis -; CHECK-O-NEXT: Running pass: LowerExpectIntrinsicPass -; CHECK-O3-NEXT: Running pass: CallSiteSplittingPass -; CHECK-O-NEXT: Finished {{.*}}Function pass manager run. -; CHECK-O-NEXT: Running pass: IPSCCPPass -; CHECK-O-NEXT: Running pass: CalledValuePropagationPass -; CHECK-O-NEXT: Running pass: GlobalOptPass -; CHECK-O-NEXT: Running pass: ModuleToFunctionPassAdaptor<{{.*}}PromotePass> -; CHECK-O-NEXT: Running pass: DeadArgumentEliminationPass -; CHECK-O-NEXT: Running pass: ModuleToFunctionPassAdaptor<{{.*}}PassManager{{.*}}> -; CHECK-O-NEXT: Starting {{.*}}Function pass manager run. -; CHECK-O-NEXT: Running pass: InstCombinePass -; CHECK-O-NEXT: Running analysis: OptimizationRemarkEmitterAnalysis -; CHECK-O-NEXT: Running analysis: AAManager -; CHECK-O-NEXT: Running analysis: OuterAnalysisManagerProxy -; CHECK-O-NEXT: Running pass: SimplifyCFGPass -; CHECK-O-NEXT: Finished {{.*}}Function pass manager run. -; CHECK-O123-NEXT: Running pass: ModuleToPostOrderCGSCCPassAdaptor<{{.*}}PassManager<{{.*}}LazyCallGraph::SCC -; CHECK-O123-NEXT: Running analysis: InnerAnalysisManagerProxy -; CHECK-O123-NEXT: Running analysis: LazyCallGraphAnalysis -; CHECK-O123-NEXT: Running analysis: FunctionAnalysisManagerCGSCCProxy on (foo) -; CHECK-O123-NEXT: Running analysis: PassInstrumentationAnalysis on (foo) -; CHECK-O123-NEXT: Running analysis: OuterAnalysisManagerProxy -; CHECK-O123-NEXT: Starting CGSCC pass manager run. -; CHECK-O123-NEXT: Running pass: InlinerPass on (foo) -; CHECK-O123-NEXT: Running pass: CGSCCToFunctionPassAdaptor<{{.*}}PassManager<{{.*}}Function> > on (foo) -; CHECK-O123-NEXT: Finished CGSCC pass manager run. -; CHECK-O123-NEXT: Running pass: GlobalDCEPass -; CHECK-O-NEXT: Running pass: PGOInstrumentationUse -; CHECK-O-NEXT: Running analysis: ProfileSummaryAnalysis -; These next two can appear in any order since they are accessed as parameters -; on the same call to BlockFrequencyInfo::calculate. -; CHECK-O-DAG: Running analysis: BranchProbabilityAnalysis on foo -; CHECK-O-DAG: Running analysis: LoopAnalysis on foo -; CHECK-O-NEXT: Running analysis: BlockFrequencyAnalysis on foo -; CHECK-O-NEXT: Invalidating all non-preserved analyses for: -; CHECK-O-NEXT: Invalidating analysis: InnerAnalysisManagerProxy -; CHECK-O123-NEXT: Invalidating analysis: LazyCallGraphAnalysis on -; CHECK-O123-NEXT: Invalidating analysis: InnerAnalysisManagerProxy -; CHECK-O-NEXT: Running pass: RequireAnalysisPass<{{.*}}ProfileSummaryAnalysis -; CHECK-O-NEXT: Running pass: PGOIndirectCallPromotion on -; CHECK-O-NEXT: Running analysis: InnerAnalysisManagerProxy -; CHECK-O-NEXT: Running analysis: OptimizationRemarkEmitterAnalysis on foo -; CHECK-O-NEXT: Running analysis: PassInstrumentationAnalysis on foo -; CHECK-O-NEXT: Running pass: RequireAnalysisPass<{{.*}}GlobalsAA -; CHECK-O-NEXT: Running analysis: GlobalsAA -; CHECK-O-NEXT: Running analysis: CallGraphAnalysis -; CHECK-O-NEXT: Running pass: RequireAnalysisPass<{{.*}}ProfileSummaryAnalysis -; CHECK-O-NEXT: Running pass: ModuleToPostOrderCGSCCPassAdaptor<{{.*}}LazyCallGraph{{.*}}> -; CHECK-O-NEXT: Running analysis: InnerAnalysisManagerProxy -; CHECK-O-NEXT: Running analysis: LazyCallGraphAnalysis -; CHECK-O-NEXT: Running analysis: TargetLibraryAnalysis on foo -; CHECK-O-NEXT: Running analysis: FunctionAnalysisManagerCGSCCProxy -; CHECK-O-NEXT: Running analysis: PassInstrumentationAnalysis -; CHECK-O-NEXT: Running analysis: OuterAnalysisManagerProxy<{{.*}}LazyCallGraph::SCC{{.*}}> -; CHECK-O-NEXT: Starting CGSCC pass manager run. -; CHECK-O-NEXT: Running pass: InlinerPass -; CHECK-O-NEXT: Running pass: PostOrderFunctionAttrsPass -; CHECK-O-NEXT: Running analysis: AAManager on foo -; CHECK-O3-NEXT: Running pass: ArgumentPromotionPass -; CHECK-O3-NEXT: Running analysis: TargetIRAnalysis -; CHECK-O-NEXT: Running pass: CGSCCToFunctionPassAdaptor<{{.*}}PassManager{{.*}}> -; CHECK-O-NEXT: Starting {{.*}}Function pass manager run. -; CHECK-O-NEXT: Running pass: SROA -; CHECK-O-NEXT: Running analysis: DominatorTreeAnalysis on foo -; CHECK-O-NEXT: Running analysis: AssumptionAnalysis on foo -; CHECK-O-NEXT: Running pass: EarlyCSEPass -; CHECK-O1-NEXT: Running analysis: TargetIRAnalysis on foo -; CHECK-O2-NEXT: Running analysis: TargetIRAnalysis on foo -; CHECK-Os-NEXT: Running analysis: TargetIRAnalysis on foo -; CHECK-Oz-NEXT: Running analysis: TargetIRAnalysis on foo -; CHECK-O-NEXT: Running analysis: MemorySSAAnalysis -; CHECK-O23SZ-NEXT: Running pass: SpeculativeExecutionPass -; CHECK-O23SZ-NEXT: Running pass: JumpThreadingPass -; CHECK-O23SZ-NEXT: Running analysis: LazyValueAnalysis -; CHECK-O23SZ-NEXT: Running pass: CorrelatedValuePropagationPass -; CHECK-O-NEXT: Running pass: SimplifyCFGPass -; CHECK-O3-NEXT: Running pass: AggressiveInstCombinePass -; CHECK-O-NEXT: Running pass: InstCombinePass -; CHECK-O-NEXT: Running analysis: OuterAnalysisManagerProxy -; CHECK-O-NEXT: Running analysis: BlockFrequencyAnalysis on foo -; These next two can appear in any order since they are accessed as parameters -; on the same call to BlockFrequencyInfo::calculate. -; CHECK-O-DAG: Running analysis: BranchProbabilityAnalysis on foo -; CHECK-O-DAG: Running analysis: LoopAnalysis on foo -; CHECK-O1-NEXT: Running pass: LibCallsShrinkWrapPass -; CHECK-O2-NEXT: Running pass: LibCallsShrinkWrapPass -; CHECK-O3-NEXT: Running pass: LibCallsShrinkWrapPass -; CHECK-O2-NEXT: Running pass: PGOMemOPSizeOpt -; CHECK-O3-NEXT: Running pass: PGOMemOPSizeOpt -; CHECK-O23SZ-NEXT: Running pass: TailCallElimPass -; CHECK-O-NEXT: Running pass: SimplifyCFGPass -; CHECK-O-NEXT: Running pass: ReassociatePass -; CHECK-O-NEXT: Running pass: RequireAnalysisPass<{{.*}}OptimizationRemarkEmitterAnalysis -; CHECK-O-NEXT: Running pass: FunctionToLoopPassAdaptor<{{.*}}LoopStandardAnalysisResults{{.*}}> -; CHECK-O-NEXT: Starting {{.*}}Function pass manager run -; CHECK-O-NEXT: Running pass: LoopSimplifyPass -; CHECK-O-NEXT: Running pass: LCSSAPass -; CHECK-O-NEXT: Finished {{.*}}Function pass manager run -; CHECK-O-NEXT: Running analysis: ScalarEvolutionAnalysis -; CHECK-O-NEXT: Running analysis: InnerAnalysisManagerProxy -; CHECK-O-NEXT: Starting Loop pass manager run. -; CHECK-O-NEXT: Running analysis: PassInstrumentationAnalysis -; CHECK-O-NEXT: Running pass: LoopInstSimplifyPass -; CHECK-O-NEXT: Running pass: LoopSimplifyCFGPass -; CHECK-O-NEXT: Running pass: LoopRotatePass -; CHECK-O-NEXT: Running pass: LICM -; CHECK-O-NEXT: Running analysis: OuterAnalysisManagerProxy -; CHECK-O-NEXT: Running pass: SimpleLoopUnswitchPass -; CHECK-O-NEXT: Finished Loop pass manager run. -; CHECK-O-NEXT: Running pass: SimplifyCFGPass -; CHECK-O-NEXT: Running pass: InstCombinePass -; CHECK-O-NEXT: Running pass: FunctionToLoopPassAdaptor<{{.*}}LoopStandardAnalysisResults{{.*}}> -; CHECK-O-NEXT: Starting {{.*}}Function pass manager run -; CHECK-O-NEXT: Running pass: LoopSimplifyPass -; CHECK-O-NEXT: Running pass: LCSSAPass -; CHECK-O-NEXT: Finished {{.*}}Function pass manager run -; CHECK-O-NEXT: Starting Loop pass manager run. -; CHECK-O-NEXT: Running pass: IndVarSimplifyPass -; CHECK-O-NEXT: Running pass: LoopIdiomRecognizePass -; CHECK-O-NEXT: Running pass: LoopDeletionPass -; CHECK-O-NEXT: Running pass: LoopFullUnrollPass -; CHECK-O-NEXT: Finished Loop pass manager run. -; CHECK-O-NEXT: Running pass: SROA on foo -; CHECK-Os-NEXT: Running pass: MergedLoadStoreMotionPass -; CHECK-Os-NEXT: Running pass: GVN -; CHECK-Os-NEXT: Running analysis: MemoryDependenceAnalysis -; CHECK-Os-NEXT: Running analysis: PhiValuesAnalysis -; CHECK-Oz-NEXT: Running pass: MergedLoadStoreMotionPass -; CHECK-Oz-NEXT: Running pass: GVN -; CHECK-Oz-NEXT: Running analysis: MemoryDependenceAnalysis -; CHECK-Oz-NEXT: Running analysis: PhiValuesAnalysis -; CHECK-O2-NEXT: Running pass: MergedLoadStoreMotionPass -; CHECK-O2-NEXT: Running pass: GVN -; CHECK-O2-NEXT: Running analysis: MemoryDependenceAnalysis -; CHECK-O2-NEXT: Running analysis: PhiValuesAnalysis -; CHECK-O3-NEXT: Running pass: MergedLoadStoreMotionPass -; CHECK-O3-NEXT: Running pass: GVN -; CHECK-O3-NEXT: Running analysis: MemoryDependenceAnalysis -; CHECK-O3-NEXT: Running analysis: PhiValuesAnalysis -; CHECK-O-NEXT: Running pass: MemCpyOptPass -; CHECK-O1-NEXT: Running analysis: MemoryDependenceAnalysis -; CHECK-O1-NEXT: Running analysis: PhiValuesAnalysis -; CHECK-O-NEXT: Running pass: SCCPPass -; CHECK-O-NEXT: Running pass: BDCEPass -; CHECK-O-NEXT: Running analysis: DemandedBitsAnalysis -; CHECK-O-NEXT: Running pass: InstCombinePass -; CHECK-O23SZ-NEXT: Running pass: JumpThreadingPass -; CHECK-O23SZ-NEXT: Running pass: CorrelatedValuePropagationPass -; CHECK-O23SZ-NEXT: Running pass: DSEPass -; CHECK-O23SZ-NEXT: Running pass: FunctionToLoopPassAdaptor<{{.*}}LICMPass{{.*}}> -; CHECK-O23SZ-NEXT: Starting {{.*}}Function pass manager run -; CHECK-O23SZ-NEXT: Running pass: LoopSimplifyPass -; CHECK-O23SZ-NEXT: Running pass: LCSSAPass -; CHECK-O23SZ-NEXT: Finished {{.*}}Function pass manager run -; CHECK-O-NEXT: Running pass: ADCEPass -; CHECK-O-NEXT: Running analysis: PostDominatorTreeAnalysis -; CHECK-O-NEXT: Running pass: SimplifyCFGPass -; CHECK-O-NEXT: Running pass: InstCombinePass -; CHECK-O3-NEXT: Running pass: ControlHeightReductionPass on foo -; CHECK-O3-NEXT: Running analysis: RegionInfoAnalysis on foo -; CHECK-O3-NEXT: Running analysis: DominanceFrontierAnalysis on foo -; CHECK-O-NEXT: Finished {{.*}}Function pass manager run. -; CHECK-O-NEXT: Finished CGSCC pass manager run. -; CHECK-O-NEXT: Finished {{.*}}Module pass manager run. -; CHECK-O-NEXT: Running pass: GlobalOptPass -; CHECK-O-NEXT: Running analysis: TargetLibraryAnalysis on bar -; CHECK-O-NEXT: Running analysis: PassInstrumentationAnalysis on bar -; CHECK-EXT: Running pass: {{.*}}::Bye -; CHECK-O-NEXT: Finished {{.*}}Module pass manager run. -; CHECK-O-NEXT: Running pass: NameAnonGlobalPass -; CHECK-O-NEXT: Running pass: PrintModulePass - -; Make sure we get the IR back out without changes when we print the module. -; CHECK-O-LABEL: define void @foo(i32 %n) local_unnamed_addr { -; CHECK-O-NEXT: entry: -; CHECK-O-NEXT: br label %loop -; CHECK-O: loop: -; CHECK-O-NEXT: %iv = phi i32 [ 0, %entry ], [ %iv.next, %loop ] -; CHECK-O-NEXT: %iv.next = add i32 %iv, 1 -; CHECK-O-NEXT: tail call void @bar() -; CHECK-O-NEXT: %cmp = icmp eq i32 %iv, %n -; CHECK-O-NEXT: br i1 %cmp, label %exit, label %loop -; CHECK-O: exit: -; CHECK-O-NEXT: ret void -; CHECK-O-NEXT: } -; -; Ignore a bunch of intervening metadata containing profile data. -; -; CHECK-O: Finished {{.*}}Module pass manager run. - -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 -} diff --git a/llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll b/llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll deleted file mode 100644 index 595c0f2..0000000 --- a/llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll +++ /dev/null @@ -1,215 +0,0 @@ -; Validate ThinLTO prelink pipeline when we have Sample PGO -; -; RUN: opt -disable-verify -debug-pass-manager \ -; RUN: -pgo-kind=pgo-sample-use-pipeline -profile-file='%S/Inputs/new-pm-thinlto-samplepgo-defaults.prof' \ -; RUN: -passes='thinlto-pre-link,name-anon-globals' -S %s 2>&1 \ -; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O1,CHECK-O-NODIS,CHECK-O123 -; RUN: opt -disable-verify -debug-pass-manager \ -; RUN: -pgo-kind=pgo-sample-use-pipeline -profile-file='%S/Inputs/new-pm-thinlto-samplepgo-defaults.prof' \ -; RUN: -passes='thinlto-pre-link,name-anon-globals' -S %s 2>&1 \ -; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O2,CHECK-O23SZ,CHECK-O-NODIS,CHECK-O123 -; RUN: opt -disable-verify -debug-pass-manager \ -; RUN: -pgo-kind=pgo-sample-use-pipeline -profile-file='%S/Inputs/new-pm-thinlto-samplepgo-defaults.prof' \ -; RUN: -passes='thinlto-pre-link,name-anon-globals' -S -passes-ep-pipeline-start='no-op-module' %s 2>&1 \ -; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O3,CHECK-O23SZ,CHECK-O-NODIS,CHECK-O123,CHECK-EP-PIPELINE-START -; RUN: opt -disable-verify -debug-pass-manager \ -; RUN: -pgo-kind=pgo-sample-use-pipeline -profile-file='%S/Inputs/new-pm-thinlto-samplepgo-defaults.prof' \ -; RUN: -passes='thinlto-pre-link,name-anon-globals' -S %s 2>&1 \ -; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-Os,CHECK-O23SZ,CHECK-O-NODIS -; RUN: opt -disable-verify -debug-pass-manager \ -; RUN: -pgo-kind=pgo-sample-use-pipeline -profile-file='%S/Inputs/new-pm-thinlto-samplepgo-defaults.prof' \ -; RUN: -passes='thinlto-pre-link,name-anon-globals' -S %s 2>&1 \ -; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-Oz,CHECK-O23SZ,CHECK-O-NODIS -; RUN: opt -disable-verify -debug-pass-manager -new-pm-debug-info-for-profiling \ -; RUN: -pgo-kind=pgo-sample-use-pipeline -profile-file='%S/Inputs/new-pm-thinlto-samplepgo-defaults.prof' \ -; RUN: -passes='thinlto-pre-link,name-anon-globals' -S %s 2>&1 \ -; RUN: | FileCheck %s --check-prefixes=CHECK-DIS,CHECK-O,CHECK-O2,CHECK-O23SZ,CHECK-O123 -; -; CHECK-O: Running analysis: PassInstrumentationAnalysis -; CHECK-O-NEXT: Starting {{.*}}Module pass manager run. -; CHECK-O-NEXT: Running pass: PassManager<{{.*}}Module{{.*}}> -; CHECK-O-NEXT: Starting {{.*}}Module pass manager run. -; CHECK-O-NEXT: Running pass: ForceFunctionAttrsPass -; CHECK-O-NEXT: Running pass: ModuleToFunctionPassAdaptor<{{.*}}AddDiscriminatorsPass> -; CHECK-O-NEXT: Running analysis: InnerAnalysisManagerProxy -; CHECK-EP-PIPELINE-START-NEXT: Running pass: NoOpModulePass -; CHECK-O-NEXT: Running pass: PassManager<{{.*}}Module{{.*}}> -; CHECK-O-NEXT: Starting {{.*}}Module pass manager run. -; CHECK-O-NEXT: Running pass: InferFunctionAttrsPass -; CHECK-O-NEXT: Running analysis: TargetLibraryAnalysis -; CHECK-O-NEXT: Running analysis: PassInstrumentationAnalysis -; CHECK-O-NEXT: Running pass: ModuleToFunctionPassAdaptor<{{.*}}PassManager{{.*}}> -; CHECK-O-NEXT: Running analysis: PassInstrumentationAnalysis -; CHECK-O-NEXT: Starting {{.*}}Function pass manager run. -; CHECK-O-NEXT: Running pass: SimplifyCFGPass -; CHECK-O-NEXT: Running analysis: TargetIRAnalysis -; CHECK-O-NEXT: Running analysis: AssumptionAnalysis -; CHECK-O-NEXT: Running pass: SROA -; CHECK-O-NEXT: Running analysis: DominatorTreeAnalysis -; CHECK-O-NEXT: Running pass: EarlyCSEPass -; CHECK-O-NEXT: Running analysis: TargetLibraryAnalysis -; CHECK-O-NEXT: Running pass: LowerExpectIntrinsicPass -; CHECK-O3-NEXT: Running pass: CallSiteSplittingPass -; CHECK-O-NEXT: Running pass: InstCombinePass on foo -; CHECK-O-NEXT: Running analysis: OptimizationRemarkEmitterAnalysis on foo -; CHECK-O-NEXT: Running analysis: AAManager on foo -; CHECK-O-NEXT: Running analysis: OuterAnalysisManagerProxy -; CHECK-O-NEXT: Finished {{.*}}Function pass manager run. -; CHECK-O-NEXT: Running pass: SampleProfileLoaderPass -; CHECK-O-NEXT: Running analysis: ProfileSummaryAnalysis -; CHECK-O-NEXT: Running analysis: CallGraphAnalysis -; CHECK-O-NEXT: Running pass: RequireAnalysisPass<{{.*}}ProfileSummaryAnalysis -; CHECK-O-NEXT: Running pass: IPSCCPPass -; CHECK-O-NEXT: Running pass: CalledValuePropagationPass -; CHECK-O-NEXT: Running pass: GlobalOptPass -; CHECK-O-NEXT: Running pass: ModuleToFunctionPassAdaptor<{{.*}}PromotePass> -; CHECK-O-NEXT: Running pass: DeadArgumentEliminationPass -; CHECK-O-NEXT: Running pass: ModuleToFunctionPassAdaptor<{{.*}}PassManager{{.*}}> -; CHECK-O-NEXT: Starting {{.*}}Function pass manager run. -; CHECK-O-NEXT: Running pass: InstCombinePass -; CHECK-O-NEXT: Running analysis: BlockFrequencyAnalysis on foo -; These next two can appear in any order since they are accessed as parameters -; on the same call to BlockFrequencyInfo::calculate. -; CHECK-O-DAG: Running analysis: BranchProbabilityAnalysis on foo -; CHECK-O-DAG: Running analysis: LoopAnalysis on foo -; CHECK-O-NEXT: Running pass: SimplifyCFGPass on foo -; CHECK-O-NEXT: Finished {{.*}}Function pass manager run -; CHECK-O-NEXT: Running pass: RequireAnalysisPass<{{.*}}GlobalsAA -; CHECK-O-NEXT: Running analysis: GlobalsAA -; CHECK-O-NEXT: Running pass: RequireAnalysisPass<{{.*}}ProfileSummaryAnalysis -; CHECK-O-NEXT: Running pass: ModuleToPostOrderCGSCCPassAdaptor<{{.*}}LazyCallGraph{{.*}}> -; CHECK-O-NEXT: Running analysis: InnerAnalysisManagerProxy -; CHECK-O-NEXT: Running analysis: LazyCallGraphAnalysis -; CHECK-O-NEXT: Running analysis: FunctionAnalysisManagerCGSCCProxy -; CHECK-O-NEXT: Running analysis: PassInstrumentationAnalysis -; CHECK-O-NEXT: Running analysis: OuterAnalysisManagerProxy<{{.*}}LazyCallGraph::SCC{{.*}}> -; CHECK-O-NEXT: Starting CGSCC pass manager run. -; CHECK-O-NEXT: Running pass: InlinerPass -; CHECK-O-NEXT: Running pass: PostOrderFunctionAttrsPass -; CHECK-O3-NEXT: Running pass: ArgumentPromotionPass -; CHECK-O-NEXT: Running pass: CGSCCToFunctionPassAdaptor<{{.*}}PassManager{{.*}}> -; CHECK-O-NEXT: Starting {{.*}}Function pass manager run. -; CHECK-O-NEXT: Running pass: SROA -; CHECK-O-NEXT: Running pass: EarlyCSEPass -; CHECK-O-NEXT: Running analysis: MemorySSAAnalysis -; CHECK-O23SZ-NEXT: Running pass: SpeculativeExecutionPass -; CHECK-O23SZ-NEXT: Running pass: JumpThreadingPass -; CHECK-O23SZ-NEXT: Running analysis: LazyValueAnalysis -; CHECK-O23SZ-NEXT: Running pass: CorrelatedValuePropagationPass -; CHECK-O-NEXT: Running pass: SimplifyCFGPass -; CHECK-O3-NEXT: Running pass: AggressiveInstCombinePass -; CHECK-O-NEXT: Running pass: InstCombinePass -; CHECK-O1-NEXT: Running pass: LibCallsShrinkWrapPass -; CHECK-O2-NEXT: Running pass: LibCallsShrinkWrapPass -; CHECK-O3-NEXT: Running pass: LibCallsShrinkWrapPass -; CHECK-O23SZ-NEXT: Running pass: TailCallElimPass -; CHECK-O-NEXT: Running pass: SimplifyCFGPass -; CHECK-O-NEXT: Running pass: ReassociatePass -; CHECK-O-NEXT: Running pass: RequireAnalysisPass<{{.*}}OptimizationRemarkEmitterAnalysis -; CHECK-O-NEXT: Running pass: FunctionToLoopPassAdaptor<{{.*}}LoopStandardAnalysisResults{{.*}}> -; CHECK-O-NEXT: Starting {{.*}}Function pass manager run -; CHECK-O-NEXT: Running pass: LoopSimplifyPass -; CHECK-O-NEXT: Running pass: LCSSAPass -; CHECK-O-NEXT: Finished {{.*}}Function pass manager run -; CHECK-O-NEXT: Running analysis: ScalarEvolutionAnalysis -; CHECK-O-NEXT: Running analysis: InnerAnalysisManagerProxy -; CHECK-O-NEXT: Starting Loop pass manager run. -; CHECK-O-NEXT: Running analysis: PassInstrumentationAnalysis -; CHECK-O-NEXT: Running pass: LoopInstSimplifyPass -; CHECK-O-NEXT: Running pass: LoopSimplifyCFGPass -; CHECK-O-NEXT: Running pass: LoopRotatePass -; CHECK-O-NEXT: Running pass: LICM -; CHECK-O-NEXT: Running analysis: OuterAnalysisManagerProxy -; CHECK-O-NEXT: Running pass: SimpleLoopUnswitchPass -; CHECK-O-NEXT: Finished Loop pass manager run. -; CHECK-O-NEXT: Running pass: SimplifyCFGPass -; CHECK-O-NEXT: Running pass: InstCombinePass -; CHECK-O-NEXT: Running pass: FunctionToLoopPassAdaptor<{{.*}}LoopStandardAnalysisResults{{.*}}> -; CHECK-O-NEXT: Starting {{.*}}Function pass manager run -; CHECK-O-NEXT: Running pass: LoopSimplifyPass -; CHECK-O-NEXT: Running pass: LCSSAPass -; CHECK-O-NEXT: Finished {{.*}}Function pass manager run -; CHECK-O-NEXT: Starting Loop pass manager run. -; CHECK-O-NEXT: Running pass: IndVarSimplifyPass -; CHECK-O-NEXT: Running pass: LoopIdiomRecognizePass -; CHECK-O-NEXT: Running pass: LoopDeletionPass -; CHECK-O-NEXT: Finished Loop pass manager run. -; CHECK-O-NEXT: Running pass: SROA on foo -; CHECK-Os-NEXT: Running pass: MergedLoadStoreMotionPass -; CHECK-Os-NEXT: Running pass: GVN -; CHECK-Os-NEXT: Running analysis: MemoryDependenceAnalysis -; CHECK-Os-NEXT: Running analysis: PhiValuesAnalysis -; CHECK-Oz-NEXT: Running pass: MergedLoadStoreMotionPass -; CHECK-Oz-NEXT: Running pass: GVN -; CHECK-Oz-NEXT: Running analysis: MemoryDependenceAnalysis -; CHECK-Oz-NEXT: Running analysis: PhiValuesAnalysis -; CHECK-O2-NEXT: Running pass: MergedLoadStoreMotionPass -; CHECK-O2-NEXT: Running pass: GVN -; CHECK-O2-NEXT: Running analysis: MemoryDependenceAnalysis -; CHECK-O2-NEXT: Running analysis: PhiValuesAnalysis -; CHECK-O3-NEXT: Running pass: MergedLoadStoreMotionPass -; CHECK-O3-NEXT: Running pass: GVN -; CHECK-O3-NEXT: Running analysis: MemoryDependenceAnalysis -; CHECK-O3-NEXT: Running analysis: PhiValuesAnalysis -; CHECK-O-NEXT: Running pass: MemCpyOptPass -; CHECK-O1-NEXT: Running analysis: MemoryDependenceAnalysis -; CHECK-O1-NEXT: Running analysis: PhiValuesAnalysis -; CHECK-O-NEXT: Running pass: SCCPPass -; CHECK-O-NEXT: Running pass: BDCEPass -; CHECK-O-NEXT: Running analysis: DemandedBitsAnalysis -; CHECK-O-NEXT: Running pass: InstCombinePass -; CHECK-O23SZ-NEXT: Running pass: JumpThreadingPass -; CHECK-O23SZ-NEXT: Running pass: CorrelatedValuePropagationPass -; CHECK-O23SZ-NEXT: Running pass: DSEPass -; CHECK-O23SZ-NEXT: Running pass: FunctionToLoopPassAdaptor<{{.*}}LICMPass{{.*}}> -; CHECK-O23SZ-NEXT: Starting {{.*}}Function pass manager run -; CHECK-O23SZ-NEXT: Running pass: LoopSimplifyPass -; CHECK-O23SZ-NEXT: Running pass: LCSSAPass -; CHECK-O23SZ-NEXT: Finished {{.*}}Function pass manager run -; CHECK-O-NEXT: Running pass: ADCEPass -; CHECK-O-NEXT: Running analysis: PostDominatorTreeAnalysis -; CHECK-O-NEXT: Running pass: SimplifyCFGPass -; CHECK-O-NEXT: Running pass: InstCombinePass -; CHECK-O3-NEXT: Running pass: ControlHeightReductionPass on foo -; CHECK-O3-NEXT: Running analysis: RegionInfoAnalysis on foo -; CHECK-O3-NEXT: Running analysis: DominanceFrontierAnalysis on foo -; CHECK-O-NEXT: Finished {{.*}}Function pass manager run. -; CHECK-O-NEXT: Finished CGSCC pass manager run. -; CHECK-O-NEXT: Finished {{.*}}Module pass manager run. -; CHECK-O-NEXT: Running pass: GlobalOptPass -; CHECK-O-NEXT: Finished {{.*}}Module pass manager run. -; CHECK-O-NEXT: Running pass: NameAnonGlobalPass -; CHECK-O-NEXT: Running pass: PrintModulePass - -; Make sure we get the IR back out without changes when we print the module. -; CHECK-O-LABEL: define void @foo(i32 %n) local_unnamed_addr -; CHECK-O-NEXT: entry: -; CHECK-O-NEXT: br label %loop -; CHECK-O: loop: -; CHECK-O-NEXT: %iv = phi i32 [ 0, %entry ], [ %iv.next, %loop ] -; CHECK-O-NEXT: %iv.next = add i32 %iv, 1 -; CHECK-O-NEXT: tail call void @bar() -; CHECK-O-NEXT: %cmp = icmp eq i32 %iv, %n -; CHECK-O-NEXT: br i1 %cmp, label %exit, label %loop -; CHECK-O: exit: -; CHECK-O-NEXT: ret void -; CHECK-O-NEXT: } -; -; Ignore a bunch of intervening metadata containing profile data. -; -; CHECK-O: Finished {{.*}}Module pass manager run. - -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 -} -- 2.7.4