1 ; RUN: opt -disable-output -debug-pass-manager \ 2 ; RUN: -passes=no-op-module,no-op-module %s 2>&1 \ 3 ; RUN: | FileCheck %s --check-prefix=CHECK-TWO-NOOP-MP 4 ; CHECK-TWO-NOOP-MP: Starting module pass manager 5 ; CHECK-TWO-NOOP-MP: Running module pass: NoOpModulePass 6 ; CHECK-TWO-NOOP-MP: Running module pass: NoOpModulePass 7 ; CHECK-TWO-NOOP-MP: Finished module pass manager 8 9 ; RUN: opt -disable-output -debug-pass-manager \ 10 ; RUN: -passes='module(no-op-module,no-op-module)' %s 2>&1 \ 11 ; RUN: | FileCheck %s --check-prefix=CHECK-NESTED-TWO-NOOP-MP 12 ; CHECK-NESTED-TWO-NOOP-MP: Starting module pass manager 13 ; CHECK-NESTED-TWO-NOOP-MP: Running module pass: ModulePassManager 14 ; CHECK-NESTED-TWO-NOOP-MP: Starting module pass manager 15 ; CHECK-NESTED-TWO-NOOP-MP: Running module pass: NoOpModulePass 16 ; CHECK-NESTED-TWO-NOOP-MP: Running module pass: NoOpModulePass 17 ; CHECK-NESTED-TWO-NOOP-MP: Finished module pass manager 18 ; CHECK-NESTED-TWO-NOOP-MP: Finished module pass manager 19 20 ; RUN: opt -disable-output -debug-pass-manager \ 21 ; RUN: -passes=no-op-function,no-op-function %s 2>&1 \ 22 ; RUN: | FileCheck %s --check-prefix=CHECK-TWO-NOOP-FP 23 ; CHECK-TWO-NOOP-FP: Starting module pass manager 24 ; CHECK-TWO-NOOP-FP: Running module pass: ModuleToFunctionPassAdaptor 25 ; CHECK-TWO-NOOP-FP: Starting function pass manager 26 ; CHECK-TWO-NOOP-FP: Running function pass: NoOpFunctionPass 27 ; CHECK-TWO-NOOP-FP: Running function pass: NoOpFunctionPass 28 ; CHECK-TWO-NOOP-FP: Finished function pass manager 29 ; CHECK-TWO-NOOP-FP: Finished module pass manager 30 31 ; RUN: opt -disable-output -debug-pass-manager \ 32 ; RUN: -passes='function(no-op-function,no-op-function)' %s 2>&1 \ 33 ; RUN: | FileCheck %s --check-prefix=CHECK-NESTED-TWO-NOOP-FP 34 ; CHECK-NESTED-TWO-NOOP-FP: Starting module pass manager 35 ; CHECK-NESTED-TWO-NOOP-FP: Running module pass: ModuleToFunctionPassAdaptor 36 ; CHECK-NESTED-TWO-NOOP-FP: Starting function pass manager 37 ; CHECK-NESTED-TWO-NOOP-FP: Running function pass: FunctionPassManager 38 ; CHECK-NESTED-TWO-NOOP-FP: Starting function pass manager 39 ; CHECK-NESTED-TWO-NOOP-FP: Running function pass: NoOpFunctionPass 40 ; CHECK-NESTED-TWO-NOOP-FP: Running function pass: NoOpFunctionPass 41 ; CHECK-NESTED-TWO-NOOP-FP: Finished function pass manager 42 ; CHECK-NESTED-TWO-NOOP-FP: Finished function pass manager 43 ; CHECK-NESTED-TWO-NOOP-FP: Finished module pass manager 44 45 ; RUN: opt -disable-output -debug-pass-manager \ 46 ; RUN: -passes='no-op-module,function(no-op-function,no-op-function),no-op-module' %s 2>&1 \ 47 ; RUN: | FileCheck %s --check-prefix=CHECK-MIXED-FP-AND-MP 48 ; CHECK-MIXED-FP-AND-MP: Starting module pass manager 49 ; CHECK-MIXED-FP-AND-MP: Running module pass: NoOpModulePass 50 ; CHECK-MIXED-FP-AND-MP: Running module pass: ModuleToFunctionPassAdaptor 51 ; CHECK-MIXED-FP-AND-MP: Starting function pass manager 52 ; CHECK-MIXED-FP-AND-MP: Running function pass: NoOpFunctionPass 53 ; CHECK-MIXED-FP-AND-MP: Running function pass: NoOpFunctionPass 54 ; CHECK-MIXED-FP-AND-MP: Finished function pass manager 55 ; CHECK-MIXED-FP-AND-MP: Running module pass: NoOpModulePass 56 ; CHECK-MIXED-FP-AND-MP: Finished module pass manager 57 58 ; RUN: not opt -disable-output -debug-pass-manager \ 59 ; RUN: -passes='no-op-module)' %s 2>&1 \ 60 ; RUN: | FileCheck %s --check-prefix=CHECK-UNBALANCED1 61 ; CHECK-UNBALANCED1: unable to parse pass pipeline description 62 63 ; RUN: not opt -disable-output -debug-pass-manager \ 64 ; RUN: -passes='module(no-op-module))' %s 2>&1 \ 65 ; RUN: | FileCheck %s --check-prefix=CHECK-UNBALANCED2 66 ; CHECK-UNBALANCED2: unable to parse pass pipeline description 67 68 ; RUN: not opt -disable-output -debug-pass-manager \ 69 ; RUN: -passes='module(no-op-module' %s 2>&1 \ 70 ; RUN: | FileCheck %s --check-prefix=CHECK-UNBALANCED3 71 ; CHECK-UNBALANCED3: unable to parse pass pipeline description 72 73 ; RUN: not opt -disable-output -debug-pass-manager \ 74 ; RUN: -passes='no-op-function)' %s 2>&1 \ 75 ; RUN: | FileCheck %s --check-prefix=CHECK-UNBALANCED4 76 ; CHECK-UNBALANCED4: unable to parse pass pipeline description 77 78 ; RUN: not opt -disable-output -debug-pass-manager \ 79 ; RUN: -passes='function(no-op-function))' %s 2>&1 \ 80 ; RUN: | FileCheck %s --check-prefix=CHECK-UNBALANCED5 81 ; CHECK-UNBALANCED5: unable to parse pass pipeline description 82 83 ; RUN: not opt -disable-output -debug-pass-manager \ 84 ; RUN: -passes='function(function(no-op-function)))' %s 2>&1 \ 85 ; RUN: | FileCheck %s --check-prefix=CHECK-UNBALANCED6 86 ; CHECK-UNBALANCED6: unable to parse pass pipeline description 87 88 ; RUN: not opt -disable-output -debug-pass-manager \ 89 ; RUN: -passes='function(no-op-function' %s 2>&1 \ 90 ; RUN: | FileCheck %s --check-prefix=CHECK-UNBALANCED7 91 ; CHECK-UNBALANCED7: unable to parse pass pipeline description 92 93 ; RUN: not opt -disable-output -debug-pass-manager \ 94 ; RUN: -passes='function(function(no-op-function)' %s 2>&1 \ 95 ; RUN: | FileCheck %s --check-prefix=CHECK-UNBALANCED8 96 ; CHECK-UNBALANCED8: unable to parse pass pipeline description 97 98 ; RUN: not opt -disable-output -debug-pass-manager \ 99 ; RUN: -passes='no-op-module,)' %s 2>&1 \ 100 ; RUN: | FileCheck %s --check-prefix=CHECK-UNBALANCED9 101 ; CHECK-UNBALANCED9: unable to parse pass pipeline description 102 103 ; RUN: not opt -disable-output -debug-pass-manager \ 104 ; RUN: -passes='no-op-function,)' %s 2>&1 \ 105 ; RUN: | FileCheck %s --check-prefix=CHECK-UNBALANCED10 106 ; CHECK-UNBALANCED10: unable to parse pass pipeline description 107 108 ; RUN: opt -disable-output -debug-pass-manager -debug-cgscc-pass-manager \ 109 ; RUN: -passes=no-op-cgscc,no-op-cgscc %s 2>&1 \ 110 ; RUN: | FileCheck %s --check-prefix=CHECK-TWO-NOOP-CG 111 ; CHECK-TWO-NOOP-CG: Starting module pass manager 112 ; CHECK-TWO-NOOP-CG: Running module pass: ModuleToPostOrderCGSCCPassAdaptor 113 ; CHECK-TWO-NOOP-CG: Starting CGSCC pass manager 114 ; CHECK-TWO-NOOP-CG: Running CGSCC pass: NoOpCGSCCPass 115 ; CHECK-TWO-NOOP-CG: Running CGSCC pass: NoOpCGSCCPass 116 ; CHECK-TWO-NOOP-CG: Finished CGSCC pass manager 117 ; CHECK-TWO-NOOP-CG: Finished module pass manager 118 119 ; RUN: opt -disable-output -debug-pass-manager -debug-cgscc-pass-manager \ 120 ; RUN: -passes='module(function(no-op-function),cgscc(no-op-cgscc,function(no-op-function),no-op-cgscc),function(no-op-function))' %s 2>&1 \ 121 ; RUN: | FileCheck %s --check-prefix=CHECK-NESTED-MP-CG-FP 122 ; CHECK-NESTED-MP-CG-FP: Starting module pass manager 123 ; CHECK-NESTED-MP-CG-FP: Starting module pass manager 124 ; CHECK-NESTED-MP-CG-FP: Running module pass: ModuleToFunctionPassAdaptor 125 ; CHECK-NESTED-MP-CG-FP: Starting function pass manager 126 ; CHECK-NESTED-MP-CG-FP: Running function pass: NoOpFunctionPass 127 ; CHECK-NESTED-MP-CG-FP: Finished function pass manager 128 ; CHECK-NESTED-MP-CG-FP: Running module pass: ModuleToPostOrderCGSCCPassAdaptor 129 ; CHECK-NESTED-MP-CG-FP: Starting CGSCC pass manager 130 ; CHECK-NESTED-MP-CG-FP: Running CGSCC pass: NoOpCGSCCPass 131 ; CHECK-NESTED-MP-CG-FP: Running CGSCC pass: CGSCCToFunctionPassAdaptor 132 ; CHECK-NESTED-MP-CG-FP: Starting function pass manager 133 ; CHECK-NESTED-MP-CG-FP: Running function pass: NoOpFunctionPass 134 ; CHECK-NESTED-MP-CG-FP: Finished function pass manager 135 ; CHECK-NESTED-MP-CG-FP: Running CGSCC pass: NoOpCGSCCPass 136 ; CHECK-NESTED-MP-CG-FP: Finished CGSCC pass manager 137 ; CHECK-NESTED-MP-CG-FP: Running module pass: ModuleToFunctionPassAdaptor 138 ; CHECK-NESTED-MP-CG-FP: Starting function pass manager 139 ; CHECK-NESTED-MP-CG-FP: Running function pass: NoOpFunctionPass 140 ; CHECK-NESTED-MP-CG-FP: Finished function pass manager 141 ; CHECK-NESTED-MP-CG-FP: Finished module pass manager 142 ; CHECK-NESTED-MP-CG-FP: Finished module pass manager 143 144 define void @f() { 145 ret void 146 } 147