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 -verify-analysis-invalidation=0 -debug-pass-manager \ 9; RUN: -passes=no-op-module %s 2>&1 \ 10; RUN: | FileCheck %s --check-prefix=CHECK-MODULE-PASS 11; RUN: opt -disable-output -disable-verify -verify-analysis-invalidation=0 -debug-pass-manager \ 12; RUN: -p no-op-module %s 2>&1 \ 13; RUN: | FileCheck %s --check-prefix=CHECK-MODULE-PASS 14; CHECK-MODULE-PASS: Running pass: NoOpModulePass 15 16; RUN: opt -disable-output -disable-verify -verify-analysis-invalidation=0 -debug-pass-manager \ 17; RUN: -passes=no-op-cgscc %s 2>&1 \ 18; RUN: | FileCheck %s --check-prefix=CHECK-CGSCC-PASS 19; RUN: opt -disable-output -disable-verify -verify-analysis-invalidation=0 -debug-pass-manager \ 20; RUN: -passes='cgscc(no-op-cgscc)' %s 2>&1 \ 21; RUN: | FileCheck %s --check-prefix=CHECK-CGSCC-PASS 22; CHECK-CGSCC-PASS: Running analysis: InnerAnalysisManagerProxy<{{.*(CGSCCAnalysisManager|AnalysisManager<.*LazyCallGraph::SCC.*>).*}},{{.*}}Module> 23; CHECK-CGSCC-PASS-NEXT: Running analysis: InnerAnalysisManagerProxy<{{.*(FunctionAnalysisManager|AnalysisManager<.*Function.*>).*}},{{.*}}Module> 24; CHECK-CGSCC-PASS-NEXT: Running analysis: LazyCallGraphAnalysis 25; CHECK-CGSCC-PASS-NEXT: Running analysis: TargetLibraryAnalysis 26; CHECK-CGSCC-PASS-NEXT: Running analysis: FunctionAnalysisManagerCGSCCProxy 27; CHECK-CGSCC-PASS-NEXT: Running analysis: OuterAnalysisManagerProxy<{{.*}}LazyCallGraph::SCC{{.*}}> 28; CHECK-CGSCC-PASS-NEXT: Running pass: NoOpCGSCCPass 29 30; RUN: opt -disable-output -disable-verify -verify-analysis-invalidation=0 -debug-pass-manager \ 31; RUN: -passes=no-op-function %s 2>&1 \ 32; RUN: | FileCheck %s --check-prefix=CHECK-FUNCTION-PASS 33; RUN: opt -disable-output -disable-verify -verify-analysis-invalidation=0 -debug-pass-manager \ 34; RUN: -passes='function(no-op-function)' %s 2>&1 \ 35; RUN: | FileCheck %s --check-prefix=CHECK-FUNCTION-PASS 36; CHECK-FUNCTION-PASS: Running analysis: InnerAnalysisManagerProxy<{{.*}}> 37; CHECK-FUNCTION-PASS-NEXT: Running pass: NoOpFunctionPass 38 39; RUN: opt -disable-output -debug-pass-manager -passes=print %s 2>&1 \ 40; RUN: | FileCheck %s --check-prefix=CHECK-MODULE-PRINT 41; CHECK-MODULE-PRINT: Running pass: PrintModulePass 42; CHECK-MODULE-PRINT: ModuleID 43; CHECK-MODULE-PRINT: define void @foo(i1 %x, ptr %p1, ptr %p2) 44; CHECK-MODULE-PRINT: Running pass: VerifierPass 45 46; RUN: opt -disable-output -debug-pass-manager -disable-verify -verify-analysis-invalidation=0 -passes='print,verify' %s 2>&1 \ 47; RUN: | FileCheck %s --check-prefix=CHECK-MODULE-VERIFY 48; CHECK-MODULE-VERIFY: Running pass: PrintModulePass 49; CHECK-MODULE-VERIFY: ModuleID 50; CHECK-MODULE-VERIFY: define void @foo(i1 %x, ptr %p1, ptr %p2) 51; CHECK-MODULE-VERIFY: Running pass: VerifierPass 52 53; RUN: opt -disable-output -debug-pass-manager -passes='function(print)' %s 2>&1 \ 54; RUN: | FileCheck %s --check-prefix=CHECK-FUNCTION-PRINT 55; CHECK-FUNCTION-PRINT: Running analysis: InnerAnalysisManagerProxy<{{.*}}> 56; CHECK-FUNCTION-PRINT: Running pass: PrintFunctionPass 57; CHECK-FUNCTION-PRINT-NOT: ModuleID 58; CHECK-FUNCTION-PRINT: define void @foo(i1 %x, ptr %p1, ptr %p2) 59; CHECK-FUNCTION-PRINT: Running pass: VerifierPass 60 61; RUN: opt -disable-output -debug-pass-manager -disable-verify -verify-analysis-invalidation=0 -passes='function(print,verify)' %s 2>&1 \ 62; RUN: | FileCheck %s --check-prefix=CHECK-FUNCTION-VERIFY 63; CHECK-FUNCTION-VERIFY: Running pass: PrintFunctionPass 64; CHECK-FUNCTION-VERIFY-NOT: ModuleID 65; CHECK-FUNCTION-VERIFY: define void @foo(i1 %x, ptr %p1, ptr %p2) 66; CHECK-FUNCTION-VERIFY: Running pass: VerifierPass 67 68; RUN: opt -S -o - -passes='no-op-module,no-op-module' %s \ 69; RUN: | FileCheck %s --check-prefix=CHECK-NOOP 70; CHECK-NOOP: define void @foo(i1 %x, ptr %p1, ptr %p2) { 71; CHECK-NOOP: entry: 72; CHECK-NOOP: store i8 42, ptr %p1 73; CHECK-NOOP: br i1 %x, label %loop, label %exit 74; CHECK-NOOP: loop: 75; CHECK-NOOP: %tmp1 = load i8, ptr %p2 76; CHECK-NOOP: br label %loop 77; CHECK-NOOP: exit: 78; CHECK-NOOP: ret void 79; CHECK-NOOP: } 80 81; Round trip through bitcode. 82; RUN: opt -f -o - -passes='no-op-module,no-op-module' %s \ 83; RUN: | llvm-dis \ 84; RUN: | FileCheck %s --check-prefix=CHECK-NOOP 85 86; RUN: opt -disable-output -debug-pass-manager -disable-verify -verify-analysis-invalidation=0 -passes='no-op-module,function(no-op-function)' %s 2>&1 \ 87; RUN: | FileCheck %s --check-prefix=CHECK-NO-VERIFY 88; CHECK-NO-VERIFY-NOT: VerifierPass 89; CHECK-NO-VERIFY: Running pass: NoOpModulePass 90; CHECK-NO-VERIFY-NOT: VerifierPass 91; CHECK-NO-VERIFY: Running pass: NoOpFunctionPass 92; CHECK-NO-VERIFY-NOT: VerifierPass 93 94; RUN: opt -disable-output -debug-pass-manager \ 95; RUN: -passes='require<no-op-module>,cgscc(require<no-op-cgscc>,function(require<no-op-function>))' %s 2>&1 \ 96; RUN: | FileCheck %s --check-prefix=CHECK-ANALYSES 97; CHECK-ANALYSES: Running pass: RequireAnalysisPass 98; CHECK-ANALYSES: Running analysis: NoOpModuleAnalysis 99; CHECK-ANALYSES: Running pass: RequireAnalysisPass 100; CHECK-ANALYSES: Running analysis: NoOpCGSCCAnalysis 101; CHECK-ANALYSES: Running pass: RequireAnalysisPass 102; CHECK-ANALYSES: Running analysis: NoOpFunctionAnalysis 103 104; Make sure no-op passes that preserve all analyses don't even try to do any 105; analysis invalidation. 106; RUN: opt -disable-output -debug-pass-manager \ 107; RUN: -passes='require<no-op-module>,cgscc(require<no-op-cgscc>,function(require<no-op-function>))' %s 2>&1 \ 108; RUN: | FileCheck %s --check-prefix=CHECK-NO-OP-INVALIDATION 109; CHECK-NO-OP-INVALIDATION-NOT: Invalidat 110 111; RUN: opt -disable-output -debug-pass-manager \ 112; RUN: -passes='require<no-op-module>,require<no-op-module>,require<no-op-module>' %s 2>&1 \ 113; RUN: | FileCheck %s --check-prefix=CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS 114; CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass 115; CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS: Running analysis: NoOpModuleAnalysis 116; CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS-NOT: Running analysis: NoOpModuleAnalysis 117 118; RUN: opt -disable-output -debug-pass-manager \ 119; RUN: -passes='require<no-op-module>,invalidate<no-op-module>,require<no-op-module>' %s 2>&1 \ 120; RUN: | FileCheck %s --check-prefix=CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS 121; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass 122; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Running analysis: NoOpModuleAnalysis 123; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Invalidating analysis: NoOpModuleAnalysis 124; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Running analysis: NoOpModuleAnalysis 125 126; RUN: opt -disable-output -debug-pass-manager \ 127; RUN: -passes='cgscc(require<no-op-cgscc>,require<no-op-cgscc>,require<no-op-cgscc>)' %s 2>&1 \ 128; RUN: | FileCheck %s --check-prefix=CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS 129; CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass 130; CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS: Running analysis: NoOpCGSCCAnalysis 131; CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS-NOT: Running analysis: NoOpCGSCCAnalysis 132 133; RUN: opt -disable-output -debug-pass-manager \ 134; RUN: -passes='cgscc(require<no-op-cgscc>,invalidate<no-op-cgscc>,require<no-op-cgscc>)' %s 2>&1 \ 135; RUN: | FileCheck %s --check-prefix=CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS 136; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass 137; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Running analysis: NoOpCGSCCAnalysis 138; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Invalidating analysis: NoOpCGSCCAnalysis 139; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Running analysis: NoOpCGSCCAnalysis 140 141; RUN: opt -disable-output -debug-pass-manager \ 142; RUN: -passes='function(require<no-op-function>,require<no-op-function>,require<no-op-function>)' %s 2>&1 \ 143; RUN: | FileCheck %s --check-prefix=CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS 144; CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass 145; CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS: Running analysis: NoOpFunctionAnalysis 146; CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS-NOT: Running analysis: NoOpFunctionAnalysis 147 148; RUN: opt -disable-output -debug-pass-manager \ 149; RUN: -passes='function(require<no-op-function>,invalidate<no-op-function>,require<no-op-function>)' %s 2>&1 \ 150; RUN: | FileCheck %s --check-prefix=CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS 151; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass 152; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Running analysis: NoOpFunctionAnalysis 153; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Invalidating analysis: NoOpFunctionAnalysis 154; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Running analysis: NoOpFunctionAnalysis 155 156; RUN: opt -disable-output -disable-verify -verify-analysis-invalidation=0 -debug-pass-manager \ 157; 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 \ 158; RUN: | FileCheck %s --check-prefix=CHECK-INVALIDATE-ALL 159; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass 160; CHECK-INVALIDATE-ALL: Running analysis: NoOpModuleAnalysis 161; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass 162; CHECK-INVALIDATE-ALL-NOT: Running analysis: NoOpModuleAnalysis 163; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass 164; CHECK-INVALIDATE-ALL: Running analysis: NoOpFunctionAnalysis 165; CHECK-INVALIDATE-ALL: Running pass: InvalidateAllAnalysesPass 166; CHECK-INVALIDATE-ALL: Invalidating analysis: NoOpFunctionAnalysis 167; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass 168; CHECK-INVALIDATE-ALL: Running analysis: NoOpFunctionAnalysis 169; CHECK-INVALIDATE-ALL: Invalidating analysis: NoOpModuleAnalysis 170; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass 171; CHECK-INVALIDATE-ALL: Running analysis: NoOpModuleAnalysis 172; CHECK-INVALIDATE-ALL-NOT: Invalidating analysis: NoOpModuleAnalysis 173; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass 174; CHECK-INVALIDATE-ALL-NOT: Running analysis: NoOpModuleAnalysis 175 176; RUN: opt -disable-output -disable-verify -verify-analysis-invalidation=0 -debug-pass-manager \ 177; 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 \ 178; RUN: | FileCheck %s --check-prefix=CHECK-INVALIDATE-ALL-CG 179; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass 180; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpModuleAnalysis 181; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass 182; CHECK-INVALIDATE-ALL-CG-NOT: Running analysis: NoOpModuleAnalysis 183; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass 184; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpCGSCCAnalysis 185; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass 186; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpFunctionAnalysis 187; CHECK-INVALIDATE-ALL-CG: Running pass: InvalidateAllAnalysesPass 188; CHECK-INVALIDATE-ALL-CG: Invalidating analysis: NoOpFunctionAnalysis 189; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass 190; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpFunctionAnalysis 191; CHECK-INVALIDATE-ALL-CG-NOT: Running analysis: NoOpFunctionAnalysis 192; CHECK-INVALIDATE-ALL-CG: Invalidating analysis: NoOpCGSCCAnalysis 193; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass 194; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpCGSCCAnalysis 195; CHECK-INVALIDATE-ALL-CG-NOT: Invalidating analysis: NoOpCGSCCAnalysis 196; CHECK-INVALIDATE-ALL-CG: Invalidating analysis: NoOpModuleAnalysis 197; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass 198; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpModuleAnalysis 199; CHECK-INVALIDATE-ALL-CG-NOT: Invalidating analysis: NoOpModuleAnalysis 200; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass 201; CHECK-INVALIDATE-ALL-CG-NOT: Running analysis: NoOpModuleAnalysis 202 203; RUN: opt -disable-output -disable-verify -verify-analysis-invalidation=0 -debug-pass-manager %s 2>&1 \ 204; RUN: -passes='require<target-lib-info>,invalidate<all>,require<target-lib-info>' \ 205; RUN: | FileCheck %s --check-prefix=CHECK-TLI 206; CHECK-TLI: Running pass: RequireAnalysisPass 207; CHECK-TLI: Running analysis: TargetLibraryAnalysis 208; CHECK-TLI: Running pass: InvalidateAllAnalysesPass 209; CHECK-TLI-NOT: Invalidating analysis: TargetLibraryAnalysis 210; CHECK-TLI: Running pass: RequireAnalysisPass 211; CHECK-TLI-NOT: Running analysis: TargetLibraryAnalysis 212 213; RUN: opt -disable-output -disable-verify -verify-analysis-invalidation=0 -debug-pass-manager %s 2>&1 \ 214; RUN: -passes='require<target-ir>,invalidate<all>,require<target-ir>' \ 215; RUN: | FileCheck %s --check-prefix=CHECK-TIRA 216; CHECK-TIRA: Running pass: RequireAnalysisPass 217; CHECK-TIRA: Running analysis: TargetIRAnalysis 218; CHECK-TIRA: Running pass: InvalidateAllAnalysesPass 219; CHECK-TIRA-NOT: Invalidating analysis: TargetIRAnalysis 220; CHECK-TIRA: Running pass: RequireAnalysisPass 221; CHECK-TIRA-NOT: Running analysis: TargetIRAnalysis 222 223; RUN: opt -disable-output -disable-verify -verify-analysis-invalidation=0 -debug-pass-manager %s 2>&1 \ 224; RUN: -passes='require<domtree>' \ 225; RUN: | FileCheck %s --check-prefix=CHECK-DT 226; CHECK-DT: Running pass: RequireAnalysisPass 227; CHECK-DT: Running analysis: DominatorTreeAnalysis 228 229; RUN: opt -disable-output -disable-verify -verify-analysis-invalidation=0 -debug-pass-manager %s 2>&1 \ 230; RUN: -passes='require<basic-aa>' \ 231; RUN: | FileCheck %s --check-prefix=CHECK-BASIC-AA 232; CHECK-BASIC-AA: Running pass: RequireAnalysisPass 233; CHECK-BASIC-AA: Running analysis: BasicAA 234 235; RUN: opt -disable-output -disable-verify -verify-analysis-invalidation=0 -debug-pass-manager %s 2>&1 \ 236; RUN: -passes='require<aa>' -aa-pipeline='basic-aa' \ 237; RUN: | FileCheck %s --check-prefix=CHECK-AA 238; CHECK-AA: Running pass: RequireAnalysisPass 239; CHECK-AA: Running analysis: AAManager 240; CHECK-AA: Running analysis: BasicAA 241 242; RUN: opt -disable-output -disable-verify -verify-analysis-invalidation=0 -debug-pass-manager %s 2>&1 \ 243; RUN: -passes='require<aa>' -aa-pipeline='default' \ 244; RUN: | FileCheck %s --check-prefix=CHECK-AA-DEFAULT 245; CHECK-AA-DEFAULT: Running pass: RequireAnalysisPass 246; CHECK-AA-DEFAULT: Running analysis: AAManager 247; CHECK-AA-DEFAULT: Running analysis: BasicAA 248; CHECK-AA-DEFAULT: Running analysis: ScopedNoAliasAA 249; CHECK-AA-DEFAULT: Running analysis: TypeBasedAA 250 251; RUN: opt -disable-output -disable-verify -verify-analysis-invalidation=0 -debug-pass-manager %s 2>&1 \ 252; RUN: -passes='require<aa>,invalidate<domtree>,aa-eval' -aa-pipeline='basic-aa' \ 253; RUN: | FileCheck %s --check-prefix=CHECK-AA-FUNCTION-INVALIDATE 254; CHECK-AA-FUNCTION-INVALIDATE: Running pass: RequireAnalysisPass 255; CHECK-AA-FUNCTION-INVALIDATE: Running analysis: AAManager 256; CHECK-AA-FUNCTION-INVALIDATE: Running analysis: BasicAA 257; CHECK-AA-FUNCTION-INVALIDATE: Running pass: InvalidateAnalysisPass 258; CHECK-AA-FUNCTION-INVALIDATE: Invalidating analysis: DominatorTreeAnalysis 259; CHECK-AA-FUNCTION-INVALIDATE: Invalidating analysis: BasicAA 260; CHECK-AA-FUNCTION-INVALIDATE: Invalidating analysis: AAManager 261; CHECK-AA-FUNCTION-INVALIDATE: Running pass: AAEvaluator 262; CHECK-AA-FUNCTION-INVALIDATE: Running analysis: AAManager 263; CHECK-AA-FUNCTION-INVALIDATE: Running analysis: BasicAA 264 265; RUN: opt -disable-output -disable-verify -verify-analysis-invalidation=0 -debug-pass-manager %s 2>&1 \ 266; RUN: -passes='require<globals-aa>,function(require<aa>),invalidate<globals-aa>,require<globals-aa>,function(aa-eval)' -aa-pipeline='globals-aa' \ 267; RUN: | FileCheck %s --check-prefix=CHECK-AA-MODULE-INVALIDATE 268; CHECK-AA-MODULE-INVALIDATE: Running pass: RequireAnalysisPass 269; CHECK-AA-MODULE-INVALIDATE: Running analysis: GlobalsAA 270; CHECK-AA-MODULE-INVALIDATE: Running pass: RequireAnalysisPass 271; CHECK-AA-MODULE-INVALIDATE: Running analysis: AAManager 272; CHECK-AA-MODULE-INVALIDATE: Running pass: InvalidateAnalysisPass 273; CHECK-AA-MODULE-INVALIDATE: Invalidating analysis: GlobalsAA 274; CHECK-AA-MODULE-INVALIDATE: Running pass: RequireAnalysisPass 275; CHECK-AA-MODULE-INVALIDATE: Running analysis: GlobalsAA 276; CHECK-AA-MODULE-INVALIDATE: Running pass: AAEvaluator 277 278; RUN: opt -disable-output -disable-verify -verify-analysis-invalidation=0 -debug-pass-manager %s 2>&1 \ 279; RUN: -passes='require<memdep>' \ 280; RUN: | FileCheck %s --check-prefix=CHECK-MEMDEP 281; CHECK-MEMDEP: Running pass: RequireAnalysisPass 282; CHECK-MEMDEP: Running analysis: MemoryDependenceAnalysis 283 284; RUN: opt -disable-output -disable-verify -verify-analysis-invalidation=0 -debug-pass-manager %s 2>&1 \ 285; RUN: -passes='require<callgraph>' \ 286; RUN: | FileCheck %s --check-prefix=CHECK-CALLGRAPH 287; CHECK-CALLGRAPH: Running pass: RequireAnalysisPass 288; CHECK-CALLGRAPH: Running analysis: CallGraphAnalysis 289 290; RUN: opt -disable-output -disable-verify -verify-analysis-invalidation=0 -debug-pass-manager \ 291; RUN: -passes='default<O0>' %s 2>&1 \ 292; RUN: | FileCheck %s --check-prefix=CHECK-O0 --check-prefix=%llvmcheckext 293; CHECK-O0: Running analysis: InnerAnalysisManagerProxy<{{.*}}> 294; CHECK-O0-NEXT: Running pass: EntryExitInstrumenterPass 295; CHECK-O0-NEXT: Running pass: AlwaysInlinerPass 296; CHECK-O0-NEXT: Running analysis: ProfileSummaryAnalysis 297; CHECK-EXT-NEXT: Running pass: {{.*}}Bye 298; We don't have checks for CHECK-NOEXT here, but this simplifies the test, while 299; avoiding FileCheck complaining about the unused prefix. 300; CHECK-NOEXT: {{.*}} 301 302define void @foo(i1 %x, ptr %p1, ptr %p2) { 303entry: 304 store i8 42, ptr %p1 305 br i1 %x, label %loop, label %exit 306 307loop: 308 %tmp1 = load i8, ptr %p2 309 br label %loop 310 311exit: 312 ret void 313} 314 315declare void @bar() 316