77 lines · plain
1! Test the MLIR pass pipeline2 3! RUN: bbc --mlir-pass-statistics --mlir-pass-statistics-display=pipeline %s 2>&1 | FileCheck %s4 5! REQUIRES: asserts6 7end program8 9! CHECK: Pass statistics report10 11! CHECK: Fortran::lower::VerifierPass12! CHECK-NEXT: CSE13! Ideally, we need an output with only the pass names, but14! there is currently no way to get that, so in order to15! guarantee that the passes are in the expected order16! (i.e. use -NEXT) we have to check the statistics output as well.17! CHECK-NEXT: (S) 0 num-cse'd - Number of operations CSE'd18! CHECK-NEXT: (S) 0 num-dce'd - Number of operations DCE'd19 20! CHECK-NEXT: Pipeline Collection : ['fir.global', 'func.func', 'omp.declare_reduction', 'omp.private']21! CHECK-NEXT: 'fir.global' Pipeline22! CHECK-NEXT: CharacterConversion23! CHECK-NEXT: 'func.func' Pipeline24! CHECK-NEXT: ArrayValueCopy25! CHECK-NEXT: CharacterConversion26! CHECK-NEXT: 'omp.declare_reduction' Pipeline27! CHECK-NEXT: CharacterConversion28! CHECK-NEXT: 'omp.private' Pipeline29! CHECK-NEXT: CharacterConversion30 31! CHECK-NEXT: Canonicalizer32! CHECK-NEXT: SimplifyRegionLite33! CHECK-NEXT: SimplifyIntrinsics34! CHECK-NEXT: AlgebraicSimplification35! CHECK-NEXT: CSE36! CHECK-NEXT: (S) 0 num-cse'd - Number of operations CSE'd37! CHECK-NEXT: (S) 0 num-dce'd - Number of operations DCE'd38 39! CHECK-NEXT: 'func.func' Pipeline40! CHECK-NEXT: MemoryAllocationOpt41 42! CHECK-NEXT: Inliner43! CHECK-NEXT: SimplifyRegionLite44! CHECK-NEXT: CSE45! CHECK-NEXT: (S) 0 num-cse'd - Number of operations CSE'd46! CHECK-NEXT: (S) 0 num-dce'd - Number of operations DCE'd47 48! CHECK-NEXT: PolymorphicOpConversion49! CHECK-NEXT: AssumedRankOpConversion50! CHECK-NEXT: 'func.func' Pipeline51! CHECK-NEXT: OptimizeArrayRepacking52! CHECK-NEXT: LowerRepackArraysPass53! CHECK-NEXT: SimplifyFIROperations54 55! CHECK-NEXT: Pipeline Collection : ['fir.global', 'func.func', 'omp.declare_reduction', 'omp.private']56! CHECK-NEXT: 'fir.global' Pipeline57! CHECK-NEXT: StackReclaim58! CHECK-NEXT: CFGConversion59! CHECK-NEXT: 'func.func' Pipeline60! CHECK-NEXT: StackReclaim61! CHECK-NEXT: CFGConversion62! CHECK-NEXT: 'omp.declare_reduction' Pipeline63! CHECK-NEXT: StackReclaim64! CHECK-NEXT: CFGConversion65! CHECK-NEXT: 'omp.private' Pipeline66! CHECK-NEXT: StackReclaim67! CHECK-NEXT: CFGConversion68 69! CHECK-NEXT: SCFToControlFlow70! CHECK-NEXT: Canonicalizer71! CHECK-NEXT: SimplifyRegionLite72! CHECK-NEXT: ConvertComplexPow73! CHECK-NEXT: CSE74! CHECK-NEXT: (S) 0 num-cse'd - Number of operations CSE'd75! CHECK-NEXT: (S) 0 num-dce'd - Number of operations DCE'd76! CHECK-NOT: LLVMIRLoweringPass77