1; FIXME: This test should use CHECK-NEXT to keep up-to-date. 2; REQUIRES: x86-registered-target 3 4; Validate ThinLTO post link pipeline at O2 and O3 5 6; RUN: opt -thinlto-bc -o %t.o %s 7 8; RUN: llvm-lto2 run -thinlto-distributed-indexes %t.o \ 9; RUN: -o %t2.index \ 10; RUN: -r=%t.o,main,px 11 12; RUN: %clang -target x86_64-grtev4-linux-gnu \ 13; RUN: -O2 -fexperimental-new-pass-manager -Xclang -fdebug-pass-manager \ 14; RUN: -c -fthinlto-index=%t.o.thinlto.bc \ 15; RUN: -o %t.native.o -x ir %t.o 2>&1 | FileCheck -check-prefix=CHECK-O %s --dump-input=fail 16 17; RUN: %clang -target x86_64-grtev4-linux-gnu \ 18; RUN: -O3 -fexperimental-new-pass-manager -Xclang -fdebug-pass-manager \ 19; RUN: -c -fthinlto-index=%t.o.thinlto.bc \ 20; RUN: -o %t.native.o -x ir %t.o 2>&1 | FileCheck -check-prefixes=CHECK-O,CHECK-O3 %s --dump-input=fail 21 22; CHECK-O: Running pass: WholeProgramDevirtPass 23; CHECK-O: Running pass: LowerTypeTestsPass 24; CHECK-O: Running pass: ForceFunctionAttrsPass 25; CHECK-O: Running pass: PGOIndirectCallPromotion 26; CHECK-O: Running pass: InferFunctionAttrsPass 27; CHECK-O: Running pass: LowerExpectIntrinsicPass on main 28; CHECK-O: Running pass: SimplifyCFGPass on main 29; CHECK-O: Running pass: SROAPass on main 30; CHECK-O: Running pass: EarlyCSEPass on main 31; CHECK-O3: Running pass: CallSiteSplittingPass on main 32; CHECK-O: Running pass: LowerTypeTestsPass 33; CHECK-O: Running pass: IPSCCPPass 34; CHECK-O: Running pass: CalledValuePropagationPass 35; CHECK-O: Running pass: GlobalOptPass 36; CHECK-O: Running pass: PromotePass 37; CHECK-O: Running pass: DeadArgumentEliminationPass 38; CHECK-O: Running pass: InstCombinePass on main 39; CHECK-O: Running pass: SimplifyCFGPass on main 40; CHECK-O: Running pass: InlinerPass on (main) 41; CHECK-O: Running pass: PostOrderFunctionAttrsPass on (main) 42; CHECK-O3: Running pass: ArgumentPromotionPass on (main) 43; CHECK-O: Running pass: SROAPass on main 44; CHECK-O: Running pass: EarlyCSEPass on main 45; CHECK-O: Running pass: SpeculativeExecutionPass on main 46; CHECK-O: Running pass: JumpThreadingPass on main 47; CHECK-O: Running pass: CorrelatedValuePropagationPass on main 48; CHECK-O: Running pass: SimplifyCFGPass on main 49; CHECK-O: Running pass: InstCombinePass on main 50; CHECK-O3: Running pass: AggressiveInstCombinePass on main 51; CHECK-O: Running pass: LibCallsShrinkWrapPass on main 52; CHECK-O: Running pass: TailCallElimPass on main 53; CHECK-O: Running pass: SimplifyCFGPass on main 54; CHECK-O: Running pass: ReassociatePass on main 55; CHECK-O: Running pass: RequireAnalysisPass<{{.*}}OptimizationRemarkEmitterAnalysis 56; CHECK-O: Running pass: LoopSimplifyPass on main 57; CHECK-O: Running pass: LCSSAPass on main 58; CHECK-O: Running pass: SimplifyCFGPass on main 59; CHECK-O: Running pass: InstCombinePass on main 60; CHECK-O: Running pass: LoopSimplifyPass on main 61; CHECK-O: Running pass: LCSSAPass on main 62; CHECK-O: Running pass: SROAPass on main 63; CHECK-O: Running pass: MergedLoadStoreMotionPass on main 64; CHECK-O: Running pass: GVNPass on main 65; CHECK-O: Running pass: SCCPPass on main 66; CHECK-O: Running pass: BDCEPass on main 67; CHECK-O: Running pass: InstCombinePass on main 68; CHECK-O: Running pass: JumpThreadingPass on main 69; CHECK-O: Running pass: CorrelatedValuePropagationPass on main 70; CHECK-O: Running pass: ADCEPass on main 71; CHECK-O: Running pass: MemCpyOptPass on main 72; CHECK-O: Running pass: DSEPass on main 73; CHECK-O: Running pass: LoopSimplifyPass on main 74; CHECK-O: Running pass: LCSSAPass on main 75; CHECK-O: Running pass: SimplifyCFGPass on main 76; CHECK-O: Running pass: InstCombinePass on main 77; CHECK-O: Running pass: GlobalOptPass 78; CHECK-O: Running pass: GlobalDCEPass 79; CHECK-O: Running pass: EliminateAvailableExternallyPass 80; CHECK-O: Running pass: ReversePostOrderFunctionAttrsPass 81; CHECK-O: Running pass: RequireAnalysisPass<{{.*}}GlobalsAA 82; CHECK-O: Running pass: Float2IntPass on main 83; CHECK-O: Running pass: LowerConstantIntrinsicsPass on main 84; CHECK-O: Running pass: LoopSimplifyPass on main 85; CHECK-O: Running pass: LCSSAPass on main 86; CHECK-O: Running pass: LoopRotatePass on Loop at depth 1 containing: %b 87; CHECK-O: Running pass: LoopDistributePass on main 88; CHECK-O: Running pass: InjectTLIMappings on main 89; CHECK-O: Running pass: LoopVectorizePass on main 90; CHECK-O: Running pass: LoopLoadEliminationPass on main 91; CHECK-O: Running pass: InstCombinePass on main 92; CHECK-O: Running pass: SimplifyCFGPass on main 93; CHECK-O: Running pass: SLPVectorizerPass on main 94; CHECK-O: Running pass: VectorCombinePass on main 95; CHECK-O: Running pass: InstCombinePass on main 96; CHECK-O: Running pass: LoopUnrollPass on main 97; CHECK-O: Running pass: WarnMissedTransformationsPass on main 98; CHECK-O: Running pass: InstCombinePass on main 99; CHECK-O: Running pass: RequireAnalysisPass<{{.*}}OptimizationRemarkEmitterAnalysis 100; CHECK-O: Running pass: LoopSimplifyPass on main 101; CHECK-O: Running pass: LCSSAPass on main 102; CHECK-O: Running pass: LICMPass on Loop at depth 1 containing: %b 103; CHECK-O: Running pass: AlignmentFromAssumptionsPass on main 104; CHECK-O: Running pass: LoopSinkPass on main 105; CHECK-O: Running pass: InstSimplifyPass on main 106; CHECK-O: Running pass: DivRemPairsPass on main 107; CHECK-O: Running pass: SimplifyCFGPass on main 108; CHECK-O: Running pass: CGProfilePass 109; CHECK-O: Running pass: GlobalDCEPass 110; CHECK-O: Running pass: ConstantMergePass 111 112target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" 113target triple = "x86_64-grtev4-linux-gnu" 114 115define i32 @main() { 116 br label %b 117b: 118 br label %b 119 ret i32 0 120} 121