92 lines · plain
1; RUN: opt < %s -disable-output -passes='default<O2>' -time-passes 2>&1 | FileCheck %s --check-prefix=TIME2;3; For new pass manager, check that -time-passes-per-run emit one report for each pass run.4; RUN: opt < %s -disable-output -passes='coro-cleanup,function(instcombine,instcombine,loop-mssa(licm))' -time-passes-per-run 2>&1 | FileCheck %s --check-prefix=TIME --check-prefix=TIME-PER-RUN --check-prefix=TIME-PER-RUN-CORO5; RUN: opt < %s -disable-output -passes='instcombine,loop-mssa(licm),instcombine,loop-mssa(licm)' -time-passes-per-run 2>&1 | FileCheck %s --check-prefix=TIME --check-prefix=TIME-PER-RUN -check-prefix=TIME-DOUBLE-LICM6;7; For new pass manager, check that -time-passes emit one report for each pass.8; RUN: opt < %s -disable-output -passes='coro-cleanup,function(instcombine,instcombine,loop-mssa(licm))' -time-passes 2>&1 | FileCheck %s --check-prefixes=TIME,TIME-PER-PASS,TIME-PER-PASS-CORO9; RUN: opt < %s -disable-output -passes='instcombine,loop-mssa(licm),instcombine,loop-mssa(licm)' -time-passes 2>&1 | FileCheck %s --check-prefixes=TIME,TIME-PER-PASS10;11; The following 2 test runs verify -info-output-file interaction (default goes to stderr, '-' goes to stdout).12; RUN: opt < %s -disable-output -passes='default<O2>' -time-passes -info-output-file='-' 2>/dev/null | FileCheck %s --check-prefix=TIME13;14; RUN: rm -f %t; opt < %s -disable-output -passes='default<O2>' -time-passes -info-output-file=%t15; RUN: cat %t | FileCheck %s --check-prefix=TIME16;17; TIME: Analysis execution timing report18; TIME: Total Execution Time:19; TIME: Name20; TIME-PER-RUN-DAG: ScalarEvolutionAnalysis21; TIME-PER-RUN-DAG: LoopAnalysis22; TIME-PER-RUN-DAG: DominatorTreeAnalysis23; TIME-PER-RUN-DAG: TargetLibraryAnalysis24; TIME-PER-PASS-DAG: ScalarEvolutionAnalysis25; TIME-PER-PASS-DAG: LoopAnalysis26; TIME-PER-PASS-DAG: DominatorTreeAnalysis27; TIME-PER-PASS-DAG: TargetLibraryAnalysis28; TIME-PER-PASS-NOT: ScalarEvolutionAnalysis #29; TIME-PER-PASS-NOT: LoopAnalysis #30; TIME-PER-PASS-NOT: DominatorTreeAnalysis #31; TIME-PER-PASS-NOT: TargetLibraryAnalysis #32; TIME: Total{{$}}33 34; TIME: Pass execution timing report35; TIME: Total Execution Time:36; TIME: Name37; TIME-PER-RUN-DAG: InstCombinePass #138; TIME-PER-RUN-DAG: InstCombinePass #239; TIME-PER-RUN-DAG: InstCombinePass #340; TIME-PER-RUN-DAG: InstCombinePass #441; TIME-PER-RUN-DAG: LICMPass #142; TIME-PER-RUN-DAG: LICMPass #243; TIME-PER-RUN-DAG: LICMPass #344; TIME-DOUBLE-LICM-DAG: LICMPass #445; TIME-DOUBLE-LICM-DAG: LICMPass #546; TIME-DOUBLE-LICM-DAG: LICMPass #647; TIME-PER-RUN-DAG: LCSSAPass48; TIME-PER-RUN-DAG: LoopSimplifyPass49; TIME-PER-RUN-DAG: VerifierPass50; TIME-PER-RUN-CORO-DAG: SimplifyCFGPass #151; TIME-PER-RUN-CORO-DAG: CoroCleanupPass #152; TIME-PER-PASS-DAG: InstCombinePass53; TIME-PER-PASS-DAG: LICMPass54; TIME-PER-PASS-DAG: LCSSAPass55; TIME-PER-PASS-DAG: LoopSimplifyPass56; TIME-PER-PASS-DAG: VerifierPass57; TIME-PER-PASS-CORO-DAG: SimplifyCFGPass58; TIME-PER-PASS-CORO-DAG: CoroCleanupPass59; TIME-PER-PASS-NOT: InstCombinePass #60; TIME-PER-PASS-NOT: LICMPass #61; TIME-PER-PASS-NOT: LCSSAPass #62; TIME-PER-PASS-NOT: LoopSimplifyPass #63; TIME-PER-PASS-NOT: VerifierPass #64; TIME: Total{{$}}65 66define i32 @foo() {67 %res = add i32 5, 468 br label %loop169loop1:70 br i1 false, label %loop1, label %end71end:72 ret i32 %res73}74 75define void @bar_with_loops() {76 br label %loop177loop1:78 br i1 false, label %loop1, label %loop279loop2:80 br i1 true, label %loop2, label %end81end:82 ret void83 84}85 86define void @baz_coro() {87 %unused = call ptr @llvm.coro.begin(token none, ptr null)88 ret void89}90 91declare ptr @llvm.coro.begin(token, ptr)92