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 llvm::Module pass manager run 5 ; CHECK-TWO-NOOP-MP: Running pass: NoOpModulePass 6 ; CHECK-TWO-NOOP-MP: Running pass: NoOpModulePass 7 ; CHECK-TWO-NOOP-MP: Finished llvm::Module pass manager run 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 llvm::Module pass manager run 13 ; CHECK-NESTED-TWO-NOOP-MP: Starting llvm::Module pass manager run 14 ; CHECK-NESTED-TWO-NOOP-MP: Running pass: NoOpModulePass 15 ; CHECK-NESTED-TWO-NOOP-MP: Running pass: NoOpModulePass 16 ; CHECK-NESTED-TWO-NOOP-MP: Finished llvm::Module pass manager run 17 ; CHECK-NESTED-TWO-NOOP-MP: Finished llvm::Module pass manager run 18 19 ; RUN: opt -disable-output -debug-pass-manager \ 20 ; RUN: -passes=no-op-function,no-op-function %s 2>&1 \ 21 ; RUN: | FileCheck %s --check-prefix=CHECK-TWO-NOOP-FP 22 ; CHECK-TWO-NOOP-FP: Starting llvm::Module pass manager run 23 ; CHECK-TWO-NOOP-FP: Running pass: ModuleToFunctionPassAdaptor 24 ; CHECK-TWO-NOOP-FP: Starting llvm::Function pass manager run 25 ; CHECK-TWO-NOOP-FP: Running pass: NoOpFunctionPass 26 ; CHECK-TWO-NOOP-FP: Running pass: NoOpFunctionPass 27 ; CHECK-TWO-NOOP-FP: Finished llvm::Function pass manager run 28 ; CHECK-TWO-NOOP-FP: Finished llvm::Module pass manager run 29 30 ; RUN: opt -disable-output -debug-pass-manager \ 31 ; RUN: -passes='function(no-op-function,no-op-function)' %s 2>&1 \ 32 ; RUN: | FileCheck %s --check-prefix=CHECK-NESTED-TWO-NOOP-FP 33 ; CHECK-NESTED-TWO-NOOP-FP: Starting llvm::Module pass manager run 34 ; CHECK-NESTED-TWO-NOOP-FP: Running pass: ModuleToFunctionPassAdaptor 35 ; CHECK-NESTED-TWO-NOOP-FP: Starting llvm::Function pass manager run 36 ; CHECK-NESTED-TWO-NOOP-FP: Running pass: NoOpFunctionPass 37 ; CHECK-NESTED-TWO-NOOP-FP: Running pass: NoOpFunctionPass 38 ; CHECK-NESTED-TWO-NOOP-FP: Finished llvm::Function pass manager run 39 ; CHECK-NESTED-TWO-NOOP-FP: Finished llvm::Module pass manager run 40 41 ; RUN: opt -disable-output -debug-pass-manager \ 42 ; RUN: -passes='no-op-module,function(no-op-function,no-op-function),no-op-module' %s 2>&1 \ 43 ; RUN: | FileCheck %s --check-prefix=CHECK-MIXED-FP-AND-MP 44 ; CHECK-MIXED-FP-AND-MP: Starting llvm::Module pass manager run 45 ; CHECK-MIXED-FP-AND-MP: Running pass: NoOpModulePass 46 ; CHECK-MIXED-FP-AND-MP: Running pass: ModuleToFunctionPassAdaptor 47 ; CHECK-MIXED-FP-AND-MP: Starting llvm::Function pass manager run 48 ; CHECK-MIXED-FP-AND-MP: Running pass: NoOpFunctionPass 49 ; CHECK-MIXED-FP-AND-MP: Running pass: NoOpFunctionPass 50 ; CHECK-MIXED-FP-AND-MP: Finished llvm::Function pass manager run 51 ; CHECK-MIXED-FP-AND-MP: Running pass: NoOpModulePass 52 ; CHECK-MIXED-FP-AND-MP: Finished llvm::Module pass manager run 53 54 ; RUN: not opt -disable-output -debug-pass-manager \ 55 ; RUN: -passes='no-op-module)' %s 2>&1 \ 56 ; RUN: | FileCheck %s --check-prefix=CHECK-UNBALANCED1 57 ; CHECK-UNBALANCED1: unable to parse pass pipeline description 58 59 ; RUN: not opt -disable-output -debug-pass-manager \ 60 ; RUN: -passes='module(no-op-module))' %s 2>&1 \ 61 ; RUN: | FileCheck %s --check-prefix=CHECK-UNBALANCED2 62 ; CHECK-UNBALANCED2: unable to parse pass pipeline description 63 64 ; RUN: not opt -disable-output -debug-pass-manager \ 65 ; RUN: -passes='module(no-op-module' %s 2>&1 \ 66 ; RUN: | FileCheck %s --check-prefix=CHECK-UNBALANCED3 67 ; CHECK-UNBALANCED3: unable to parse pass pipeline description 68 69 ; RUN: not opt -disable-output -debug-pass-manager \ 70 ; RUN: -passes='no-op-function)' %s 2>&1 \ 71 ; RUN: | FileCheck %s --check-prefix=CHECK-UNBALANCED4 72 ; CHECK-UNBALANCED4: unable to parse pass pipeline description 73 74 ; RUN: not opt -disable-output -debug-pass-manager \ 75 ; RUN: -passes='function(no-op-function))' %s 2>&1 \ 76 ; RUN: | FileCheck %s --check-prefix=CHECK-UNBALANCED5 77 ; CHECK-UNBALANCED5: unable to parse pass pipeline description 78 79 ; RUN: not opt -disable-output -debug-pass-manager \ 80 ; RUN: -passes='function(function(no-op-function)))' %s 2>&1 \ 81 ; RUN: | FileCheck %s --check-prefix=CHECK-UNBALANCED6 82 ; CHECK-UNBALANCED6: unable to parse pass pipeline description 83 84 ; RUN: not opt -disable-output -debug-pass-manager \ 85 ; RUN: -passes='function(no-op-function' %s 2>&1 \ 86 ; RUN: | FileCheck %s --check-prefix=CHECK-UNBALANCED7 87 ; CHECK-UNBALANCED7: unable to parse pass pipeline description 88 89 ; RUN: not opt -disable-output -debug-pass-manager \ 90 ; RUN: -passes='function(function(no-op-function)' %s 2>&1 \ 91 ; RUN: | FileCheck %s --check-prefix=CHECK-UNBALANCED8 92 ; CHECK-UNBALANCED8: unable to parse pass pipeline description 93 94 ; RUN: not opt -disable-output -debug-pass-manager \ 95 ; RUN: -passes='no-op-module,)' %s 2>&1 \ 96 ; RUN: | FileCheck %s --check-prefix=CHECK-UNBALANCED9 97 ; CHECK-UNBALANCED9: unable to parse pass pipeline description 98 99 ; RUN: not opt -disable-output -debug-pass-manager \ 100 ; RUN: -passes='no-op-function,)' %s 2>&1 \ 101 ; RUN: | FileCheck %s --check-prefix=CHECK-UNBALANCED10 102 ; CHECK-UNBALANCED10: unable to parse pass pipeline description 103 104 ; RUN: opt -disable-output -debug-pass-manager \ 105 ; RUN: -passes=no-op-cgscc,no-op-cgscc %s 2>&1 \ 106 ; RUN: | FileCheck %s --check-prefix=CHECK-TWO-NOOP-CG 107 ; CHECK-TWO-NOOP-CG: Starting llvm::Module pass manager run 108 ; CHECK-TWO-NOOP-CG: Running pass: ModuleToPostOrderCGSCCPassAdaptor 109 ; CHECK-TWO-NOOP-CG: Starting llvm::LazyCallGraph::SCC pass manager run 110 ; CHECK-TWO-NOOP-CG: Running pass: NoOpCGSCCPass 111 ; CHECK-TWO-NOOP-CG: Running pass: NoOpCGSCCPass 112 ; CHECK-TWO-NOOP-CG: Finished llvm::LazyCallGraph::SCC pass manager run 113 ; CHECK-TWO-NOOP-CG: Finished llvm::Module pass manager run 114 115 ; RUN: opt -disable-output -debug-pass-manager \ 116 ; 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 \ 117 ; RUN: | FileCheck %s --check-prefix=CHECK-NESTED-MP-CG-FP 118 ; CHECK-NESTED-MP-CG-FP: Starting llvm::Module pass manager run 119 ; CHECK-NESTED-MP-CG-FP: Starting llvm::Module pass manager run 120 ; CHECK-NESTED-MP-CG-FP: Running pass: ModuleToFunctionPassAdaptor 121 ; CHECK-NESTED-MP-CG-FP: Starting llvm::Function pass manager run 122 ; CHECK-NESTED-MP-CG-FP: Running pass: NoOpFunctionPass 123 ; CHECK-NESTED-MP-CG-FP: Finished llvm::Function pass manager run 124 ; CHECK-NESTED-MP-CG-FP: Running pass: ModuleToPostOrderCGSCCPassAdaptor 125 ; CHECK-NESTED-MP-CG-FP: Starting llvm::LazyCallGraph::SCC pass manager run 126 ; CHECK-NESTED-MP-CG-FP: Running pass: NoOpCGSCCPass 127 ; CHECK-NESTED-MP-CG-FP: Running pass: CGSCCToFunctionPassAdaptor 128 ; CHECK-NESTED-MP-CG-FP: Starting llvm::Function pass manager run 129 ; CHECK-NESTED-MP-CG-FP: Running pass: NoOpFunctionPass 130 ; CHECK-NESTED-MP-CG-FP: Finished llvm::Function pass manager run 131 ; CHECK-NESTED-MP-CG-FP: Running pass: NoOpCGSCCPass 132 ; CHECK-NESTED-MP-CG-FP: Finished llvm::LazyCallGraph::SCC pass manager run 133 ; CHECK-NESTED-MP-CG-FP: Running pass: ModuleToFunctionPassAdaptor 134 ; CHECK-NESTED-MP-CG-FP: Starting llvm::Function pass manager run 135 ; CHECK-NESTED-MP-CG-FP: Running pass: NoOpFunctionPass 136 ; CHECK-NESTED-MP-CG-FP: Finished llvm::Function pass manager run 137 ; CHECK-NESTED-MP-CG-FP: Finished llvm::Module pass manager run 138 ; CHECK-NESTED-MP-CG-FP: Finished llvm::Module pass manager run 139 140 ; RUN: opt -disable-output -debug-pass-manager \ 141 ; RUN: -passes='no-op-loop,no-op-loop' %s 2>&1 \ 142 ; RUN: | FileCheck %s --check-prefix=CHECK-TWO-NOOP-LOOP 143 ; CHECK-TWO-NOOP-LOOP: Starting llvm::Module pass manager run 144 ; CHECK-TWO-NOOP-LOOP: Running pass: ModuleToFunctionPassAdaptor 145 ; CHECK-TWO-NOOP-LOOP: Starting llvm::Function pass manager run 146 ; CHECK-TWO-NOOP-LOOP: Running pass: FunctionToLoopPassAdaptor 147 ; CHECK-TWO-NOOP-LOOP: Starting llvm::Loop pass manager run 148 ; CHECK-TWO-NOOP-LOOP: Running pass: NoOpLoopPass 149 ; CHECK-TWO-NOOP-LOOP: Running pass: NoOpLoopPass 150 ; CHECK-TWO-NOOP-LOOP: Finished llvm::Loop pass manager run 151 ; CHECK-TWO-NOOP-LOOP: Finished llvm::Function pass manager run 152 ; CHECK-TWO-NOOP-LOOP: Finished llvm::Module pass manager run 153 154 ; RUN: opt -disable-output -debug-pass-manager \ 155 ; RUN: -passes='module(function(loop(no-op-loop)))' %s 2>&1 \ 156 ; RUN: | FileCheck %s --check-prefix=CHECK-NESTED-FP-LP 157 ; RUN: opt -disable-output -debug-pass-manager \ 158 ; RUN: -passes='function(loop(no-op-loop))' %s 2>&1 \ 159 ; RUN: | FileCheck %s --check-prefix=CHECK-NESTED-FP-LP 160 ; RUN: opt -disable-output -debug-pass-manager \ 161 ; RUN: -passes='loop(no-op-loop)' %s 2>&1 \ 162 ; RUN: | FileCheck %s --check-prefix=CHECK-NESTED-FP-LP 163 ; RUN: opt -disable-output -debug-pass-manager \ 164 ; RUN: -passes='no-op-loop' %s 2>&1 \ 165 ; RUN: | FileCheck %s --check-prefix=CHECK-NESTED-FP-LP 166 ; CHECK-NESTED-FP-LP: Starting llvm::Module pass manager run 167 ; CHECK-NESTED-FP-LP: Running pass: ModuleToFunctionPassAdaptor 168 ; CHECK-NESTED-FP-LP: Starting llvm::Function pass manager run 169 ; CHECK-NESTED-FP-LP: Running pass: FunctionToLoopPassAdaptor 170 ; CHECK-NESTED-FP-LP: Starting llvm::Loop pass manager run 171 ; CHECK-NESTED-FP-LP: Running pass: NoOpLoopPass 172 ; CHECK-NESTED-FP-LP: Finished llvm::Loop pass manager run 173 ; CHECK-NESTED-FP-LP: Finished llvm::Function pass manager run 174 ; CHECK-NESTED-FP-LP: Finished llvm::Module pass manager run 175 176 177 define void @f() { 178 entry: 179 br label %loop 180 loop: 181 br label %loop 182 } 183