blob: 5f5ba19a62a5411e49e7d9cb0c0fbbc299a15f54 [file] [log] [blame]
Chandler Carruth52eef882014-01-12 12:15:39 +00001; 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
Chandler Carruth703378f2015-01-13 22:45:13 +00008; RUN: opt -disable-output -disable-verify -debug-pass-manager \
Chandler Carruthea368f12015-01-06 08:37:58 +00009; RUN: -passes=no-op-module %s 2>&1 \
10; RUN: | FileCheck %s --check-prefix=CHECK-MODULE-PASS
Chandler Carruth395fe572016-02-25 10:27:39 +000011; CHECK-MODULE-PASS: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +000012; CHECK-MODULE-PASS-NEXT: Running pass: NoOpModulePass
Chandler Carruth395fe572016-02-25 10:27:39 +000013; CHECK-MODULE-PASS-NEXT: Finished llvm::Module pass manager run
Chandler Carruthea368f12015-01-06 08:37:58 +000014
Chandler Carruth703378f2015-01-13 22:45:13 +000015; RUN: opt -disable-output -disable-verify -debug-pass-manager \
Chandler Carruthea368f12015-01-06 08:37:58 +000016; RUN: -passes=no-op-cgscc %s 2>&1 \
17; RUN: | FileCheck %s --check-prefix=CHECK-CGSCC-PASS
Chandler Carruth703378f2015-01-13 22:45:13 +000018; RUN: opt -disable-output -disable-verify -debug-pass-manager \
Chandler Carruthea368f12015-01-06 08:37:58 +000019; RUN: -passes='cgscc(no-op-cgscc)' %s 2>&1 \
20; RUN: | FileCheck %s --check-prefix=CHECK-CGSCC-PASS
Chandler Carruth395fe572016-02-25 10:27:39 +000021; CHECK-CGSCC-PASS: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +000022; CHECK-CGSCC-PASS-NEXT: Running pass: ModuleToPostOrderCGSCCPassAdaptor
Chandler Carruth0d1d4952016-12-22 07:53:20 +000023; CHECK-CGSCC-PASS-NEXT: Running analysis: InnerAnalysisManagerProxy<{{.*(CGSCCAnalysisManager|AnalysisManager<.*LazyCallGraph::SCC.*>).*}},{{.*}}Module>
24; CHECK-CGSCC-PASS-NEXT: Running analysis: InnerAnalysisManagerProxy<{{.*(FunctionAnalysisManager|AnalysisManager<.*Function.*>).*}},{{.*}}Module>
Chandler Carruth3a634352016-02-26 11:44:45 +000025; CHECK-CGSCC-PASS-NEXT: Running analysis: LazyCallGraphAnalysis
Chandler Carruthf59a8382017-07-15 08:08:19 +000026; CHECK-CGSCC-PASS-NEXT: Running analysis: TargetLibraryAnalysis
Fedor Sergeevee8d31c2018-09-20 17:08:45 +000027; CHECK-CGSCC-PASS-NEXT: Running analysis: PassInstrumentationAnalysis
Chandler Carruth88823462016-08-24 09:37:14 +000028; CHECK-CGSCC-PASS-NEXT: Starting CGSCC pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +000029; CHECK-CGSCC-PASS-NEXT: Running pass: NoOpCGSCCPass
Chandler Carruth88823462016-08-24 09:37:14 +000030; CHECK-CGSCC-PASS-NEXT: Finished CGSCC pass manager run
Chandler Carruth395fe572016-02-25 10:27:39 +000031; CHECK-CGSCC-PASS-NEXT: Finished llvm::Module pass manager run
Chandler Carruthea368f12015-01-06 08:37:58 +000032
Chandler Carruth703378f2015-01-13 22:45:13 +000033; RUN: opt -disable-output -disable-verify -debug-pass-manager \
Chandler Carruthea368f12015-01-06 08:37:58 +000034; RUN: -passes=no-op-function %s 2>&1 \
35; RUN: | FileCheck %s --check-prefix=CHECK-FUNCTION-PASS
Chandler Carruth703378f2015-01-13 22:45:13 +000036; RUN: opt -disable-output -disable-verify -debug-pass-manager \
Chandler Carruthea368f12015-01-06 08:37:58 +000037; RUN: -passes='function(no-op-function)' %s 2>&1 \
38; RUN: | FileCheck %s --check-prefix=CHECK-FUNCTION-PASS
Chandler Carruth395fe572016-02-25 10:27:39 +000039; CHECK-FUNCTION-PASS: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +000040; CHECK-FUNCTION-PASS-NEXT: Running pass: ModuleToFunctionPassAdaptor
Chandler Carruth30811a42016-02-27 11:07:16 +000041; CHECK-FUNCTION-PASS-NEXT: Running analysis: InnerAnalysisManagerProxy<{{.*}}>
Fedor Sergeevee8d31c2018-09-20 17:08:45 +000042; CHECK-FUNCTION-PASS-NEXT: Running analysis: PassInstrumentationAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +000043; CHECK-FUNCTION-PASS-NEXT: Starting llvm::Function pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +000044; CHECK-FUNCTION-PASS-NEXT: Running pass: NoOpFunctionPass
Chandler Carruth395fe572016-02-25 10:27:39 +000045; CHECK-FUNCTION-PASS-NEXT: Finished llvm::Function pass manager run
46; CHECK-FUNCTION-PASS-NEXT: Finished llvm::Module pass manager run
Chandler Carruthea368f12015-01-06 08:37:58 +000047
Chandler Carruth52eef882014-01-12 12:15:39 +000048; RUN: opt -disable-output -debug-pass-manager -passes=print %s 2>&1 \
49; RUN: | FileCheck %s --check-prefix=CHECK-MODULE-PRINT
Chandler Carruth395fe572016-02-25 10:27:39 +000050; CHECK-MODULE-PRINT: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +000051; CHECK-MODULE-PRINT: Running pass: VerifierPass
52; CHECK-MODULE-PRINT: Running pass: PrintModulePass
Chandler Carruth52eef882014-01-12 12:15:39 +000053; CHECK-MODULE-PRINT: ModuleID
Chandler Carruth17c630a2016-12-27 08:44:39 +000054; CHECK-MODULE-PRINT: define void @foo(i1 %x, i8* %p1, i8* %p2)
Chandler Carruth816702f2015-01-13 11:13:56 +000055; CHECK-MODULE-PRINT: Running pass: VerifierPass
Chandler Carruth395fe572016-02-25 10:27:39 +000056; CHECK-MODULE-PRINT: Finished llvm::Module pass manager run
Chandler Carruth52eef882014-01-12 12:15:39 +000057
Chandler Carruth9c31db42015-01-05 00:08:53 +000058; RUN: opt -disable-output -debug-pass-manager -disable-verify -passes='print,verify' %s 2>&1 \
59; RUN: | FileCheck %s --check-prefix=CHECK-MODULE-VERIFY
Chandler Carruth395fe572016-02-25 10:27:39 +000060; CHECK-MODULE-VERIFY: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +000061; CHECK-MODULE-VERIFY: Running pass: PrintModulePass
Chandler Carruth9c31db42015-01-05 00:08:53 +000062; CHECK-MODULE-VERIFY: ModuleID
Chandler Carruth17c630a2016-12-27 08:44:39 +000063; CHECK-MODULE-VERIFY: define void @foo(i1 %x, i8* %p1, i8* %p2)
Chandler Carruth816702f2015-01-13 11:13:56 +000064; CHECK-MODULE-VERIFY: Running pass: VerifierPass
Chandler Carruth395fe572016-02-25 10:27:39 +000065; CHECK-MODULE-VERIFY: Finished llvm::Module pass manager run
Chandler Carruth9c31db42015-01-05 00:08:53 +000066
Chandler Carruth52eef882014-01-12 12:15:39 +000067; RUN: opt -disable-output -debug-pass-manager -passes='function(print)' %s 2>&1 \
68; RUN: | FileCheck %s --check-prefix=CHECK-FUNCTION-PRINT
Chandler Carruth395fe572016-02-25 10:27:39 +000069; CHECK-FUNCTION-PRINT: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +000070; CHECK-FUNCTION-PRINT: Running pass: VerifierPass
71; CHECK-FUNCTION-PRINT: Running pass: ModuleToFunctionPassAdaptor
Chandler Carruth30811a42016-02-27 11:07:16 +000072; CHECK-FUNCTION-PRINT: Running analysis: InnerAnalysisManagerProxy<{{.*}}>
Chandler Carruth395fe572016-02-25 10:27:39 +000073; CHECK-FUNCTION-PRINT: Starting llvm::Function pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +000074; CHECK-FUNCTION-PRINT: Running pass: PrintFunctionPass
Chandler Carruth52eef882014-01-12 12:15:39 +000075; CHECK-FUNCTION-PRINT-NOT: ModuleID
Chandler Carruth17c630a2016-12-27 08:44:39 +000076; CHECK-FUNCTION-PRINT: define void @foo(i1 %x, i8* %p1, i8* %p2)
Chandler Carruth395fe572016-02-25 10:27:39 +000077; CHECK-FUNCTION-PRINT: Finished llvm::Function pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +000078; CHECK-FUNCTION-PRINT: Running pass: VerifierPass
Chandler Carruth395fe572016-02-25 10:27:39 +000079; CHECK-FUNCTION-PRINT: Finished llvm::Module pass manager run
Chandler Carruth52eef882014-01-12 12:15:39 +000080
Chandler Carruth9c31db42015-01-05 00:08:53 +000081; RUN: opt -disable-output -debug-pass-manager -disable-verify -passes='function(print,verify)' %s 2>&1 \
82; RUN: | FileCheck %s --check-prefix=CHECK-FUNCTION-VERIFY
Chandler Carruth395fe572016-02-25 10:27:39 +000083; CHECK-FUNCTION-VERIFY: Starting llvm::Module pass manager run
84; CHECK-FUNCTION-VERIFY: Starting llvm::Function pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +000085; CHECK-FUNCTION-VERIFY: Running pass: PrintFunctionPass
Chandler Carruth9c31db42015-01-05 00:08:53 +000086; CHECK-FUNCTION-VERIFY-NOT: ModuleID
Chandler Carruth17c630a2016-12-27 08:44:39 +000087; CHECK-FUNCTION-VERIFY: define void @foo(i1 %x, i8* %p1, i8* %p2)
Chandler Carruth816702f2015-01-13 11:13:56 +000088; CHECK-FUNCTION-VERIFY: Running pass: VerifierPass
Chandler Carruth395fe572016-02-25 10:27:39 +000089; CHECK-FUNCTION-VERIFY: Finished llvm::Function pass manager run
90; CHECK-FUNCTION-VERIFY: Finished llvm::Module pass manager run
Chandler Carruth9c31db42015-01-05 00:08:53 +000091
Chandler Carruthb353c3f2014-01-13 05:16:45 +000092; RUN: opt -S -o - -passes='no-op-module,no-op-module' %s \
93; RUN: | FileCheck %s --check-prefix=CHECK-NOOP
Chandler Carruth17c630a2016-12-27 08:44:39 +000094; CHECK-NOOP: define void @foo(i1 %x, i8* %p1, i8* %p2) {
Chandler Carruth241bf242016-08-03 07:44:48 +000095; CHECK-NOOP: entry:
Chandler Carruth17c630a2016-12-27 08:44:39 +000096; CHECK-NOOP: store i8 42, i8* %p1
Chandler Carruth241bf242016-08-03 07:44:48 +000097; CHECK-NOOP: br i1 %x, label %loop, label %exit
98; CHECK-NOOP: loop:
Chandler Carruth17c630a2016-12-27 08:44:39 +000099; CHECK-NOOP: %tmp1 = load i8, i8* %p2
Chandler Carruth241bf242016-08-03 07:44:48 +0000100; CHECK-NOOP: br label %loop
101; CHECK-NOOP: exit:
Chandler Carruthb353c3f2014-01-13 05:16:45 +0000102; CHECK-NOOP: ret void
103; CHECK-NOOP: }
104
Chandler Carruthb7bdfd62014-01-13 07:38:24 +0000105; Round trip through bitcode.
106; RUN: opt -f -o - -passes='no-op-module,no-op-module' %s \
107; RUN: | llvm-dis \
108; RUN: | FileCheck %s --check-prefix=CHECK-NOOP
109
Chandler Carruth4d356312014-01-20 11:34:08 +0000110; RUN: opt -disable-output -debug-pass-manager -verify-each -passes='no-op-module,function(no-op-function)' %s 2>&1 \
111; RUN: | FileCheck %s --check-prefix=CHECK-VERIFY-EACH
Chandler Carruth395fe572016-02-25 10:27:39 +0000112; CHECK-VERIFY-EACH: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000113; CHECK-VERIFY-EACH: Running pass: VerifierPass
114; CHECK-VERIFY-EACH: Running pass: NoOpModulePass
115; CHECK-VERIFY-EACH: Running pass: VerifierPass
Chandler Carruth395fe572016-02-25 10:27:39 +0000116; CHECK-VERIFY-EACH: Starting llvm::Function pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000117; CHECK-VERIFY-EACH: Running pass: NoOpFunctionPass
118; CHECK-VERIFY-EACH: Running pass: VerifierPass
Chandler Carruth395fe572016-02-25 10:27:39 +0000119; CHECK-VERIFY-EACH: Finished llvm::Function pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000120; CHECK-VERIFY-EACH: Running pass: VerifierPass
Chandler Carruth395fe572016-02-25 10:27:39 +0000121; CHECK-VERIFY-EACH: Finished llvm::Module pass manager run
Chandler Carruth4d356312014-01-20 11:34:08 +0000122
123; RUN: opt -disable-output -debug-pass-manager -disable-verify -passes='no-op-module,function(no-op-function)' %s 2>&1 \
124; RUN: | FileCheck %s --check-prefix=CHECK-NO-VERIFY
Chandler Carruth395fe572016-02-25 10:27:39 +0000125; CHECK-NO-VERIFY: Starting llvm::Module pass manager run
Chandler Carruth4d356312014-01-20 11:34:08 +0000126; CHECK-NO-VERIFY-NOT: VerifierPass
Chandler Carruth816702f2015-01-13 11:13:56 +0000127; CHECK-NO-VERIFY: Running pass: NoOpModulePass
Chandler Carruth4d356312014-01-20 11:34:08 +0000128; CHECK-NO-VERIFY-NOT: VerifierPass
Chandler Carruth395fe572016-02-25 10:27:39 +0000129; CHECK-NO-VERIFY: Starting llvm::Function pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000130; CHECK-NO-VERIFY: Running pass: NoOpFunctionPass
Chandler Carruth4d356312014-01-20 11:34:08 +0000131; CHECK-NO-VERIFY-NOT: VerifierPass
Chandler Carruth395fe572016-02-25 10:27:39 +0000132; CHECK-NO-VERIFY: Finished llvm::Function pass manager run
Chandler Carruth4d356312014-01-20 11:34:08 +0000133; CHECK-NO-VERIFY-NOT: VerifierPass
Chandler Carruth395fe572016-02-25 10:27:39 +0000134; CHECK-NO-VERIFY: Finished llvm::Module pass manager run
Chandler Carruth4d356312014-01-20 11:34:08 +0000135
Chandler Carruth703378f2015-01-13 22:45:13 +0000136; RUN: opt -disable-output -debug-pass-manager \
Chandler Carruth0b576b32015-01-06 02:50:06 +0000137; RUN: -passes='require<no-op-module>,cgscc(require<no-op-cgscc>,function(require<no-op-function>))' %s 2>&1 \
138; RUN: | FileCheck %s --check-prefix=CHECK-ANALYSES
Chandler Carruth395fe572016-02-25 10:27:39 +0000139; CHECK-ANALYSES: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000140; CHECK-ANALYSES: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000141; CHECK-ANALYSES: Running analysis: NoOpModuleAnalysis
Chandler Carruth88823462016-08-24 09:37:14 +0000142; CHECK-ANALYSES: Starting CGSCC pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000143; CHECK-ANALYSES: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000144; CHECK-ANALYSES: Running analysis: NoOpCGSCCAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000145; CHECK-ANALYSES: Starting llvm::Function pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000146; CHECK-ANALYSES: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000147; CHECK-ANALYSES: Running analysis: NoOpFunctionAnalysis
Chandler Carruthe5e8fb32015-01-05 12:21:44 +0000148
Chandler Carruth539dc4b2015-01-05 12:32:11 +0000149; Make sure no-op passes that preserve all analyses don't even try to do any
150; analysis invalidation.
Chandler Carruth703378f2015-01-13 22:45:13 +0000151; RUN: opt -disable-output -debug-pass-manager \
Chandler Carruth0b576b32015-01-06 02:50:06 +0000152; RUN: -passes='require<no-op-module>,cgscc(require<no-op-cgscc>,function(require<no-op-function>))' %s 2>&1 \
Chandler Carruth539dc4b2015-01-05 12:32:11 +0000153; RUN: | FileCheck %s --check-prefix=CHECK-NO-OP-INVALIDATION
Chandler Carruth395fe572016-02-25 10:27:39 +0000154; CHECK-NO-OP-INVALIDATION: Starting llvm::Module pass manager run
Chandler Carruth539dc4b2015-01-05 12:32:11 +0000155; CHECK-NO-OP-INVALIDATION-NOT: Invalidating all non-preserved analyses
156
Chandler Carruth703378f2015-01-13 22:45:13 +0000157; RUN: opt -disable-output -debug-pass-manager \
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000158; RUN: -passes='require<no-op-module>,require<no-op-module>,require<no-op-module>' %s 2>&1 \
159; RUN: | FileCheck %s --check-prefix=CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS
Chandler Carruth395fe572016-02-25 10:27:39 +0000160; CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000161; CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000162; CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS: Running analysis: NoOpModuleAnalysis
163; CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS-NOT: Running analysis: NoOpModuleAnalysis
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000164
Chandler Carruth703378f2015-01-13 22:45:13 +0000165; RUN: opt -disable-output -debug-pass-manager \
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000166; RUN: -passes='require<no-op-module>,invalidate<no-op-module>,require<no-op-module>' %s 2>&1 \
167; RUN: | FileCheck %s --check-prefix=CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS
Chandler Carruth395fe572016-02-25 10:27:39 +0000168; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000169; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000170; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Running analysis: NoOpModuleAnalysis
171; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Invalidating analysis: NoOpModuleAnalysis
172; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Running analysis: NoOpModuleAnalysis
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000173
Chandler Carruth703378f2015-01-13 22:45:13 +0000174; RUN: opt -disable-output -debug-pass-manager \
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000175; RUN: -passes='cgscc(require<no-op-cgscc>,require<no-op-cgscc>,require<no-op-cgscc>)' %s 2>&1 \
176; RUN: | FileCheck %s --check-prefix=CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS
Chandler Carruth395fe572016-02-25 10:27:39 +0000177; CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000178; CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000179; CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS: Running analysis: NoOpCGSCCAnalysis
180; CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS-NOT: Running analysis: NoOpCGSCCAnalysis
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000181
Chandler Carruth703378f2015-01-13 22:45:13 +0000182; RUN: opt -disable-output -debug-pass-manager \
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000183; RUN: -passes='cgscc(require<no-op-cgscc>,invalidate<no-op-cgscc>,require<no-op-cgscc>)' %s 2>&1 \
184; RUN: | FileCheck %s --check-prefix=CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS
Chandler Carruth395fe572016-02-25 10:27:39 +0000185; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000186; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000187; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Running analysis: NoOpCGSCCAnalysis
188; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Invalidating analysis: NoOpCGSCCAnalysis
189; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Running analysis: NoOpCGSCCAnalysis
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000190
Chandler Carruth703378f2015-01-13 22:45:13 +0000191; RUN: opt -disable-output -debug-pass-manager \
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000192; RUN: -passes='function(require<no-op-function>,require<no-op-function>,require<no-op-function>)' %s 2>&1 \
193; RUN: | FileCheck %s --check-prefix=CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS
Chandler Carruth395fe572016-02-25 10:27:39 +0000194; CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000195; CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000196; CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS: Running analysis: NoOpFunctionAnalysis
197; CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS-NOT: Running analysis: NoOpFunctionAnalysis
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000198
Chandler Carruth703378f2015-01-13 22:45:13 +0000199; RUN: opt -disable-output -debug-pass-manager \
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000200; RUN: -passes='function(require<no-op-function>,invalidate<no-op-function>,require<no-op-function>)' %s 2>&1 \
201; RUN: | FileCheck %s --check-prefix=CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS
Chandler Carruth395fe572016-02-25 10:27:39 +0000202; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000203; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000204; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Running analysis: NoOpFunctionAnalysis
205; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Invalidating analysis: NoOpFunctionAnalysis
206; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Running analysis: NoOpFunctionAnalysis
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000207
Chandler Carruth703378f2015-01-13 22:45:13 +0000208; RUN: opt -disable-output -disable-verify -debug-pass-manager \
Chandler Carruthfdb41802015-01-07 01:58:35 +0000209; 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 \
Chandler Carruth4e107caf2015-01-06 09:06:35 +0000210; RUN: | FileCheck %s --check-prefix=CHECK-INVALIDATE-ALL
Chandler Carruth395fe572016-02-25 10:27:39 +0000211; CHECK-INVALIDATE-ALL: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000212; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000213; CHECK-INVALIDATE-ALL: Running analysis: NoOpModuleAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000214; CHECK-INVALIDATE-ALL: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000215; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000216; CHECK-INVALIDATE-ALL-NOT: Running analysis: NoOpModuleAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000217; CHECK-INVALIDATE-ALL: Starting llvm::Function pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000218; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000219; CHECK-INVALIDATE-ALL: Running analysis: NoOpFunctionAnalysis
Chandler Carruth816702f2015-01-13 11:13:56 +0000220; CHECK-INVALIDATE-ALL: Running pass: InvalidateAllAnalysesPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000221; CHECK-INVALIDATE-ALL: Invalidating analysis: NoOpFunctionAnalysis
Chandler Carruth816702f2015-01-13 11:13:56 +0000222; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000223; CHECK-INVALIDATE-ALL: Running analysis: NoOpFunctionAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000224; CHECK-INVALIDATE-ALL: Finished llvm::Function pass manager run
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000225; CHECK-INVALIDATE-ALL: Invalidating analysis: NoOpModuleAnalysis
Chandler Carruth816702f2015-01-13 11:13:56 +0000226; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000227; CHECK-INVALIDATE-ALL: Running analysis: NoOpModuleAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000228; CHECK-INVALIDATE-ALL: Finished llvm::Module pass manager run
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000229; CHECK-INVALIDATE-ALL-NOT: Invalidating analysis: NoOpModuleAnalysis
Chandler Carruth816702f2015-01-13 11:13:56 +0000230; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000231; CHECK-INVALIDATE-ALL-NOT: Running analysis: NoOpModuleAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000232; CHECK-INVALIDATE-ALL: Finished llvm::Module pass manager run
Chandler Carruthfdb41802015-01-07 01:58:35 +0000233
Chandler Carruth703378f2015-01-13 22:45:13 +0000234; RUN: opt -disable-output -disable-verify -debug-pass-manager \
Chandler Carruthfdb41802015-01-07 01:58:35 +0000235; 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 \
236; RUN: | FileCheck %s --check-prefix=CHECK-INVALIDATE-ALL-CG
Chandler Carruth395fe572016-02-25 10:27:39 +0000237; CHECK-INVALIDATE-ALL-CG: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000238; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000239; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpModuleAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000240; CHECK-INVALIDATE-ALL-CG: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000241; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000242; CHECK-INVALIDATE-ALL-CG-NOT: Running analysis: NoOpModuleAnalysis
Chandler Carruth88823462016-08-24 09:37:14 +0000243; CHECK-INVALIDATE-ALL-CG: Starting CGSCC pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000244; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000245; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpCGSCCAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000246; CHECK-INVALIDATE-ALL-CG: Starting llvm::Function pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000247; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000248; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpFunctionAnalysis
Chandler Carruth816702f2015-01-13 11:13:56 +0000249; CHECK-INVALIDATE-ALL-CG: Running pass: InvalidateAllAnalysesPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000250; CHECK-INVALIDATE-ALL-CG: Invalidating analysis: NoOpFunctionAnalysis
Chandler Carruth816702f2015-01-13 11:13:56 +0000251; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000252; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpFunctionAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000253; CHECK-INVALIDATE-ALL-CG: Finished llvm::Function pass manager run
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000254; CHECK-INVALIDATE-ALL-CG-NOT: Running analysis: NoOpFunctionAnalysis
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000255; CHECK-INVALIDATE-ALL-CG: Invalidating analysis: NoOpCGSCCAnalysis
Chandler Carruth816702f2015-01-13 11:13:56 +0000256; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000257; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpCGSCCAnalysis
Chandler Carruth88823462016-08-24 09:37:14 +0000258; CHECK-INVALIDATE-ALL-CG: Finished CGSCC pass manager run
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000259; CHECK-INVALIDATE-ALL-CG-NOT: Invalidating analysis: NoOpCGSCCAnalysis
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000260; CHECK-INVALIDATE-ALL-CG: Invalidating analysis: NoOpModuleAnalysis
Chandler Carruth816702f2015-01-13 11:13:56 +0000261; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000262; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpModuleAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000263; CHECK-INVALIDATE-ALL-CG: Finished llvm::Module pass manager run
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000264; CHECK-INVALIDATE-ALL-CG-NOT: Invalidating analysis: NoOpModuleAnalysis
Chandler Carruth816702f2015-01-13 11:13:56 +0000265; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000266; CHECK-INVALIDATE-ALL-CG-NOT: Running analysis: NoOpModuleAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000267; CHECK-INVALIDATE-ALL-CG: Finished llvm::Module pass manager run
Chandler Carruth4e107caf2015-01-06 09:06:35 +0000268
Chandler Carruth8ca43222015-01-15 11:39:46 +0000269; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
270; RUN: -passes='require<targetlibinfo>,invalidate<all>,require<targetlibinfo>' \
271; RUN: | FileCheck %s --check-prefix=CHECK-TLI
Chandler Carruth395fe572016-02-25 10:27:39 +0000272; CHECK-TLI: Starting llvm::Module pass manager run
Chandler Carruth8ca43222015-01-15 11:39:46 +0000273; CHECK-TLI: Running pass: RequireAnalysisPass
274; CHECK-TLI: Running analysis: TargetLibraryAnalysis
275; CHECK-TLI: Running pass: InvalidateAllAnalysesPass
276; CHECK-TLI-NOT: Invalidating analysis: TargetLibraryAnalysis
277; CHECK-TLI: Running pass: RequireAnalysisPass
278; CHECK-TLI-NOT: Running analysis: TargetLibraryAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000279; CHECK-TLI: Finished llvm::Module pass manager run
Chandler Carruth8ca43222015-01-15 11:39:46 +0000280
Chandler Carruthe0385522015-02-01 10:11:22 +0000281; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
282; RUN: -passes='require<targetir>,invalidate<all>,require<targetir>' \
283; RUN: | FileCheck %s --check-prefix=CHECK-TIRA
Chandler Carruth395fe572016-02-25 10:27:39 +0000284; CHECK-TIRA: Starting llvm::Module pass manager run
Chandler Carruthe0385522015-02-01 10:11:22 +0000285; CHECK-TIRA: Running pass: RequireAnalysisPass
286; CHECK-TIRA: Running analysis: TargetIRAnalysis
287; CHECK-TIRA: Running pass: InvalidateAllAnalysesPass
288; CHECK-TIRA-NOT: Invalidating analysis: TargetIRAnalysis
289; CHECK-TIRA: Running pass: RequireAnalysisPass
290; CHECK-TIRA-NOT: Running analysis: TargetIRAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000291; CHECK-TIRA: Finished llvm::Module pass manager run
Chandler Carruthe0385522015-02-01 10:11:22 +0000292
Chandler Carruth9f8d9b62015-02-01 10:47:25 +0000293; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
294; RUN: -passes='require<domtree>' \
295; RUN: | FileCheck %s --check-prefix=CHECK-DT
Chandler Carruth395fe572016-02-25 10:27:39 +0000296; CHECK-DT: Starting llvm::Module pass manager run
Chandler Carruth9f8d9b62015-02-01 10:47:25 +0000297; CHECK-DT: Running pass: RequireAnalysisPass
298; CHECK-DT: Running analysis: DominatorTreeAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000299; CHECK-DT: Finished llvm::Module pass manager run
Chandler Carruth9f8d9b62015-02-01 10:47:25 +0000300
Chandler Carruth6f5770b102016-02-13 23:32:00 +0000301; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
Chandler Carruthbece8d52016-02-13 23:46:24 +0000302; RUN: -passes='require<basic-aa>' \
303; RUN: | FileCheck %s --check-prefix=CHECK-BASIC-AA
Chandler Carruth395fe572016-02-25 10:27:39 +0000304; CHECK-BASIC-AA: Starting llvm::Module pass manager run
Chandler Carruthbece8d52016-02-13 23:46:24 +0000305; CHECK-BASIC-AA: Running pass: RequireAnalysisPass
306; CHECK-BASIC-AA: Running analysis: BasicAA
Chandler Carruth395fe572016-02-25 10:27:39 +0000307; CHECK-BASIC-AA: Finished llvm::Module pass manager run
Chandler Carruthbece8d52016-02-13 23:46:24 +0000308
Chandler Carruthedf59962016-02-18 09:45:17 +0000309; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
310; RUN: -passes='require<aa>' -aa-pipeline='basic-aa' \
311; RUN: | FileCheck %s --check-prefix=CHECK-AA
Chandler Carruth395fe572016-02-25 10:27:39 +0000312; CHECK-AA: Starting llvm::Module pass manager run
Chandler Carruthedf59962016-02-18 09:45:17 +0000313; CHECK-AA: Running pass: RequireAnalysisPass
314; CHECK-AA: Running analysis: AAManager
315; CHECK-AA: Running analysis: BasicAA
Chandler Carruth395fe572016-02-25 10:27:39 +0000316; CHECK-AA: Finished llvm::Module pass manager run
Chandler Carruthedf59962016-02-18 09:45:17 +0000317
Chandler Carruth61440d22016-03-10 00:55:30 +0000318; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
Chandler Carruth060ad612016-12-23 20:38:19 +0000319; RUN: -passes='require<aa>' -aa-pipeline='default' \
320; RUN: | FileCheck %s --check-prefix=CHECK-AA-DEFAULT
321; CHECK-AA-DEFAULT: Starting llvm::Module pass manager run
322; CHECK-AA-DEFAULT: Running pass: RequireAnalysisPass
323; CHECK-AA-DEFAULT: Running analysis: AAManager
324; CHECK-AA-DEFAULT: Running analysis: BasicAA
325; CHECK-AA-DEFAULT: Running analysis: ScopedNoAliasAA
326; CHECK-AA-DEFAULT: Running analysis: TypeBasedAA
327; CHECK-AA-DEFAULT: Finished llvm::Module pass manager run
328
329; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
Chandler Carruthaa351672016-12-27 10:30:45 +0000330; RUN: -passes='require<aa>,invalidate<domtree>,aa-eval' -aa-pipeline='basic-aa' \
Chandler Carruth17c630a2016-12-27 08:44:39 +0000331; RUN: | FileCheck %s --check-prefix=CHECK-AA-FUNCTION-INVALIDATE
332; CHECK-AA-FUNCTION-INVALIDATE: Starting llvm::Function pass manager run
333; CHECK-AA-FUNCTION-INVALIDATE: Running pass: RequireAnalysisPass
334; CHECK-AA-FUNCTION-INVALIDATE: Running analysis: AAManager
335; CHECK-AA-FUNCTION-INVALIDATE: Running analysis: BasicAA
336; CHECK-AA-FUNCTION-INVALIDATE: Running pass: InvalidateAnalysisPass
Chandler Carruthaa351672016-12-27 10:30:45 +0000337; CHECK-AA-FUNCTION-INVALIDATE: Invalidating analysis: DominatorTreeAnalysis
Chandler Carruth17c630a2016-12-27 08:44:39 +0000338; CHECK-AA-FUNCTION-INVALIDATE: Invalidating analysis: BasicAA
339; CHECK-AA-FUNCTION-INVALIDATE: Invalidating analysis: AAManager
340; CHECK-AA-FUNCTION-INVALIDATE: Running pass: AAEvaluator
341; CHECK-AA-FUNCTION-INVALIDATE: Running analysis: AAManager
342; CHECK-AA-FUNCTION-INVALIDATE: Running analysis: BasicAA
343; CHECK-AA-FUNCTION-INVALIDATE: Finished llvm::Function pass manager run
344
345; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
346; RUN: -passes='require<globals-aa>,function(require<aa>),invalidate<globals-aa>,require<globals-aa>,function(aa-eval)' -aa-pipeline='globals-aa' \
347; RUN: | FileCheck %s --check-prefix=CHECK-AA-MODULE-INVALIDATE
348; CHECK-AA-MODULE-INVALIDATE: Starting llvm::Module pass manager run
349; CHECK-AA-MODULE-INVALIDATE: Running pass: RequireAnalysisPass
350; CHECK-AA-MODULE-INVALIDATE: Running analysis: GlobalsAA
351; CHECK-AA-MODULE-INVALIDATE: Starting llvm::Function pass manager run
352; CHECK-AA-MODULE-INVALIDATE: Running pass: RequireAnalysisPass
353; CHECK-AA-MODULE-INVALIDATE: Running analysis: AAManager
354; CHECK-AA-MODULE-INVALIDATE: Finished llvm::Function pass manager run
355; CHECK-AA-MODULE-INVALIDATE: Running pass: InvalidateAnalysisPass
356; CHECK-AA-MODULE-INVALIDATE: Invalidating analysis: AAManager
357; CHECK-AA-MODULE-INVALIDATE: Invalidating analysis: GlobalsAA
358; CHECK-AA-MODULE-INVALIDATE: Running pass: RequireAnalysisPass
359; CHECK-AA-MODULE-INVALIDATE: Running analysis: GlobalsAA
360; CHECK-AA-MODULE-INVALIDATE: Starting llvm::Function pass manager run
361; CHECK-AA-MODULE-INVALIDATE: Running pass: AAEvaluator
362; CHECK-AA-MODULE-INVALIDATE: Running analysis: AAManager
363; CHECK-AA-MODULE-INVALIDATE: Finished llvm::Function pass manager run
364; CHECK-AA-MODULE-INVALIDATE: Finished llvm::Module pass manager run
365
366; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
Chandler Carruth61440d22016-03-10 00:55:30 +0000367; RUN: -passes='require<memdep>' \
368; RUN: | FileCheck %s --check-prefix=CHECK-MEMDEP
369; CHECK-MEMDEP: Starting llvm::Module pass manager run
370; CHECK-MEMDEP: Running pass: RequireAnalysisPass
371; CHECK-MEMDEP: Running analysis: MemoryDependenceAnalysis
372; CHECK-MEMDEP: Finished llvm::Module pass manager run
373
Chandler Carruth4c660f72016-03-10 11:24:11 +0000374; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
375; RUN: -passes='require<callgraph>' \
376; RUN: | FileCheck %s --check-prefix=CHECK-CALLGRAPH
377; CHECK-CALLGRAPH: Starting llvm::Module pass manager run
378; CHECK-CALLGRAPH: Running pass: RequireAnalysisPass
379; CHECK-CALLGRAPH: Running analysis: CallGraphAnalysis
380; CHECK-CALLGRAPH: Finished llvm::Module pass manager run
381
Chandler Carruth8b5a74192016-02-28 22:16:03 +0000382; RUN: opt -disable-output -disable-verify -debug-pass-manager \
383; RUN: -passes='default<O0>' %s 2>&1 \
Chandler Carruthe3f50642016-12-22 06:59:15 +0000384; RUN: | FileCheck %s --check-prefix=CHECK-O0
385; CHECK-O0: Starting llvm::Module pass manager run
386; CHECK-O0-NEXT: Finished llvm::Module pass manager run
387
Chandler Carruth8b5a74192016-02-28 22:16:03 +0000388; RUN: opt -disable-output -disable-verify -debug-pass-manager \
Chandler Carruth241bf242016-08-03 07:44:48 +0000389; RUN: -passes='repeat<3>(no-op-module)' %s 2>&1 \
390; RUN: | FileCheck %s --check-prefix=CHECK-REPEAT-MODULE-PASS
391; CHECK-REPEAT-MODULE-PASS: Starting llvm::Module pass manager run
Chandler Carrutha053a882016-08-04 03:52:53 +0000392; CHECK-REPEAT-MODULE-PASS-NEXT: Running pass: RepeatedPass
Chandler Carruth241bf242016-08-03 07:44:48 +0000393; CHECK-REPEAT-MODULE-PASS-NEXT: Starting llvm::Module pass manager run
394; CHECK-REPEAT-MODULE-PASS-NEXT: Running pass: NoOpModulePass
395; CHECK-REPEAT-MODULE-PASS-NEXT: Finished llvm::Module pass manager run
396; CHECK-REPEAT-MODULE-PASS-NEXT: Starting llvm::Module pass manager run
397; CHECK-REPEAT-MODULE-PASS-NEXT: Running pass: NoOpModulePass
398; CHECK-REPEAT-MODULE-PASS-NEXT: Finished llvm::Module pass manager run
399; CHECK-REPEAT-MODULE-PASS-NEXT: Starting llvm::Module pass manager run
400; CHECK-REPEAT-MODULE-PASS-NEXT: Running pass: NoOpModulePass
401; CHECK-REPEAT-MODULE-PASS-NEXT: Finished llvm::Module pass manager run
402; CHECK-REPEAT-MODULE-PASS-NEXT: Finished llvm::Module pass manager run
403
404; RUN: opt -disable-output -disable-verify -debug-pass-manager \
405; RUN: -passes='cgscc(repeat<3>(no-op-cgscc))' %s 2>&1 \
406; RUN: | FileCheck %s --check-prefix=CHECK-REPEAT-CGSCC-PASS
407; CHECK-REPEAT-CGSCC-PASS: Starting llvm::Module pass manager run
408; CHECK-REPEAT-CGSCC-PASS-NEXT: Running pass: ModuleToPostOrderCGSCCPassAdaptor
Chandler Carruth0d1d4952016-12-22 07:53:20 +0000409; CHECK-REPEAT-CGSCC-PASS-NEXT: Running analysis: InnerAnalysisManagerProxy<{{.*(CGSCCAnalysisManager|AnalysisManager<.*LazyCallGraph::SCC.*>).*}},{{.*}}Module>
410; CHECK-REPEAT-CGSCC-PASS-NEXT: Running analysis: InnerAnalysisManagerProxy<{{.*(FunctionAnalysisManager|AnalysisManager<.*Function.*>).*}},{{.*}}Module>
Chandler Carruth241bf242016-08-03 07:44:48 +0000411; CHECK-REPEAT-CGSCC-PASS-NEXT: Running analysis: LazyCallGraphAnalysis
Chandler Carruthf59a8382017-07-15 08:08:19 +0000412; CHECK-REPEAT-CGSCC-PASS-NEXT: Running analysis: TargetLibraryAnalysis
Fedor Sergeevee8d31c2018-09-20 17:08:45 +0000413; CHECK-REPEAT-CGSCC-PASS-NEXT: Running analysis: PassInstrumentationAnalysis
Chandler Carruth88823462016-08-24 09:37:14 +0000414; CHECK-REPEAT-CGSCC-PASS-NEXT: Starting CGSCC pass manager run
Chandler Carrutha053a882016-08-04 03:52:53 +0000415; CHECK-REPEAT-CGSCC-PASS-NEXT: Running pass: RepeatedPass
Chandler Carruth88823462016-08-24 09:37:14 +0000416; CHECK-REPEAT-CGSCC-PASS-NEXT: Starting CGSCC pass manager run
Chandler Carruth241bf242016-08-03 07:44:48 +0000417; CHECK-REPEAT-CGSCC-PASS-NEXT: Running pass: NoOpCGSCCPass
Chandler Carruth88823462016-08-24 09:37:14 +0000418; CHECK-REPEAT-CGSCC-PASS-NEXT: Finished CGSCC pass manager run
419; CHECK-REPEAT-CGSCC-PASS-NEXT: Starting CGSCC pass manager run
Chandler Carruth241bf242016-08-03 07:44:48 +0000420; CHECK-REPEAT-CGSCC-PASS-NEXT: Running pass: NoOpCGSCCPass
Chandler Carruth88823462016-08-24 09:37:14 +0000421; CHECK-REPEAT-CGSCC-PASS-NEXT: Finished CGSCC pass manager run
422; CHECK-REPEAT-CGSCC-PASS-NEXT: Starting CGSCC pass manager run
Chandler Carruth241bf242016-08-03 07:44:48 +0000423; CHECK-REPEAT-CGSCC-PASS-NEXT: Running pass: NoOpCGSCCPass
Chandler Carruth88823462016-08-24 09:37:14 +0000424; CHECK-REPEAT-CGSCC-PASS-NEXT: Finished CGSCC pass manager run
425; CHECK-REPEAT-CGSCC-PASS-NEXT: Finished CGSCC pass manager run
Chandler Carruth241bf242016-08-03 07:44:48 +0000426; CHECK-REPEAT-CGSCC-PASS-NEXT: Finished llvm::Module pass manager run
427
428; RUN: opt -disable-output -disable-verify -debug-pass-manager \
429; RUN: -passes='function(repeat<3>(no-op-function))' %s 2>&1 \
430; RUN: | FileCheck %s --check-prefix=CHECK-REPEAT-FUNCTION-PASS
431; CHECK-REPEAT-FUNCTION-PASS: Starting llvm::Module pass manager run
432; CHECK-REPEAT-FUNCTION-PASS-NEXT: Running pass: ModuleToFunctionPassAdaptor
433; CHECK-REPEAT-FUNCTION-PASS-NEXT: Running analysis: InnerAnalysisManagerProxy<{{.*}}>
Fedor Sergeevee8d31c2018-09-20 17:08:45 +0000434; CHECK-REPEAT-FUNCTION-PASS-NEXT: Running analysis: PassInstrumentationAnalysis
Chandler Carruth241bf242016-08-03 07:44:48 +0000435; CHECK-REPEAT-FUNCTION-PASS-NEXT: Starting llvm::Function pass manager run
Chandler Carrutha053a882016-08-04 03:52:53 +0000436; CHECK-REPEAT-FUNCTION-PASS-NEXT: Running pass: RepeatedPass
Chandler Carruth241bf242016-08-03 07:44:48 +0000437; CHECK-REPEAT-FUNCTION-PASS-NEXT: Starting llvm::Function pass manager run
438; CHECK-REPEAT-FUNCTION-PASS-NEXT: Running pass: NoOpFunctionPass
439; CHECK-REPEAT-FUNCTION-PASS-NEXT: Finished llvm::Function pass manager run
440; CHECK-REPEAT-FUNCTION-PASS-NEXT: Starting llvm::Function pass manager run
441; CHECK-REPEAT-FUNCTION-PASS-NEXT: Running pass: NoOpFunctionPass
442; CHECK-REPEAT-FUNCTION-PASS-NEXT: Finished llvm::Function pass manager run
443; CHECK-REPEAT-FUNCTION-PASS-NEXT: Starting llvm::Function pass manager run
444; CHECK-REPEAT-FUNCTION-PASS-NEXT: Running pass: NoOpFunctionPass
445; CHECK-REPEAT-FUNCTION-PASS-NEXT: Finished llvm::Function pass manager run
446; CHECK-REPEAT-FUNCTION-PASS-NEXT: Finished llvm::Function pass manager run
447; CHECK-REPEAT-FUNCTION-PASS-NEXT: Finished llvm::Module pass manager run
448
449; RUN: opt -disable-output -disable-verify -debug-pass-manager \
450; RUN: -passes='loop(repeat<3>(no-op-loop))' %s 2>&1 \
451; RUN: | FileCheck %s --check-prefix=CHECK-REPEAT-LOOP-PASS
452; CHECK-REPEAT-LOOP-PASS: Starting llvm::Module pass manager run
453; CHECK-REPEAT-LOOP-PASS-NEXT: Running pass: ModuleToFunctionPassAdaptor
454; CHECK-REPEAT-LOOP-PASS-NEXT: Running analysis: InnerAnalysisManagerProxy<{{.*}}>
Fedor Sergeevee8d31c2018-09-20 17:08:45 +0000455; CHECK-REPEAT-LOOP-PASS-NEXT: Running analysis: PassInstrumentationAnalysis
Chandler Carruth241bf242016-08-03 07:44:48 +0000456; CHECK-REPEAT-LOOP-PASS-NEXT: Starting llvm::Function pass manager run
457; CHECK-REPEAT-LOOP-PASS-NEXT: Running pass: FunctionToLoopPassAdaptor
Fedor Sergeev02e7f022017-12-29 08:16:06 +0000458; CHECK-REPEAT-LOOP-PASS-NEXT: Starting llvm::Function pass manager run
459; CHECK-REPEAT-LOOP-PASS-NEXT: Running pass: LoopSimplify
Chandler Carruth241bf242016-08-03 07:44:48 +0000460; CHECK-REPEAT-LOOP-PASS-NEXT: Running analysis: LoopAnalysis
461; CHECK-REPEAT-LOOP-PASS-NEXT: Running analysis: DominatorTreeAnalysis
Chandler Carruth17350de2017-01-21 03:48:51 +0000462; CHECK-REPEAT-LOOP-PASS-NEXT: Running analysis: AssumptionAnalysis
463; CHECK-REPEAT-LOOP-PASS-NEXT: Invalidating all non-preserved analyses
Fedor Sergeev02e7f022017-12-29 08:16:06 +0000464; CHECK-REPEAT-LOOP-PASS-NEXT: Running pass: LCSSAPass
465; CHECK-REPEAT-LOOP-PASS-NEXT: Finished llvm::Function pass manager run
Chandler Carruthe3f50642016-12-22 06:59:15 +0000466; CHECK-REPEAT-LOOP-PASS-NEXT: Running analysis: AAManager
467; CHECK-REPEAT-LOOP-PASS-NEXT: Running analysis: TargetLibraryAnalysis
Chandler Carruth410eaeb2017-01-11 06:23:21 +0000468; CHECK-REPEAT-LOOP-PASS-NEXT: Running analysis: ScalarEvolutionAnalysis
469; CHECK-REPEAT-LOOP-PASS-NEXT: Running analysis: TargetIRAnalysis
Chandler Carruthf4252922017-02-10 08:26:58 +0000470; CHECK-REPEAT-LOOP-PASS-NEXT: Running analysis: InnerAnalysisManagerProxy<{{.*}}>
Chandler Carruth410eaeb2017-01-11 06:23:21 +0000471; CHECK-REPEAT-LOOP-PASS-NEXT: Starting Loop pass manager run
Fedor Sergeevee8d31c2018-09-20 17:08:45 +0000472; CHECK-REPEAT-LOOP-PASS-NEXT: Running analysis: PassInstrumentationAnalysis
Chandler Carrutha053a882016-08-04 03:52:53 +0000473; CHECK-REPEAT-LOOP-PASS-NEXT: Running pass: RepeatedPass
Chandler Carruth410eaeb2017-01-11 06:23:21 +0000474; CHECK-REPEAT-LOOP-PASS-NEXT: Starting Loop pass manager run
Chandler Carruth241bf242016-08-03 07:44:48 +0000475; CHECK-REPEAT-LOOP-PASS-NEXT: Running pass: NoOpLoopPass
Chandler Carruth410eaeb2017-01-11 06:23:21 +0000476; CHECK-REPEAT-LOOP-PASS-NEXT: Finished Loop pass manager run
477; CHECK-REPEAT-LOOP-PASS-NEXT: Starting Loop pass manager run
Chandler Carruth241bf242016-08-03 07:44:48 +0000478; CHECK-REPEAT-LOOP-PASS-NEXT: Running pass: NoOpLoopPass
Chandler Carruth410eaeb2017-01-11 06:23:21 +0000479; CHECK-REPEAT-LOOP-PASS-NEXT: Finished Loop pass manager run
480; CHECK-REPEAT-LOOP-PASS-NEXT: Starting Loop pass manager run
Chandler Carruth241bf242016-08-03 07:44:48 +0000481; CHECK-REPEAT-LOOP-PASS-NEXT: Running pass: NoOpLoopPass
Chandler Carruth410eaeb2017-01-11 06:23:21 +0000482; CHECK-REPEAT-LOOP-PASS-NEXT: Finished Loop pass manager run
483; CHECK-REPEAT-LOOP-PASS-NEXT: Finished Loop pass manager run
Chandler Carruth241bf242016-08-03 07:44:48 +0000484; CHECK-REPEAT-LOOP-PASS-NEXT: Finished llvm::Function pass manager run
Chandler Carruth17350de2017-01-21 03:48:51 +0000485; CHECK-REPEAT-LOOP-PASS-NEXT: Invalidating all non-preserved analyses
Chandler Carruth241bf242016-08-03 07:44:48 +0000486; CHECK-REPEAT-LOOP-PASS-NEXT: Finished llvm::Module pass manager run
487
Chandler Carruth17c630a2016-12-27 08:44:39 +0000488define void @foo(i1 %x, i8* %p1, i8* %p2) {
Chandler Carruth241bf242016-08-03 07:44:48 +0000489entry:
Chandler Carruth17c630a2016-12-27 08:44:39 +0000490 store i8 42, i8* %p1
Chandler Carruth241bf242016-08-03 07:44:48 +0000491 br i1 %x, label %loop, label %exit
492
493loop:
Chandler Carruth17c630a2016-12-27 08:44:39 +0000494 %tmp1 = load i8, i8* %p2
Chandler Carruth241bf242016-08-03 07:44:48 +0000495 br label %loop
496
497exit:
Chandler Carruth52eef882014-01-12 12:15:39 +0000498 ret void
499}
Chandler Carruth9f8d9b62015-02-01 10:47:25 +0000500
501declare void @bar()