1// RUN: tco %s | FileCheck %s
2// RUN: tco %s --mlir-pass-statistics --mlir-pass-statistics-display=pipeline 2>&1 | FileCheck %s --check-prefix=PASSES
3
4// REQUIRES: asserts
5
6// Check that tco is working with a basic test.
7// Also check the passes in the default pipeline.
8
9func.func @_QQmain() {
10  return
11}
12
13// CHECK: ; ModuleID = 'FIRModule'
14// CHECK-LABEL: define void @_QQmain()
15// CHECK:       ret void
16
17// PASSES: Pass statistics report
18
19// PASSES: CSE
20// PASSES-LABEL: 'func.func' Pipeline
21// PASSES: ArrayValueCopy
22// PASSES: CharacterConversion
23// PASSES: Canonicalizer
24// PASSES: SimplifyRegionLite
25// PASSES: CSE
26
27// PASSES-LABEL: 'func.func' Pipeline
28// PASSES: MemoryAllocationOpt
29// PASSES: Inliner
30// PASSES: CSE
31
32// PASSES-LABEL: 'func.func' Pipeline
33// PASSES: CFGConversion
34// PASSES: SCFToControlFlow
35// PASSES: Canonicalizer
36// PASSES: SimplifyRegionLite
37// PASSES: CSE
38// PASSES: BoxedProcedurePass
39
40// PASSES-LABEL: 'func.func' Pipeline
41// PASSES: AbstractResultOpt
42// PASSES: CodeGenRewrite
43// PASSES: TargetRewrite
44// PASSES: FIRToLLVMLowering
45// PASSES: LLVMIRLoweringPass
46