1// RUN: mlir-opt %s -mlir-disable-threading=true -verify-each=true -pass-pipeline='func(cse,canonicalize,cse)' -pass-timing -pass-timing-display=list 2>&1 | FileCheck -check-prefix=LIST %s 2// RUN: mlir-opt %s -mlir-disable-threading=true -verify-each=true -pass-pipeline='func(cse,canonicalize,cse)' -pass-timing -pass-timing-display=pipeline 2>&1 | FileCheck -check-prefix=PIPELINE %s 3// RUN: mlir-opt %s -mlir-disable-threading=false -verify-each=true -pass-pipeline='func(cse,canonicalize,cse)' -pass-timing -pass-timing-display=list 2>&1 | FileCheck -check-prefix=MT_LIST %s 4// RUN: mlir-opt %s -mlir-disable-threading=false -verify-each=true -pass-pipeline='func(cse,canonicalize,cse)' -pass-timing -pass-timing-display=pipeline 2>&1 | FileCheck -check-prefix=MT_PIPELINE %s 5// RUN: mlir-opt %s -mlir-disable-threading=false -verify-each=false -test-pm-nested-pipeline -pass-timing -pass-timing-display=pipeline 2>&1 | FileCheck -check-prefix=NESTED_MT_PIPELINE %s 6 7// LIST: Pass execution timing report 8// LIST: Total Execution Time: 9// LIST: Name 10// LIST-DAG: Canonicalizer 11// LIST-DAG: CSE 12// LIST-DAG: DominanceInfo 13// LIST: Total 14 15// PIPELINE: Pass execution timing report 16// PIPELINE: Total Execution Time: 17// PIPELINE: Name 18// PIPELINE-NEXT: 'func' Pipeline 19// PIPELINE-NEXT: CSE 20// PIPELINE-NEXT: (A) DominanceInfo 21// PIPELINE-NEXT: Canonicalizer 22// PIPELINE-NEXT: CSE 23// PIPELINE-NEXT: (A) DominanceInfo 24// PIPELINE-NEXT: Total 25 26// MT_LIST: Pass execution timing report 27// MT_LIST: Total Execution Time: 28// MT_LIST: Name 29// MT_LIST-DAG: Canonicalizer 30// MT_LIST-DAG: CSE 31// MT_LIST-DAG: DominanceInfo 32// MT_LIST: Total 33 34// MT_PIPELINE: Pass execution timing report 35// MT_PIPELINE: Total Execution Time: 36// MT_PIPELINE: Name 37// MT_PIPELINE-NEXT: 'func' Pipeline 38// MT_PIPELINE-NEXT: CSE 39// MT_PIPELINE-NEXT: (A) DominanceInfo 40// MT_PIPELINE-NEXT: Canonicalizer 41// MT_PIPELINE-NEXT: CSE 42// MT_PIPELINE-NEXT: (A) DominanceInfo 43// MT_PIPELINE-NEXT: Total 44 45// NESTED_MT_PIPELINE: Pass execution timing report 46// NESTED_MT_PIPELINE: Total Execution Time: 47// NESTED_MT_PIPELINE: Name 48// NESTED_MT_PIPELINE-NEXT: Pipeline Collection : ['func', 'module'] 49// NESTED_MT_PIPELINE-NEXT: 'func' Pipeline 50// NESTED_MT_PIPELINE-NEXT: TestFunctionPass 51// NESTED_MT_PIPELINE-NEXT: 'module' Pipeline 52// NESTED_MT_PIPELINE-NEXT: TestModulePass 53// NESTED_MT_PIPELINE-NEXT: 'func' Pipeline 54// NESTED_MT_PIPELINE-NEXT: TestFunctionPass 55// NESTED_MT_PIPELINE-NEXT: Total 56 57func @foo() { 58 return 59} 60 61func @bar() { 62 return 63} 64 65func @baz() { 66 return 67} 68 69func @foobar() { 70 return 71} 72 73module { 74 func @baz() { 75 return 76 } 77 78 func @foobar() { 79 return 80 } 81} 82