1 ; This test is essentially doing very basic things with the opt tool and the 2 ; new pass manager pipeline. It will be used to flesh out the feature 3 ; completeness of the opt tool when the new pass manager is engaged. The tests 4 ; may not be useful once it becomes the default or may get spread out into other 5 ; files, but for now this is just going to step the new process through its 6 ; paces. 7 8 ; RUN: opt -disable-output -disable-verify -debug-pass-manager \ 9 ; RUN: -passes=no-op-module %s 2>&1 \ 10 ; RUN: | FileCheck %s --check-prefix=CHECK-MODULE-PASS 11 ; CHECK-MODULE-PASS: Starting llvm::Module pass manager run 12 ; CHECK-MODULE-PASS-NEXT: Running pass: NoOpModulePass 13 ; CHECK-MODULE-PASS-NEXT: Finished llvm::Module pass manager run 14 15 ; RUN: opt -disable-output -disable-verify -debug-pass-manager \ 16 ; RUN: -passes=no-op-cgscc %s 2>&1 \ 17 ; RUN: | FileCheck %s --check-prefix=CHECK-CGSCC-PASS 18 ; RUN: opt -disable-output -disable-verify -debug-pass-manager \ 19 ; RUN: -passes='cgscc(no-op-cgscc)' %s 2>&1 \ 20 ; RUN: | FileCheck %s --check-prefix=CHECK-CGSCC-PASS 21 ; CHECK-CGSCC-PASS: Starting llvm::Module pass manager run 22 ; CHECK-CGSCC-PASS-NEXT: Running pass: ModuleToPostOrderCGSCCPassAdaptor 23 ; CHECK-CGSCC-PASS-NEXT: Running analysis: InnerAnalysisManagerProxy<{{.*}}> 24 ; CHECK-CGSCC-PASS-NEXT: Running analysis: LazyCallGraphAnalysis 25 ; CHECK-CGSCC-PASS-NEXT: Running an SCC pass across the RefSCC: [(foo)] 26 ; CHECK-CGSCC-PASS-NEXT: Starting llvm::LazyCallGraph::SCC pass manager run 27 ; CHECK-CGSCC-PASS-NEXT: Running pass: NoOpCGSCCPass 28 ; CHECK-CGSCC-PASS-NEXT: Finished llvm::LazyCallGraph::SCC pass manager run 29 ; CHECK-CGSCC-PASS-NEXT: Finished llvm::Module pass manager run 30 31 ; RUN: opt -disable-output -disable-verify -debug-pass-manager \ 32 ; RUN: -passes=no-op-function %s 2>&1 \ 33 ; RUN: | FileCheck %s --check-prefix=CHECK-FUNCTION-PASS 34 ; RUN: opt -disable-output -disable-verify -debug-pass-manager \ 35 ; RUN: -passes='function(no-op-function)' %s 2>&1 \ 36 ; RUN: | FileCheck %s --check-prefix=CHECK-FUNCTION-PASS 37 ; CHECK-FUNCTION-PASS: Starting llvm::Module pass manager run 38 ; CHECK-FUNCTION-PASS-NEXT: Running pass: ModuleToFunctionPassAdaptor 39 ; CHECK-FUNCTION-PASS-NEXT: Running analysis: InnerAnalysisManagerProxy<{{.*}}> 40 ; CHECK-FUNCTION-PASS-NEXT: Starting llvm::Function pass manager run 41 ; CHECK-FUNCTION-PASS-NEXT: Running pass: NoOpFunctionPass 42 ; CHECK-FUNCTION-PASS-NEXT: Finished llvm::Function pass manager run 43 ; CHECK-FUNCTION-PASS-NEXT: Finished llvm::Module pass manager run 44 45 ; RUN: opt -disable-output -debug-pass-manager -passes=print %s 2>&1 \ 46 ; RUN: | FileCheck %s --check-prefix=CHECK-MODULE-PRINT 47 ; CHECK-MODULE-PRINT: Starting llvm::Module pass manager run 48 ; CHECK-MODULE-PRINT: Running pass: VerifierPass 49 ; CHECK-MODULE-PRINT: Running pass: PrintModulePass 50 ; CHECK-MODULE-PRINT: ModuleID 51 ; CHECK-MODULE-PRINT: define void @foo() 52 ; CHECK-MODULE-PRINT: Running pass: VerifierPass 53 ; CHECK-MODULE-PRINT: Finished llvm::Module pass manager run 54 55 ; RUN: opt -disable-output -debug-pass-manager -disable-verify -passes='print,verify' %s 2>&1 \ 56 ; RUN: | FileCheck %s --check-prefix=CHECK-MODULE-VERIFY 57 ; CHECK-MODULE-VERIFY: Starting llvm::Module pass manager run 58 ; CHECK-MODULE-VERIFY: Running pass: PrintModulePass 59 ; CHECK-MODULE-VERIFY: ModuleID 60 ; CHECK-MODULE-VERIFY: define void @foo() 61 ; CHECK-MODULE-VERIFY: Running pass: VerifierPass 62 ; CHECK-MODULE-VERIFY: Finished llvm::Module pass manager run 63 64 ; RUN: opt -disable-output -debug-pass-manager -passes='function(print)' %s 2>&1 \ 65 ; RUN: | FileCheck %s --check-prefix=CHECK-FUNCTION-PRINT 66 ; CHECK-FUNCTION-PRINT: Starting llvm::Module pass manager run 67 ; CHECK-FUNCTION-PRINT: Running pass: VerifierPass 68 ; CHECK-FUNCTION-PRINT: Running pass: ModuleToFunctionPassAdaptor 69 ; CHECK-FUNCTION-PRINT: Running analysis: InnerAnalysisManagerProxy<{{.*}}> 70 ; CHECK-FUNCTION-PRINT: Starting llvm::Function pass manager run 71 ; CHECK-FUNCTION-PRINT: Running pass: PrintFunctionPass 72 ; CHECK-FUNCTION-PRINT-NOT: ModuleID 73 ; CHECK-FUNCTION-PRINT: define void @foo() 74 ; CHECK-FUNCTION-PRINT: Finished llvm::Function pass manager run 75 ; CHECK-FUNCTION-PRINT: Running pass: VerifierPass 76 ; CHECK-FUNCTION-PRINT: Finished llvm::Module pass manager run 77 78 ; RUN: opt -disable-output -debug-pass-manager -disable-verify -passes='function(print,verify)' %s 2>&1 \ 79 ; RUN: | FileCheck %s --check-prefix=CHECK-FUNCTION-VERIFY 80 ; CHECK-FUNCTION-VERIFY: Starting llvm::Module pass manager run 81 ; CHECK-FUNCTION-VERIFY: Starting llvm::Function pass manager run 82 ; CHECK-FUNCTION-VERIFY: Running pass: PrintFunctionPass 83 ; CHECK-FUNCTION-VERIFY-NOT: ModuleID 84 ; CHECK-FUNCTION-VERIFY: define void @foo() 85 ; CHECK-FUNCTION-VERIFY: Running pass: VerifierPass 86 ; CHECK-FUNCTION-VERIFY: Finished llvm::Function pass manager run 87 ; CHECK-FUNCTION-VERIFY: Finished llvm::Module pass manager run 88 89 ; RUN: opt -S -o - -passes='no-op-module,no-op-module' %s \ 90 ; RUN: | FileCheck %s --check-prefix=CHECK-NOOP 91 ; CHECK-NOOP: define void @foo() { 92 ; CHECK-NOOP: ret void 93 ; CHECK-NOOP: } 94 95 ; Round trip through bitcode. 96 ; RUN: opt -f -o - -passes='no-op-module,no-op-module' %s \ 97 ; RUN: | llvm-dis \ 98 ; RUN: | FileCheck %s --check-prefix=CHECK-NOOP 99 100 ; RUN: opt -disable-output -debug-pass-manager -verify-each -passes='no-op-module,function(no-op-function)' %s 2>&1 \ 101 ; RUN: | FileCheck %s --check-prefix=CHECK-VERIFY-EACH 102 ; CHECK-VERIFY-EACH: Starting llvm::Module pass manager run 103 ; CHECK-VERIFY-EACH: Running pass: VerifierPass 104 ; CHECK-VERIFY-EACH: Running pass: NoOpModulePass 105 ; CHECK-VERIFY-EACH: Running pass: VerifierPass 106 ; CHECK-VERIFY-EACH: Starting llvm::Function pass manager run 107 ; CHECK-VERIFY-EACH: Running pass: NoOpFunctionPass 108 ; CHECK-VERIFY-EACH: Running pass: VerifierPass 109 ; CHECK-VERIFY-EACH: Finished llvm::Function pass manager run 110 ; CHECK-VERIFY-EACH: Running pass: VerifierPass 111 ; CHECK-VERIFY-EACH: Finished llvm::Module pass manager run 112 113 ; RUN: opt -disable-output -debug-pass-manager -disable-verify -passes='no-op-module,function(no-op-function)' %s 2>&1 \ 114 ; RUN: | FileCheck %s --check-prefix=CHECK-NO-VERIFY 115 ; CHECK-NO-VERIFY: Starting llvm::Module pass manager run 116 ; CHECK-NO-VERIFY-NOT: VerifierPass 117 ; CHECK-NO-VERIFY: Running pass: NoOpModulePass 118 ; CHECK-NO-VERIFY-NOT: VerifierPass 119 ; CHECK-NO-VERIFY: Starting llvm::Function pass manager run 120 ; CHECK-NO-VERIFY: Running pass: NoOpFunctionPass 121 ; CHECK-NO-VERIFY-NOT: VerifierPass 122 ; CHECK-NO-VERIFY: Finished llvm::Function pass manager run 123 ; CHECK-NO-VERIFY-NOT: VerifierPass 124 ; CHECK-NO-VERIFY: Finished llvm::Module pass manager run 125 126 ; RUN: opt -disable-output -debug-pass-manager \ 127 ; RUN: -passes='require<no-op-module>,cgscc(require<no-op-cgscc>,function(require<no-op-function>))' %s 2>&1 \ 128 ; RUN: | FileCheck %s --check-prefix=CHECK-ANALYSES 129 ; CHECK-ANALYSES: Starting llvm::Module pass manager run 130 ; CHECK-ANALYSES: Running pass: RequireAnalysisPass 131 ; CHECK-ANALYSES: Running analysis: NoOpModuleAnalysis 132 ; CHECK-ANALYSES: Starting llvm::LazyCallGraph::SCC pass manager run 133 ; CHECK-ANALYSES: Running pass: RequireAnalysisPass 134 ; CHECK-ANALYSES: Running analysis: NoOpCGSCCAnalysis 135 ; CHECK-ANALYSES: Starting llvm::Function pass manager run 136 ; CHECK-ANALYSES: Running pass: RequireAnalysisPass 137 ; CHECK-ANALYSES: Running analysis: NoOpFunctionAnalysis 138 139 ; Make sure no-op passes that preserve all analyses don't even try to do any 140 ; analysis invalidation. 141 ; RUN: opt -disable-output -debug-pass-manager \ 142 ; RUN: -passes='require<no-op-module>,cgscc(require<no-op-cgscc>,function(require<no-op-function>))' %s 2>&1 \ 143 ; RUN: | FileCheck %s --check-prefix=CHECK-NO-OP-INVALIDATION 144 ; CHECK-NO-OP-INVALIDATION: Starting llvm::Module pass manager run 145 ; CHECK-NO-OP-INVALIDATION-NOT: Invalidating all non-preserved analyses 146 147 ; RUN: opt -disable-output -debug-pass-manager \ 148 ; RUN: -passes='require<no-op-module>,require<no-op-module>,require<no-op-module>' %s 2>&1 \ 149 ; RUN: | FileCheck %s --check-prefix=CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS 150 ; CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS: Starting llvm::Module pass manager run 151 ; CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass 152 ; CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS: Running analysis: NoOpModuleAnalysis 153 ; CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS-NOT: Running analysis: NoOpModuleAnalysis 154 155 ; RUN: opt -disable-output -debug-pass-manager \ 156 ; RUN: -passes='require<no-op-module>,invalidate<no-op-module>,require<no-op-module>' %s 2>&1 \ 157 ; RUN: | FileCheck %s --check-prefix=CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS 158 ; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Starting llvm::Module pass manager run 159 ; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass 160 ; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Running analysis: NoOpModuleAnalysis 161 ; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Invalidating analysis: NoOpModuleAnalysis 162 ; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Running analysis: NoOpModuleAnalysis 163 164 ; RUN: opt -disable-output -debug-pass-manager \ 165 ; RUN: -passes='cgscc(require<no-op-cgscc>,require<no-op-cgscc>,require<no-op-cgscc>)' %s 2>&1 \ 166 ; RUN: | FileCheck %s --check-prefix=CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS 167 ; CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS: Starting llvm::Module pass manager run 168 ; CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass 169 ; CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS: Running analysis: NoOpCGSCCAnalysis 170 ; CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS-NOT: Running analysis: NoOpCGSCCAnalysis 171 172 ; RUN: opt -disable-output -debug-pass-manager \ 173 ; RUN: -passes='cgscc(require<no-op-cgscc>,invalidate<no-op-cgscc>,require<no-op-cgscc>)' %s 2>&1 \ 174 ; RUN: | FileCheck %s --check-prefix=CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS 175 ; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Starting llvm::Module pass manager run 176 ; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass 177 ; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Running analysis: NoOpCGSCCAnalysis 178 ; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Invalidating analysis: NoOpCGSCCAnalysis 179 ; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Running analysis: NoOpCGSCCAnalysis 180 181 ; RUN: opt -disable-output -debug-pass-manager \ 182 ; RUN: -passes='function(require<no-op-function>,require<no-op-function>,require<no-op-function>)' %s 2>&1 \ 183 ; RUN: | FileCheck %s --check-prefix=CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS 184 ; CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS: Starting llvm::Module pass manager run 185 ; CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass 186 ; CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS: Running analysis: NoOpFunctionAnalysis 187 ; CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS-NOT: Running analysis: NoOpFunctionAnalysis 188 189 ; RUN: opt -disable-output -debug-pass-manager \ 190 ; RUN: -passes='function(require<no-op-function>,invalidate<no-op-function>,require<no-op-function>)' %s 2>&1 \ 191 ; RUN: | FileCheck %s --check-prefix=CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS 192 ; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Starting llvm::Module pass manager run 193 ; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass 194 ; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Running analysis: NoOpFunctionAnalysis 195 ; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Invalidating analysis: NoOpFunctionAnalysis 196 ; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Running analysis: NoOpFunctionAnalysis 197 198 ; RUN: opt -disable-output -disable-verify -debug-pass-manager \ 199 ; RUN: -passes='require<no-op-module>,module(require<no-op-module>,function(require<no-op-function>,invalidate<all>,require<no-op-function>),require<no-op-module>),require<no-op-module>' %s 2>&1 \ 200 ; RUN: | FileCheck %s --check-prefix=CHECK-INVALIDATE-ALL 201 ; CHECK-INVALIDATE-ALL: Starting llvm::Module pass manager run 202 ; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass 203 ; CHECK-INVALIDATE-ALL: Running analysis: NoOpModuleAnalysis 204 ; CHECK-INVALIDATE-ALL: Starting llvm::Module pass manager run 205 ; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass 206 ; CHECK-INVALIDATE-ALL-NOT: Running analysis: NoOpModuleAnalysis 207 ; CHECK-INVALIDATE-ALL: Starting llvm::Function pass manager run 208 ; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass 209 ; CHECK-INVALIDATE-ALL: Running analysis: NoOpFunctionAnalysis 210 ; CHECK-INVALIDATE-ALL: Running pass: InvalidateAllAnalysesPass 211 ; CHECK-INVALIDATE-ALL: Invalidating all non-preserved analyses 212 ; CHECK-INVALIDATE-ALL: Invalidating analysis: NoOpFunctionAnalysis 213 ; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass 214 ; CHECK-INVALIDATE-ALL: Running analysis: NoOpFunctionAnalysis 215 ; CHECK-INVALIDATE-ALL: Finished llvm::Function pass manager run 216 ; CHECK-INVALIDATE-ALL: Invalidating all non-preserved analyses 217 ; CHECK-INVALIDATE-ALL-NOT: Running analysis: NoOpFunctionAnalysis 218 ; CHECK-INVALIDATE-ALL: Invalidating all non-preserved analyses 219 ; CHECK-INVALIDATE-ALL: Invalidating analysis: NoOpModuleAnalysis 220 ; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass 221 ; CHECK-INVALIDATE-ALL: Running analysis: NoOpModuleAnalysis 222 ; CHECK-INVALIDATE-ALL: Finished llvm::Module pass manager run 223 ; CHECK-INVALIDATE-ALL: Invalidating all non-preserved analyses 224 ; CHECK-INVALIDATE-ALL-NOT: Invalidating analysis: NoOpModuleAnalysis 225 ; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass 226 ; CHECK-INVALIDATE-ALL-NOT: Running analysis: NoOpModuleAnalysis 227 ; CHECK-INVALIDATE-ALL: Finished llvm::Module pass manager run 228 229 ; RUN: opt -disable-output -disable-verify -debug-pass-manager \ 230 ; RUN: -passes='require<no-op-module>,module(require<no-op-module>,cgscc(require<no-op-cgscc>,function(require<no-op-function>,invalidate<all>,require<no-op-function>),require<no-op-cgscc>),require<no-op-module>),require<no-op-module>' %s 2>&1 \ 231 ; RUN: | FileCheck %s --check-prefix=CHECK-INVALIDATE-ALL-CG 232 ; CHECK-INVALIDATE-ALL-CG: Starting llvm::Module pass manager run 233 ; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass 234 ; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpModuleAnalysis 235 ; CHECK-INVALIDATE-ALL-CG: Starting llvm::Module pass manager run 236 ; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass 237 ; CHECK-INVALIDATE-ALL-CG-NOT: Running analysis: NoOpModuleAnalysis 238 ; CHECK-INVALIDATE-ALL-CG: Starting llvm::LazyCallGraph::SCC pass manager run 239 ; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass 240 ; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpCGSCCAnalysis 241 ; CHECK-INVALIDATE-ALL-CG: Starting llvm::Function pass manager run 242 ; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass 243 ; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpFunctionAnalysis 244 ; CHECK-INVALIDATE-ALL-CG: Running pass: InvalidateAllAnalysesPass 245 ; CHECK-INVALIDATE-ALL-CG: Invalidating all non-preserved analyses 246 ; CHECK-INVALIDATE-ALL-CG: Invalidating analysis: NoOpFunctionAnalysis 247 ; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass 248 ; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpFunctionAnalysis 249 ; CHECK-INVALIDATE-ALL-CG: Finished llvm::Function pass manager run 250 ; CHECK-INVALIDATE-ALL-CG: Invalidating all non-preserved analyses 251 ; CHECK-INVALIDATE-ALL-CG-NOT: Running analysis: NoOpFunctionAnalysis 252 ; CHECK-INVALIDATE-ALL-CG: Invalidating all non-preserved analyses 253 ; CHECK-INVALIDATE-ALL-CG: Invalidating analysis: NoOpCGSCCAnalysis 254 ; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass 255 ; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpCGSCCAnalysis 256 ; CHECK-INVALIDATE-ALL-CG: Finished llvm::LazyCallGraph::SCC pass manager run 257 ; CHECK-INVALIDATE-ALL-CG: Invalidating all non-preserved analyses 258 ; CHECK-INVALIDATE-ALL-CG-NOT: Invalidating analysis: NoOpCGSCCAnalysis 259 ; CHECK-INVALIDATE-ALL-CG: Invalidating all non-preserved analyses 260 ; CHECK-INVALIDATE-ALL-CG: Invalidating analysis: NoOpModuleAnalysis 261 ; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass 262 ; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpModuleAnalysis 263 ; CHECK-INVALIDATE-ALL-CG: Finished llvm::Module pass manager run 264 ; CHECK-INVALIDATE-ALL-CG: Invalidating all non-preserved analyses 265 ; CHECK-INVALIDATE-ALL-CG-NOT: Invalidating analysis: NoOpModuleAnalysis 266 ; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass 267 ; CHECK-INVALIDATE-ALL-CG-NOT: Running analysis: NoOpModuleAnalysis 268 ; CHECK-INVALIDATE-ALL-CG: Finished llvm::Module pass manager run 269 270 ; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \ 271 ; RUN: -passes='require<targetlibinfo>,invalidate<all>,require<targetlibinfo>' \ 272 ; RUN: | FileCheck %s --check-prefix=CHECK-TLI 273 ; CHECK-TLI: Starting llvm::Module pass manager run 274 ; CHECK-TLI: Running pass: RequireAnalysisPass 275 ; CHECK-TLI: Running analysis: TargetLibraryAnalysis 276 ; CHECK-TLI: Running pass: InvalidateAllAnalysesPass 277 ; CHECK-TLI-NOT: Invalidating analysis: TargetLibraryAnalysis 278 ; CHECK-TLI: Running pass: RequireAnalysisPass 279 ; CHECK-TLI-NOT: Running analysis: TargetLibraryAnalysis 280 ; CHECK-TLI: Finished llvm::Module pass manager run 281 282 ; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \ 283 ; RUN: -passes='require<targetir>,invalidate<all>,require<targetir>' \ 284 ; RUN: | FileCheck %s --check-prefix=CHECK-TIRA 285 ; CHECK-TIRA: Starting llvm::Module pass manager run 286 ; CHECK-TIRA: Running pass: RequireAnalysisPass 287 ; CHECK-TIRA: Running analysis: TargetIRAnalysis 288 ; CHECK-TIRA: Running pass: InvalidateAllAnalysesPass 289 ; CHECK-TIRA-NOT: Invalidating analysis: TargetIRAnalysis 290 ; CHECK-TIRA: Running pass: RequireAnalysisPass 291 ; CHECK-TIRA-NOT: Running analysis: TargetIRAnalysis 292 ; CHECK-TIRA: Finished llvm::Module pass manager run 293 294 ; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \ 295 ; RUN: -passes='require<domtree>' \ 296 ; RUN: | FileCheck %s --check-prefix=CHECK-DT 297 ; CHECK-DT: Starting llvm::Module pass manager run 298 ; CHECK-DT: Running pass: RequireAnalysisPass 299 ; CHECK-DT: Running analysis: DominatorTreeAnalysis 300 ; CHECK-DT: Finished llvm::Module pass manager run 301 302 ; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \ 303 ; RUN: -passes='require<basic-aa>' \ 304 ; RUN: | FileCheck %s --check-prefix=CHECK-BASIC-AA 305 ; CHECK-BASIC-AA: Starting llvm::Module pass manager run 306 ; CHECK-BASIC-AA: Running pass: RequireAnalysisPass 307 ; CHECK-BASIC-AA: Running analysis: BasicAA 308 ; CHECK-BASIC-AA: Finished llvm::Module pass manager run 309 310 ; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \ 311 ; RUN: -passes='require<aa>' -aa-pipeline='basic-aa' \ 312 ; RUN: | FileCheck %s --check-prefix=CHECK-AA 313 ; CHECK-AA: Starting llvm::Module pass manager run 314 ; CHECK-AA: Running pass: RequireAnalysisPass 315 ; CHECK-AA: Running analysis: AAManager 316 ; CHECK-AA: Running analysis: BasicAA 317 ; CHECK-AA: Finished llvm::Module pass manager run 318 319 ; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \ 320 ; RUN: -passes='require<memdep>' \ 321 ; RUN: | FileCheck %s --check-prefix=CHECK-MEMDEP 322 ; CHECK-MEMDEP: Starting llvm::Module pass manager run 323 ; CHECK-MEMDEP: Running pass: RequireAnalysisPass 324 ; CHECK-MEMDEP: Running analysis: MemoryDependenceAnalysis 325 ; CHECK-MEMDEP: Finished llvm::Module pass manager run 326 327 ; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \ 328 ; RUN: -passes='require<callgraph>' \ 329 ; RUN: | FileCheck %s --check-prefix=CHECK-CALLGRAPH 330 ; CHECK-CALLGRAPH: Starting llvm::Module pass manager run 331 ; CHECK-CALLGRAPH: Running pass: RequireAnalysisPass 332 ; CHECK-CALLGRAPH: Running analysis: CallGraphAnalysis 333 ; CHECK-CALLGRAPH: Finished llvm::Module pass manager run 334 335 ; RUN: opt -disable-output -disable-verify -debug-pass-manager \ 336 ; RUN: -passes='default<O0>' %s 2>&1 \ 337 ; RUN: | FileCheck %s --check-prefix=CHECK-O2 338 ; RUN: opt -disable-output -disable-verify -debug-pass-manager \ 339 ; RUN: -passes='default<O1>' %s 2>&1 \ 340 ; RUN: | FileCheck %s --check-prefix=CHECK-O2 341 ; RUN: opt -disable-output -disable-verify -debug-pass-manager \ 342 ; RUN: -passes='default<O2>' %s 2>&1 \ 343 ; RUN: | FileCheck %s --check-prefix=CHECK-O2 344 ; RUN: opt -disable-output -disable-verify -debug-pass-manager \ 345 ; RUN: -passes='default<Os>' %s 2>&1 \ 346 ; RUN: | FileCheck %s --check-prefix=CHECK-O2 347 ; RUN: opt -disable-output -disable-verify -debug-pass-manager \ 348 ; RUN: -passes='default<Oz>' %s 2>&1 \ 349 ; RUN: | FileCheck %s --check-prefix=CHECK-O2 350 ; RUN: opt -disable-output -disable-verify -debug-pass-manager \ 351 ; RUN: -passes='lto-pre-link<O2>' %s 2>&1 \ 352 ; RUN: | FileCheck %s --check-prefix=CHECK-O2 353 ; CHECK-O2: Starting llvm::Module pass manager run 354 ; CHECK-O2: Running pass: SimplifyCFGPass 355 ; CHECK-O2: Running pass: SROA 356 ; CHECK-O2: Running pass: EarlyCSEPass 357 ; CHECK-O2: Running pass: LowerExpectIntrinsicPass 358 359 ; RUN: opt -disable-output -disable-verify -debug-pass-manager \ 360 ; RUN: -passes='lto<O2>' %s 2>&1 \ 361 ; RUN: | FileCheck %s --check-prefix=CHECK-LTO-O2 362 ; CHECK-LTO-O2: Starting llvm::Module pass manager run 363 ; CHECK-LTO-O2: Running pass: InstCombinePass 364 ; CHECK-LTO-O2: Running pass: SimplifyCFGPass 365 366 define void @foo() { 367 ret void 368 } 369 370 declare void @bar() 371