blob: 3e8c059820f23b1a8f69c10b6c30dadc352bd838 [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 Carruthdca83402016-06-27 23:26:08 +000026; CHECK-CGSCC-PASS-NEXT: Running an SCC pass across the RefSCC: [(foo)]
Chandler Carruth88823462016-08-24 09:37:14 +000027; CHECK-CGSCC-PASS-NEXT: Starting CGSCC pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +000028; CHECK-CGSCC-PASS-NEXT: Running pass: NoOpCGSCCPass
Chandler Carruth88823462016-08-24 09:37:14 +000029; CHECK-CGSCC-PASS-NEXT: Finished CGSCC pass manager run
Chandler Carruth395fe572016-02-25 10:27:39 +000030; CHECK-CGSCC-PASS-NEXT: Finished llvm::Module pass manager run
Chandler Carruthea368f12015-01-06 08:37:58 +000031
Chandler Carruth703378f2015-01-13 22:45:13 +000032; RUN: opt -disable-output -disable-verify -debug-pass-manager \
Chandler Carruthea368f12015-01-06 08:37:58 +000033; RUN: -passes=no-op-function %s 2>&1 \
34; RUN: | FileCheck %s --check-prefix=CHECK-FUNCTION-PASS
Chandler Carruth703378f2015-01-13 22:45:13 +000035; RUN: opt -disable-output -disable-verify -debug-pass-manager \
Chandler Carruthea368f12015-01-06 08:37:58 +000036; RUN: -passes='function(no-op-function)' %s 2>&1 \
37; RUN: | FileCheck %s --check-prefix=CHECK-FUNCTION-PASS
Chandler Carruth395fe572016-02-25 10:27:39 +000038; CHECK-FUNCTION-PASS: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +000039; CHECK-FUNCTION-PASS-NEXT: Running pass: ModuleToFunctionPassAdaptor
Chandler Carruth30811a42016-02-27 11:07:16 +000040; CHECK-FUNCTION-PASS-NEXT: Running analysis: InnerAnalysisManagerProxy<{{.*}}>
Chandler Carruth395fe572016-02-25 10:27:39 +000041; CHECK-FUNCTION-PASS-NEXT: Starting llvm::Function pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +000042; CHECK-FUNCTION-PASS-NEXT: Running pass: NoOpFunctionPass
Chandler Carruth395fe572016-02-25 10:27:39 +000043; CHECK-FUNCTION-PASS-NEXT: Finished llvm::Function pass manager run
44; CHECK-FUNCTION-PASS-NEXT: Finished llvm::Module pass manager run
Chandler Carruthea368f12015-01-06 08:37:58 +000045
Chandler Carruth52eef882014-01-12 12:15:39 +000046; RUN: opt -disable-output -debug-pass-manager -passes=print %s 2>&1 \
47; RUN: | FileCheck %s --check-prefix=CHECK-MODULE-PRINT
Chandler Carruth395fe572016-02-25 10:27:39 +000048; CHECK-MODULE-PRINT: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +000049; CHECK-MODULE-PRINT: Running pass: VerifierPass
50; CHECK-MODULE-PRINT: Running pass: PrintModulePass
Chandler Carruth52eef882014-01-12 12:15:39 +000051; CHECK-MODULE-PRINT: ModuleID
Chandler Carruth17c630a2016-12-27 08:44:39 +000052; CHECK-MODULE-PRINT: define void @foo(i1 %x, i8* %p1, i8* %p2)
Chandler Carruth816702f2015-01-13 11:13:56 +000053; CHECK-MODULE-PRINT: Running pass: VerifierPass
Chandler Carruth395fe572016-02-25 10:27:39 +000054; CHECK-MODULE-PRINT: Finished llvm::Module pass manager run
Chandler Carruth52eef882014-01-12 12:15:39 +000055
Chandler Carruth9c31db42015-01-05 00:08:53 +000056; RUN: opt -disable-output -debug-pass-manager -disable-verify -passes='print,verify' %s 2>&1 \
57; RUN: | FileCheck %s --check-prefix=CHECK-MODULE-VERIFY
Chandler Carruth395fe572016-02-25 10:27:39 +000058; CHECK-MODULE-VERIFY: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +000059; CHECK-MODULE-VERIFY: Running pass: PrintModulePass
Chandler Carruth9c31db42015-01-05 00:08:53 +000060; CHECK-MODULE-VERIFY: ModuleID
Chandler Carruth17c630a2016-12-27 08:44:39 +000061; CHECK-MODULE-VERIFY: define void @foo(i1 %x, i8* %p1, i8* %p2)
Chandler Carruth816702f2015-01-13 11:13:56 +000062; CHECK-MODULE-VERIFY: Running pass: VerifierPass
Chandler Carruth395fe572016-02-25 10:27:39 +000063; CHECK-MODULE-VERIFY: Finished llvm::Module pass manager run
Chandler Carruth9c31db42015-01-05 00:08:53 +000064
Chandler Carruth52eef882014-01-12 12:15:39 +000065; RUN: opt -disable-output -debug-pass-manager -passes='function(print)' %s 2>&1 \
66; RUN: | FileCheck %s --check-prefix=CHECK-FUNCTION-PRINT
Chandler Carruth395fe572016-02-25 10:27:39 +000067; CHECK-FUNCTION-PRINT: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +000068; CHECK-FUNCTION-PRINT: Running pass: VerifierPass
69; CHECK-FUNCTION-PRINT: Running pass: ModuleToFunctionPassAdaptor
Chandler Carruth30811a42016-02-27 11:07:16 +000070; CHECK-FUNCTION-PRINT: Running analysis: InnerAnalysisManagerProxy<{{.*}}>
Chandler Carruth395fe572016-02-25 10:27:39 +000071; CHECK-FUNCTION-PRINT: Starting llvm::Function pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +000072; CHECK-FUNCTION-PRINT: Running pass: PrintFunctionPass
Chandler Carruth52eef882014-01-12 12:15:39 +000073; CHECK-FUNCTION-PRINT-NOT: ModuleID
Chandler Carruth17c630a2016-12-27 08:44:39 +000074; CHECK-FUNCTION-PRINT: define void @foo(i1 %x, i8* %p1, i8* %p2)
Chandler Carruth395fe572016-02-25 10:27:39 +000075; CHECK-FUNCTION-PRINT: Finished llvm::Function pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +000076; CHECK-FUNCTION-PRINT: Running pass: VerifierPass
Chandler Carruth395fe572016-02-25 10:27:39 +000077; CHECK-FUNCTION-PRINT: Finished llvm::Module pass manager run
Chandler Carruth52eef882014-01-12 12:15:39 +000078
Chandler Carruth9c31db42015-01-05 00:08:53 +000079; RUN: opt -disable-output -debug-pass-manager -disable-verify -passes='function(print,verify)' %s 2>&1 \
80; RUN: | FileCheck %s --check-prefix=CHECK-FUNCTION-VERIFY
Chandler Carruth395fe572016-02-25 10:27:39 +000081; CHECK-FUNCTION-VERIFY: Starting llvm::Module pass manager run
82; CHECK-FUNCTION-VERIFY: Starting llvm::Function pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +000083; CHECK-FUNCTION-VERIFY: Running pass: PrintFunctionPass
Chandler Carruth9c31db42015-01-05 00:08:53 +000084; CHECK-FUNCTION-VERIFY-NOT: ModuleID
Chandler Carruth17c630a2016-12-27 08:44:39 +000085; CHECK-FUNCTION-VERIFY: define void @foo(i1 %x, i8* %p1, i8* %p2)
Chandler Carruth816702f2015-01-13 11:13:56 +000086; CHECK-FUNCTION-VERIFY: Running pass: VerifierPass
Chandler Carruth395fe572016-02-25 10:27:39 +000087; CHECK-FUNCTION-VERIFY: Finished llvm::Function pass manager run
88; CHECK-FUNCTION-VERIFY: Finished llvm::Module pass manager run
Chandler Carruth9c31db42015-01-05 00:08:53 +000089
Chandler Carruthb353c3f2014-01-13 05:16:45 +000090; RUN: opt -S -o - -passes='no-op-module,no-op-module' %s \
91; RUN: | FileCheck %s --check-prefix=CHECK-NOOP
Chandler Carruth17c630a2016-12-27 08:44:39 +000092; CHECK-NOOP: define void @foo(i1 %x, i8* %p1, i8* %p2) {
Chandler Carruth241bf242016-08-03 07:44:48 +000093; CHECK-NOOP: entry:
Chandler Carruth17c630a2016-12-27 08:44:39 +000094; CHECK-NOOP: store i8 42, i8* %p1
Chandler Carruth241bf242016-08-03 07:44:48 +000095; CHECK-NOOP: br i1 %x, label %loop, label %exit
96; CHECK-NOOP: loop:
Chandler Carruth17c630a2016-12-27 08:44:39 +000097; CHECK-NOOP: %tmp1 = load i8, i8* %p2
Chandler Carruth241bf242016-08-03 07:44:48 +000098; CHECK-NOOP: br label %loop
99; CHECK-NOOP: exit:
Chandler Carruthb353c3f2014-01-13 05:16:45 +0000100; CHECK-NOOP: ret void
101; CHECK-NOOP: }
102
Chandler Carruthb7bdfd62014-01-13 07:38:24 +0000103; Round trip through bitcode.
104; RUN: opt -f -o - -passes='no-op-module,no-op-module' %s \
105; RUN: | llvm-dis \
106; RUN: | FileCheck %s --check-prefix=CHECK-NOOP
107
Chandler Carruth4d356312014-01-20 11:34:08 +0000108; RUN: opt -disable-output -debug-pass-manager -verify-each -passes='no-op-module,function(no-op-function)' %s 2>&1 \
109; RUN: | FileCheck %s --check-prefix=CHECK-VERIFY-EACH
Chandler Carruth395fe572016-02-25 10:27:39 +0000110; CHECK-VERIFY-EACH: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000111; CHECK-VERIFY-EACH: Running pass: VerifierPass
112; CHECK-VERIFY-EACH: Running pass: NoOpModulePass
113; CHECK-VERIFY-EACH: Running pass: VerifierPass
Chandler Carruth395fe572016-02-25 10:27:39 +0000114; CHECK-VERIFY-EACH: Starting llvm::Function pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000115; CHECK-VERIFY-EACH: Running pass: NoOpFunctionPass
116; CHECK-VERIFY-EACH: Running pass: VerifierPass
Chandler Carruth395fe572016-02-25 10:27:39 +0000117; CHECK-VERIFY-EACH: Finished llvm::Function pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000118; CHECK-VERIFY-EACH: Running pass: VerifierPass
Chandler Carruth395fe572016-02-25 10:27:39 +0000119; CHECK-VERIFY-EACH: Finished llvm::Module pass manager run
Chandler Carruth4d356312014-01-20 11:34:08 +0000120
121; RUN: opt -disable-output -debug-pass-manager -disable-verify -passes='no-op-module,function(no-op-function)' %s 2>&1 \
122; RUN: | FileCheck %s --check-prefix=CHECK-NO-VERIFY
Chandler Carruth395fe572016-02-25 10:27:39 +0000123; CHECK-NO-VERIFY: Starting llvm::Module pass manager run
Chandler Carruth4d356312014-01-20 11:34:08 +0000124; CHECK-NO-VERIFY-NOT: VerifierPass
Chandler Carruth816702f2015-01-13 11:13:56 +0000125; CHECK-NO-VERIFY: Running pass: NoOpModulePass
Chandler Carruth4d356312014-01-20 11:34:08 +0000126; CHECK-NO-VERIFY-NOT: VerifierPass
Chandler Carruth395fe572016-02-25 10:27:39 +0000127; CHECK-NO-VERIFY: Starting llvm::Function pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000128; CHECK-NO-VERIFY: Running pass: NoOpFunctionPass
Chandler Carruth4d356312014-01-20 11:34:08 +0000129; CHECK-NO-VERIFY-NOT: VerifierPass
Chandler Carruth395fe572016-02-25 10:27:39 +0000130; CHECK-NO-VERIFY: Finished llvm::Function pass manager run
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::Module pass manager run
Chandler Carruth4d356312014-01-20 11:34:08 +0000133
Chandler Carruth703378f2015-01-13 22:45:13 +0000134; RUN: opt -disable-output -debug-pass-manager \
Chandler Carruth0b576b32015-01-06 02:50:06 +0000135; RUN: -passes='require<no-op-module>,cgscc(require<no-op-cgscc>,function(require<no-op-function>))' %s 2>&1 \
136; RUN: | FileCheck %s --check-prefix=CHECK-ANALYSES
Chandler Carruth395fe572016-02-25 10:27:39 +0000137; CHECK-ANALYSES: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000138; CHECK-ANALYSES: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000139; CHECK-ANALYSES: Running analysis: NoOpModuleAnalysis
Chandler Carruth88823462016-08-24 09:37:14 +0000140; CHECK-ANALYSES: Starting CGSCC pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000141; CHECK-ANALYSES: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000142; CHECK-ANALYSES: Running analysis: NoOpCGSCCAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000143; CHECK-ANALYSES: Starting llvm::Function pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000144; CHECK-ANALYSES: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000145; CHECK-ANALYSES: Running analysis: NoOpFunctionAnalysis
Chandler Carruthe5e8fb32015-01-05 12:21:44 +0000146
Chandler Carruth539dc4b2015-01-05 12:32:11 +0000147; Make sure no-op passes that preserve all analyses don't even try to do any
148; analysis invalidation.
Chandler Carruth703378f2015-01-13 22:45:13 +0000149; RUN: opt -disable-output -debug-pass-manager \
Chandler Carruth0b576b32015-01-06 02:50:06 +0000150; 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 +0000151; RUN: | FileCheck %s --check-prefix=CHECK-NO-OP-INVALIDATION
Chandler Carruth395fe572016-02-25 10:27:39 +0000152; CHECK-NO-OP-INVALIDATION: Starting llvm::Module pass manager run
Chandler Carruth539dc4b2015-01-05 12:32:11 +0000153; CHECK-NO-OP-INVALIDATION-NOT: Invalidating all non-preserved analyses
154
Chandler Carruth703378f2015-01-13 22:45:13 +0000155; RUN: opt -disable-output -debug-pass-manager \
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000156; RUN: -passes='require<no-op-module>,require<no-op-module>,require<no-op-module>' %s 2>&1 \
157; RUN: | FileCheck %s --check-prefix=CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS
Chandler Carruth395fe572016-02-25 10:27:39 +0000158; CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000159; CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000160; CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS: Running analysis: NoOpModuleAnalysis
161; CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS-NOT: Running analysis: NoOpModuleAnalysis
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000162
Chandler Carruth703378f2015-01-13 22:45:13 +0000163; RUN: opt -disable-output -debug-pass-manager \
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000164; RUN: -passes='require<no-op-module>,invalidate<no-op-module>,require<no-op-module>' %s 2>&1 \
165; RUN: | FileCheck %s --check-prefix=CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS
Chandler Carruth395fe572016-02-25 10:27:39 +0000166; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000167; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000168; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Running analysis: NoOpModuleAnalysis
169; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Invalidating analysis: NoOpModuleAnalysis
170; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Running analysis: NoOpModuleAnalysis
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000171
Chandler Carruth703378f2015-01-13 22:45:13 +0000172; RUN: opt -disable-output -debug-pass-manager \
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000173; RUN: -passes='cgscc(require<no-op-cgscc>,require<no-op-cgscc>,require<no-op-cgscc>)' %s 2>&1 \
174; RUN: | FileCheck %s --check-prefix=CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS
Chandler Carruth395fe572016-02-25 10:27:39 +0000175; CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000176; CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000177; CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS: Running analysis: NoOpCGSCCAnalysis
178; CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS-NOT: Running analysis: NoOpCGSCCAnalysis
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000179
Chandler Carruth703378f2015-01-13 22:45:13 +0000180; RUN: opt -disable-output -debug-pass-manager \
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000181; RUN: -passes='cgscc(require<no-op-cgscc>,invalidate<no-op-cgscc>,require<no-op-cgscc>)' %s 2>&1 \
182; RUN: | FileCheck %s --check-prefix=CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS
Chandler Carruth395fe572016-02-25 10:27:39 +0000183; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000184; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000185; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Running analysis: NoOpCGSCCAnalysis
186; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Invalidating analysis: NoOpCGSCCAnalysis
187; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Running analysis: NoOpCGSCCAnalysis
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000188
Chandler Carruth703378f2015-01-13 22:45:13 +0000189; RUN: opt -disable-output -debug-pass-manager \
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000190; RUN: -passes='function(require<no-op-function>,require<no-op-function>,require<no-op-function>)' %s 2>&1 \
191; RUN: | FileCheck %s --check-prefix=CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS
Chandler Carruth395fe572016-02-25 10:27:39 +0000192; CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000193; CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000194; CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS: Running analysis: NoOpFunctionAnalysis
195; CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS-NOT: Running analysis: NoOpFunctionAnalysis
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000196
Chandler Carruth703378f2015-01-13 22:45:13 +0000197; RUN: opt -disable-output -debug-pass-manager \
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000198; RUN: -passes='function(require<no-op-function>,invalidate<no-op-function>,require<no-op-function>)' %s 2>&1 \
199; RUN: | FileCheck %s --check-prefix=CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS
Chandler Carruth395fe572016-02-25 10:27:39 +0000200; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000201; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000202; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Running analysis: NoOpFunctionAnalysis
203; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Invalidating analysis: NoOpFunctionAnalysis
204; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Running analysis: NoOpFunctionAnalysis
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000205
Chandler Carruth703378f2015-01-13 22:45:13 +0000206; RUN: opt -disable-output -disable-verify -debug-pass-manager \
Chandler Carruthfdb41802015-01-07 01:58:35 +0000207; 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 +0000208; RUN: | FileCheck %s --check-prefix=CHECK-INVALIDATE-ALL
Chandler Carruth395fe572016-02-25 10:27:39 +0000209; CHECK-INVALIDATE-ALL: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000210; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000211; CHECK-INVALIDATE-ALL: Running analysis: NoOpModuleAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000212; CHECK-INVALIDATE-ALL: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000213; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000214; CHECK-INVALIDATE-ALL-NOT: Running analysis: NoOpModuleAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000215; CHECK-INVALIDATE-ALL: Starting llvm::Function pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000216; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000217; CHECK-INVALIDATE-ALL: Running analysis: NoOpFunctionAnalysis
Chandler Carruth816702f2015-01-13 11:13:56 +0000218; CHECK-INVALIDATE-ALL: Running pass: InvalidateAllAnalysesPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000219; CHECK-INVALIDATE-ALL: Invalidating analysis: NoOpFunctionAnalysis
Chandler Carruth816702f2015-01-13 11:13:56 +0000220; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000221; CHECK-INVALIDATE-ALL: Running analysis: NoOpFunctionAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000222; CHECK-INVALIDATE-ALL: Finished llvm::Function pass manager run
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000223; CHECK-INVALIDATE-ALL: Invalidating analysis: NoOpModuleAnalysis
Chandler Carruth816702f2015-01-13 11:13:56 +0000224; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000225; CHECK-INVALIDATE-ALL: Running analysis: NoOpModuleAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000226; CHECK-INVALIDATE-ALL: Finished llvm::Module pass manager run
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000227; CHECK-INVALIDATE-ALL-NOT: Invalidating analysis: NoOpModuleAnalysis
Chandler Carruth816702f2015-01-13 11:13:56 +0000228; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000229; CHECK-INVALIDATE-ALL-NOT: Running analysis: NoOpModuleAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000230; CHECK-INVALIDATE-ALL: Finished llvm::Module pass manager run
Chandler Carruthfdb41802015-01-07 01:58:35 +0000231
Chandler Carruth703378f2015-01-13 22:45:13 +0000232; RUN: opt -disable-output -disable-verify -debug-pass-manager \
Chandler Carruthfdb41802015-01-07 01:58:35 +0000233; 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 \
234; RUN: | FileCheck %s --check-prefix=CHECK-INVALIDATE-ALL-CG
Chandler Carruth395fe572016-02-25 10:27:39 +0000235; CHECK-INVALIDATE-ALL-CG: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000236; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000237; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpModuleAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000238; CHECK-INVALIDATE-ALL-CG: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000239; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000240; CHECK-INVALIDATE-ALL-CG-NOT: Running analysis: NoOpModuleAnalysis
Chandler Carruth88823462016-08-24 09:37:14 +0000241; CHECK-INVALIDATE-ALL-CG: Starting CGSCC pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000242; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000243; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpCGSCCAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000244; CHECK-INVALIDATE-ALL-CG: Starting llvm::Function pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000245; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000246; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpFunctionAnalysis
Chandler Carruth816702f2015-01-13 11:13:56 +0000247; CHECK-INVALIDATE-ALL-CG: Running pass: InvalidateAllAnalysesPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000248; CHECK-INVALIDATE-ALL-CG: Invalidating analysis: NoOpFunctionAnalysis
Chandler Carruth816702f2015-01-13 11:13:56 +0000249; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000250; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpFunctionAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000251; CHECK-INVALIDATE-ALL-CG: Finished llvm::Function pass manager run
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000252; CHECK-INVALIDATE-ALL-CG-NOT: Running analysis: NoOpFunctionAnalysis
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000253; CHECK-INVALIDATE-ALL-CG: Invalidating analysis: NoOpCGSCCAnalysis
Chandler Carruth816702f2015-01-13 11:13:56 +0000254; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000255; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpCGSCCAnalysis
Chandler Carruth88823462016-08-24 09:37:14 +0000256; CHECK-INVALIDATE-ALL-CG: Finished CGSCC pass manager run
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000257; CHECK-INVALIDATE-ALL-CG-NOT: Invalidating analysis: NoOpCGSCCAnalysis
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000258; CHECK-INVALIDATE-ALL-CG: Invalidating analysis: NoOpModuleAnalysis
Chandler Carruth816702f2015-01-13 11:13:56 +0000259; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000260; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpModuleAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000261; CHECK-INVALIDATE-ALL-CG: Finished llvm::Module pass manager run
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000262; CHECK-INVALIDATE-ALL-CG-NOT: Invalidating analysis: NoOpModuleAnalysis
Chandler Carruth816702f2015-01-13 11:13:56 +0000263; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000264; CHECK-INVALIDATE-ALL-CG-NOT: Running analysis: NoOpModuleAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000265; CHECK-INVALIDATE-ALL-CG: Finished llvm::Module pass manager run
Chandler Carruth4e107caf2015-01-06 09:06:35 +0000266
Chandler Carruth8ca43222015-01-15 11:39:46 +0000267; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
268; RUN: -passes='require<targetlibinfo>,invalidate<all>,require<targetlibinfo>' \
269; RUN: | FileCheck %s --check-prefix=CHECK-TLI
Chandler Carruth395fe572016-02-25 10:27:39 +0000270; CHECK-TLI: Starting llvm::Module pass manager run
Chandler Carruth8ca43222015-01-15 11:39:46 +0000271; CHECK-TLI: Running pass: RequireAnalysisPass
272; CHECK-TLI: Running analysis: TargetLibraryAnalysis
273; CHECK-TLI: Running pass: InvalidateAllAnalysesPass
274; CHECK-TLI-NOT: Invalidating analysis: TargetLibraryAnalysis
275; CHECK-TLI: Running pass: RequireAnalysisPass
276; CHECK-TLI-NOT: Running analysis: TargetLibraryAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000277; CHECK-TLI: Finished llvm::Module pass manager run
Chandler Carruth8ca43222015-01-15 11:39:46 +0000278
Chandler Carruthe0385522015-02-01 10:11:22 +0000279; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
280; RUN: -passes='require<targetir>,invalidate<all>,require<targetir>' \
281; RUN: | FileCheck %s --check-prefix=CHECK-TIRA
Chandler Carruth395fe572016-02-25 10:27:39 +0000282; CHECK-TIRA: Starting llvm::Module pass manager run
Chandler Carruthe0385522015-02-01 10:11:22 +0000283; CHECK-TIRA: Running pass: RequireAnalysisPass
284; CHECK-TIRA: Running analysis: TargetIRAnalysis
285; CHECK-TIRA: Running pass: InvalidateAllAnalysesPass
286; CHECK-TIRA-NOT: Invalidating analysis: TargetIRAnalysis
287; CHECK-TIRA: Running pass: RequireAnalysisPass
288; CHECK-TIRA-NOT: Running analysis: TargetIRAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000289; CHECK-TIRA: Finished llvm::Module pass manager run
Chandler Carruthe0385522015-02-01 10:11:22 +0000290
Chandler Carruth9f8d9b62015-02-01 10:47:25 +0000291; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
292; RUN: -passes='require<domtree>' \
293; RUN: | FileCheck %s --check-prefix=CHECK-DT
Chandler Carruth395fe572016-02-25 10:27:39 +0000294; CHECK-DT: Starting llvm::Module pass manager run
Chandler Carruth9f8d9b62015-02-01 10:47:25 +0000295; CHECK-DT: Running pass: RequireAnalysisPass
296; CHECK-DT: Running analysis: DominatorTreeAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000297; CHECK-DT: Finished llvm::Module pass manager run
Chandler Carruth9f8d9b62015-02-01 10:47:25 +0000298
Chandler Carruth6f5770b102016-02-13 23:32:00 +0000299; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
Chandler Carruthbece8d52016-02-13 23:46:24 +0000300; RUN: -passes='require<basic-aa>' \
301; RUN: | FileCheck %s --check-prefix=CHECK-BASIC-AA
Chandler Carruth395fe572016-02-25 10:27:39 +0000302; CHECK-BASIC-AA: Starting llvm::Module pass manager run
Chandler Carruthbece8d52016-02-13 23:46:24 +0000303; CHECK-BASIC-AA: Running pass: RequireAnalysisPass
304; CHECK-BASIC-AA: Running analysis: BasicAA
Chandler Carruth395fe572016-02-25 10:27:39 +0000305; CHECK-BASIC-AA: Finished llvm::Module pass manager run
Chandler Carruthbece8d52016-02-13 23:46:24 +0000306
Chandler Carruthedf59962016-02-18 09:45:17 +0000307; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
308; RUN: -passes='require<aa>' -aa-pipeline='basic-aa' \
309; RUN: | FileCheck %s --check-prefix=CHECK-AA
Chandler Carruth395fe572016-02-25 10:27:39 +0000310; CHECK-AA: Starting llvm::Module pass manager run
Chandler Carruthedf59962016-02-18 09:45:17 +0000311; CHECK-AA: Running pass: RequireAnalysisPass
312; CHECK-AA: Running analysis: AAManager
313; CHECK-AA: Running analysis: BasicAA
Chandler Carruth395fe572016-02-25 10:27:39 +0000314; CHECK-AA: Finished llvm::Module pass manager run
Chandler Carruthedf59962016-02-18 09:45:17 +0000315
Chandler Carruth61440d22016-03-10 00:55:30 +0000316; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
Chandler Carruth060ad612016-12-23 20:38:19 +0000317; RUN: -passes='require<aa>' -aa-pipeline='default' \
318; RUN: | FileCheck %s --check-prefix=CHECK-AA-DEFAULT
319; CHECK-AA-DEFAULT: Starting llvm::Module pass manager run
320; CHECK-AA-DEFAULT: Running pass: RequireAnalysisPass
321; CHECK-AA-DEFAULT: Running analysis: AAManager
322; CHECK-AA-DEFAULT: Running analysis: BasicAA
323; CHECK-AA-DEFAULT: Running analysis: ScopedNoAliasAA
324; CHECK-AA-DEFAULT: Running analysis: TypeBasedAA
325; CHECK-AA-DEFAULT: Finished llvm::Module pass manager run
326
327; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
Chandler Carruthaa351672016-12-27 10:30:45 +0000328; RUN: -passes='require<aa>,invalidate<domtree>,aa-eval' -aa-pipeline='basic-aa' \
Chandler Carruth17c630a2016-12-27 08:44:39 +0000329; RUN: | FileCheck %s --check-prefix=CHECK-AA-FUNCTION-INVALIDATE
330; CHECK-AA-FUNCTION-INVALIDATE: Starting llvm::Function pass manager run
331; CHECK-AA-FUNCTION-INVALIDATE: Running pass: RequireAnalysisPass
332; CHECK-AA-FUNCTION-INVALIDATE: Running analysis: AAManager
333; CHECK-AA-FUNCTION-INVALIDATE: Running analysis: BasicAA
334; CHECK-AA-FUNCTION-INVALIDATE: Running pass: InvalidateAnalysisPass
Chandler Carruthaa351672016-12-27 10:30:45 +0000335; CHECK-AA-FUNCTION-INVALIDATE: Invalidating analysis: DominatorTreeAnalysis
Chandler Carruth17c630a2016-12-27 08:44:39 +0000336; CHECK-AA-FUNCTION-INVALIDATE: Invalidating analysis: BasicAA
337; CHECK-AA-FUNCTION-INVALIDATE: Invalidating analysis: AAManager
338; CHECK-AA-FUNCTION-INVALIDATE: Running pass: AAEvaluator
339; CHECK-AA-FUNCTION-INVALIDATE: Running analysis: AAManager
340; CHECK-AA-FUNCTION-INVALIDATE: Running analysis: BasicAA
341; CHECK-AA-FUNCTION-INVALIDATE: Finished llvm::Function pass manager run
342
343; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
344; RUN: -passes='require<globals-aa>,function(require<aa>),invalidate<globals-aa>,require<globals-aa>,function(aa-eval)' -aa-pipeline='globals-aa' \
345; RUN: | FileCheck %s --check-prefix=CHECK-AA-MODULE-INVALIDATE
346; CHECK-AA-MODULE-INVALIDATE: Starting llvm::Module pass manager run
347; CHECK-AA-MODULE-INVALIDATE: Running pass: RequireAnalysisPass
348; CHECK-AA-MODULE-INVALIDATE: Running analysis: GlobalsAA
349; CHECK-AA-MODULE-INVALIDATE: Starting llvm::Function pass manager run
350; CHECK-AA-MODULE-INVALIDATE: Running pass: RequireAnalysisPass
351; CHECK-AA-MODULE-INVALIDATE: Running analysis: AAManager
352; CHECK-AA-MODULE-INVALIDATE: Finished llvm::Function pass manager run
353; CHECK-AA-MODULE-INVALIDATE: Running pass: InvalidateAnalysisPass
354; CHECK-AA-MODULE-INVALIDATE: Invalidating analysis: AAManager
355; CHECK-AA-MODULE-INVALIDATE: Invalidating analysis: GlobalsAA
356; CHECK-AA-MODULE-INVALIDATE: Running pass: RequireAnalysisPass
357; CHECK-AA-MODULE-INVALIDATE: Running analysis: GlobalsAA
358; CHECK-AA-MODULE-INVALIDATE: Starting llvm::Function pass manager run
359; CHECK-AA-MODULE-INVALIDATE: Running pass: AAEvaluator
360; CHECK-AA-MODULE-INVALIDATE: Running analysis: AAManager
361; CHECK-AA-MODULE-INVALIDATE: Finished llvm::Function pass manager run
362; CHECK-AA-MODULE-INVALIDATE: Finished llvm::Module pass manager run
363
364; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
Chandler Carruth61440d22016-03-10 00:55:30 +0000365; RUN: -passes='require<memdep>' \
366; RUN: | FileCheck %s --check-prefix=CHECK-MEMDEP
367; CHECK-MEMDEP: Starting llvm::Module pass manager run
368; CHECK-MEMDEP: Running pass: RequireAnalysisPass
369; CHECK-MEMDEP: Running analysis: MemoryDependenceAnalysis
370; CHECK-MEMDEP: Finished llvm::Module pass manager run
371
Chandler Carruth4c660f72016-03-10 11:24:11 +0000372; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
373; RUN: -passes='require<callgraph>' \
374; RUN: | FileCheck %s --check-prefix=CHECK-CALLGRAPH
375; CHECK-CALLGRAPH: Starting llvm::Module pass manager run
376; CHECK-CALLGRAPH: Running pass: RequireAnalysisPass
377; CHECK-CALLGRAPH: Running analysis: CallGraphAnalysis
378; CHECK-CALLGRAPH: Finished llvm::Module pass manager run
379
Chandler Carruth8b5a74192016-02-28 22:16:03 +0000380; RUN: opt -disable-output -disable-verify -debug-pass-manager \
381; RUN: -passes='default<O0>' %s 2>&1 \
Chandler Carruthe3f50642016-12-22 06:59:15 +0000382; RUN: | FileCheck %s --check-prefix=CHECK-O0
383; CHECK-O0: Starting llvm::Module pass manager run
384; CHECK-O0-NEXT: Finished llvm::Module pass manager run
385
Chandler Carruth8b5a74192016-02-28 22:16:03 +0000386; RUN: opt -disable-output -disable-verify -debug-pass-manager \
Chandler Carruth8b5a74192016-02-28 22:16:03 +0000387; RUN: -passes='lto<O2>' %s 2>&1 \
388; RUN: | FileCheck %s --check-prefix=CHECK-LTO-O2
389; CHECK-LTO-O2: Starting llvm::Module pass manager run
390; CHECK-LTO-O2: Running pass: InstCombinePass
391; CHECK-LTO-O2: Running pass: SimplifyCFGPass
392
Chandler Carruth241bf242016-08-03 07:44:48 +0000393; RUN: opt -disable-output -disable-verify -debug-pass-manager \
394; RUN: -passes='repeat<3>(no-op-module)' %s 2>&1 \
395; RUN: | FileCheck %s --check-prefix=CHECK-REPEAT-MODULE-PASS
396; CHECK-REPEAT-MODULE-PASS: Starting llvm::Module pass manager run
Chandler Carrutha053a882016-08-04 03:52:53 +0000397; CHECK-REPEAT-MODULE-PASS-NEXT: Running pass: RepeatedPass
Chandler Carruth241bf242016-08-03 07:44:48 +0000398; CHECK-REPEAT-MODULE-PASS-NEXT: Starting llvm::Module pass manager run
399; CHECK-REPEAT-MODULE-PASS-NEXT: Running pass: NoOpModulePass
400; CHECK-REPEAT-MODULE-PASS-NEXT: Finished llvm::Module pass manager run
401; CHECK-REPEAT-MODULE-PASS-NEXT: Starting llvm::Module pass manager run
402; CHECK-REPEAT-MODULE-PASS-NEXT: Running pass: NoOpModulePass
403; CHECK-REPEAT-MODULE-PASS-NEXT: Finished llvm::Module pass manager run
404; CHECK-REPEAT-MODULE-PASS-NEXT: Starting llvm::Module pass manager run
405; CHECK-REPEAT-MODULE-PASS-NEXT: Running pass: NoOpModulePass
406; CHECK-REPEAT-MODULE-PASS-NEXT: Finished llvm::Module pass manager run
407; CHECK-REPEAT-MODULE-PASS-NEXT: Finished llvm::Module pass manager run
408
409; RUN: opt -disable-output -disable-verify -debug-pass-manager \
410; RUN: -passes='cgscc(repeat<3>(no-op-cgscc))' %s 2>&1 \
411; RUN: | FileCheck %s --check-prefix=CHECK-REPEAT-CGSCC-PASS
412; CHECK-REPEAT-CGSCC-PASS: Starting llvm::Module pass manager run
413; CHECK-REPEAT-CGSCC-PASS-NEXT: Running pass: ModuleToPostOrderCGSCCPassAdaptor
Chandler Carruth0d1d4952016-12-22 07:53:20 +0000414; CHECK-REPEAT-CGSCC-PASS-NEXT: Running analysis: InnerAnalysisManagerProxy<{{.*(CGSCCAnalysisManager|AnalysisManager<.*LazyCallGraph::SCC.*>).*}},{{.*}}Module>
415; CHECK-REPEAT-CGSCC-PASS-NEXT: Running analysis: InnerAnalysisManagerProxy<{{.*(FunctionAnalysisManager|AnalysisManager<.*Function.*>).*}},{{.*}}Module>
Chandler Carruth241bf242016-08-03 07:44:48 +0000416; CHECK-REPEAT-CGSCC-PASS-NEXT: Running analysis: LazyCallGraphAnalysis
417; CHECK-REPEAT-CGSCC-PASS-NEXT: Running an SCC pass across the RefSCC: [(foo)]
Chandler Carruth88823462016-08-24 09:37:14 +0000418; CHECK-REPEAT-CGSCC-PASS-NEXT: Starting CGSCC pass manager run
Chandler Carrutha053a882016-08-04 03:52:53 +0000419; CHECK-REPEAT-CGSCC-PASS-NEXT: Running pass: RepeatedPass
Chandler Carruth88823462016-08-24 09:37:14 +0000420; CHECK-REPEAT-CGSCC-PASS-NEXT: Starting CGSCC pass manager run
Chandler Carruth241bf242016-08-03 07:44:48 +0000421; CHECK-REPEAT-CGSCC-PASS-NEXT: Running pass: NoOpCGSCCPass
Chandler Carruth88823462016-08-24 09:37:14 +0000422; CHECK-REPEAT-CGSCC-PASS-NEXT: Finished CGSCC pass manager run
423; CHECK-REPEAT-CGSCC-PASS-NEXT: Starting CGSCC pass manager run
Chandler Carruth241bf242016-08-03 07:44:48 +0000424; CHECK-REPEAT-CGSCC-PASS-NEXT: Running pass: NoOpCGSCCPass
Chandler Carruth88823462016-08-24 09:37:14 +0000425; CHECK-REPEAT-CGSCC-PASS-NEXT: Finished CGSCC pass manager run
426; CHECK-REPEAT-CGSCC-PASS-NEXT: Starting CGSCC pass manager run
Chandler Carruth241bf242016-08-03 07:44:48 +0000427; CHECK-REPEAT-CGSCC-PASS-NEXT: Running pass: NoOpCGSCCPass
Chandler Carruth88823462016-08-24 09:37:14 +0000428; CHECK-REPEAT-CGSCC-PASS-NEXT: Finished CGSCC pass manager run
429; CHECK-REPEAT-CGSCC-PASS-NEXT: Finished CGSCC pass manager run
Chandler Carruth241bf242016-08-03 07:44:48 +0000430; CHECK-REPEAT-CGSCC-PASS-NEXT: Finished llvm::Module pass manager run
431
432; RUN: opt -disable-output -disable-verify -debug-pass-manager \
433; RUN: -passes='function(repeat<3>(no-op-function))' %s 2>&1 \
434; RUN: | FileCheck %s --check-prefix=CHECK-REPEAT-FUNCTION-PASS
435; CHECK-REPEAT-FUNCTION-PASS: Starting llvm::Module pass manager run
436; CHECK-REPEAT-FUNCTION-PASS-NEXT: Running pass: ModuleToFunctionPassAdaptor
437; CHECK-REPEAT-FUNCTION-PASS-NEXT: Running analysis: InnerAnalysisManagerProxy<{{.*}}>
438; CHECK-REPEAT-FUNCTION-PASS-NEXT: Starting llvm::Function pass manager run
Chandler Carrutha053a882016-08-04 03:52:53 +0000439; CHECK-REPEAT-FUNCTION-PASS-NEXT: Running pass: RepeatedPass
Chandler Carruth241bf242016-08-03 07:44:48 +0000440; 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: Starting llvm::Function pass manager run
447; CHECK-REPEAT-FUNCTION-PASS-NEXT: Running pass: NoOpFunctionPass
448; CHECK-REPEAT-FUNCTION-PASS-NEXT: Finished llvm::Function pass manager run
449; CHECK-REPEAT-FUNCTION-PASS-NEXT: Finished llvm::Function pass manager run
450; CHECK-REPEAT-FUNCTION-PASS-NEXT: Finished llvm::Module pass manager run
451
452; RUN: opt -disable-output -disable-verify -debug-pass-manager \
453; RUN: -passes='loop(repeat<3>(no-op-loop))' %s 2>&1 \
454; RUN: | FileCheck %s --check-prefix=CHECK-REPEAT-LOOP-PASS
455; CHECK-REPEAT-LOOP-PASS: Starting llvm::Module pass manager run
456; CHECK-REPEAT-LOOP-PASS-NEXT: Running pass: ModuleToFunctionPassAdaptor
457; CHECK-REPEAT-LOOP-PASS-NEXT: Running analysis: InnerAnalysisManagerProxy<{{.*}}>
458; CHECK-REPEAT-LOOP-PASS-NEXT: Starting llvm::Function pass manager run
459; CHECK-REPEAT-LOOP-PASS-NEXT: Running pass: FunctionToLoopPassAdaptor
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
Chandler Carruthb6e32da2017-01-17 19:18:12 +0000464; CHECK-REPEAT-LOOP-PASS-NEXT: Running analysis: InnerAnalysisManagerProxy<{{.*}}>
Chandler Carruthe3f50642016-12-22 06:59:15 +0000465; CHECK-REPEAT-LOOP-PASS-NEXT: Running analysis: AAManager
466; CHECK-REPEAT-LOOP-PASS-NEXT: Running analysis: TargetLibraryAnalysis
Chandler Carruth410eaeb2017-01-11 06:23:21 +0000467; CHECK-REPEAT-LOOP-PASS-NEXT: Running analysis: ScalarEvolutionAnalysis
468; CHECK-REPEAT-LOOP-PASS-NEXT: Running analysis: TargetIRAnalysis
469; CHECK-REPEAT-LOOP-PASS-NEXT: Starting Loop pass manager run
Chandler Carrutha053a882016-08-04 03:52:53 +0000470; CHECK-REPEAT-LOOP-PASS-NEXT: Running pass: RepeatedPass
Chandler Carruth410eaeb2017-01-11 06:23:21 +0000471; CHECK-REPEAT-LOOP-PASS-NEXT: Starting Loop pass manager run
Chandler Carruth241bf242016-08-03 07:44:48 +0000472; CHECK-REPEAT-LOOP-PASS-NEXT: Running pass: NoOpLoopPass
Chandler Carruth410eaeb2017-01-11 06:23:21 +0000473; CHECK-REPEAT-LOOP-PASS-NEXT: Finished Loop pass manager run
474; 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: Finished Loop pass manager run
Chandler Carruth241bf242016-08-03 07:44:48 +0000481; CHECK-REPEAT-LOOP-PASS-NEXT: Finished llvm::Function pass manager run
Chandler Carruth17350de2017-01-21 03:48:51 +0000482; CHECK-REPEAT-LOOP-PASS-NEXT: Invalidating all non-preserved analyses
Chandler Carruth241bf242016-08-03 07:44:48 +0000483; CHECK-REPEAT-LOOP-PASS-NEXT: Finished llvm::Module pass manager run
484
Chandler Carruth17c630a2016-12-27 08:44:39 +0000485define void @foo(i1 %x, i8* %p1, i8* %p2) {
Chandler Carruth241bf242016-08-03 07:44:48 +0000486entry:
Chandler Carruth17c630a2016-12-27 08:44:39 +0000487 store i8 42, i8* %p1
Chandler Carruth241bf242016-08-03 07:44:48 +0000488 br i1 %x, label %loop, label %exit
489
490loop:
Chandler Carruth17c630a2016-12-27 08:44:39 +0000491 %tmp1 = load i8, i8* %p2
Chandler Carruth241bf242016-08-03 07:44:48 +0000492 br label %loop
493
494exit:
Chandler Carruth52eef882014-01-12 12:15:39 +0000495 ret void
496}
Chandler Carruth9f8d9b62015-02-01 10:47:25 +0000497
498declare void @bar()