; RUN: opt < %s -disable-output -passes='default<O2>' -time-passes 2>&1 | FileCheck %s --check-prefix=TIME
;
; For new pass manager, check that -time-passes-per-run emit one report for each pass run.
; 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-CORO
; 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-LICM
;
; For new pass manager, check that -time-passes emit one report for each pass.
; 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-CORO
; 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-PASS
;
; The following 2 test runs verify -info-output-file interaction (default goes to stderr, '-' goes to stdout).
; RUN: opt < %s -disable-output -passes='default<O2>' -time-passes -info-output-file='-' 2>/dev/null | FileCheck %s --check-prefix=TIME
;
; RUN: rm -f %t; opt < %s -disable-output -passes='default<O2>' -time-passes -info-output-file=%t
; RUN:   cat %t | FileCheck %s --check-prefix=TIME
;
; TIME: Analysis execution timing report
; TIME: Total Execution Time:
; TIME: Name
; TIME-PER-RUN-DAG:      ScalarEvolutionAnalysis
; TIME-PER-RUN-DAG:      LoopAnalysis
; TIME-PER-RUN-DAG:      DominatorTreeAnalysis
; TIME-PER-RUN-DAG:      TargetLibraryAnalysis
; TIME-PER-PASS-DAG:   ScalarEvolutionAnalysis
; TIME-PER-PASS-DAG:   LoopAnalysis
; TIME-PER-PASS-DAG:   DominatorTreeAnalysis
; TIME-PER-PASS-DAG:   TargetLibraryAnalysis
; TIME-PER-PASS-NOT:   ScalarEvolutionAnalysis #
; TIME-PER-PASS-NOT:   LoopAnalysis #
; TIME-PER-PASS-NOT:   DominatorTreeAnalysis #
; TIME-PER-PASS-NOT:   TargetLibraryAnalysis #
; TIME: Total{{$}}

; TIME: Pass execution timing report
; TIME: Total Execution Time:
; TIME: Name
; TIME-PER-RUN-DAG:      InstCombinePass #1
; TIME-PER-RUN-DAG:      InstCombinePass #2
; TIME-PER-RUN-DAG:      InstCombinePass #3
; TIME-PER-RUN-DAG:      InstCombinePass #4
; TIME-PER-RUN-DAG:      LICMPass #1
; TIME-PER-RUN-DAG:      LICMPass #2
; TIME-PER-RUN-DAG:      LICMPass #3
; TIME-DOUBLE-LICM-DAG:      LICMPass #4
; TIME-DOUBLE-LICM-DAG:      LICMPass #5
; TIME-DOUBLE-LICM-DAG:      LICMPass #6
; TIME-PER-RUN-DAG:      LCSSAPass
; TIME-PER-RUN-DAG:      LoopSimplifyPass
; TIME-PER-RUN-DAG:      VerifierPass
; TIME-PER-RUN-CORO-DAG:     SimplifyCFGPass #1
; TIME-PER-RUN-CORO-DAG:     CoroCleanupPass #1
; TIME-PER-PASS-DAG:   InstCombinePass
; TIME-PER-PASS-DAG:   LICMPass
; TIME-PER-PASS-DAG:   LCSSAPass
; TIME-PER-PASS-DAG:   LoopSimplifyPass
; TIME-PER-PASS-DAG:   VerifierPass
; TIME-PER-PASS-CORO-DAG:    SimplifyCFGPass
; TIME-PER-PASS-CORO-DAG:    CoroCleanupPass
; TIME-PER-PASS-NOT:   InstCombinePass #
; TIME-PER-PASS-NOT:   LICMPass #
; TIME-PER-PASS-NOT:   LCSSAPass #
; TIME-PER-PASS-NOT:   LoopSimplifyPass #
; TIME-PER-PASS-NOT:   VerifierPass #
; TIME: Total{{$}}

define i32 @foo() {
  %res = add i32 5, 4
  br label %loop1
loop1:
  br i1 false, label %loop1, label %end
end:
  ret i32 %res
}

define void @bar_with_loops() {
  br label %loop1
loop1:
  br i1 false, label %loop1, label %loop2
loop2:
  br i1 true, label %loop2, label %end
end:
  ret void

}

define void @baz_coro() {
  %unused = call ptr @llvm.coro.begin(token none, ptr null)
  ret void
}

declare ptr @llvm.coro.begin(token, ptr)
