blob: 35f596e7798885a40dac1e75d45862ee99bee37d [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
Chandler Carruthdca83402016-06-27 23:26:08 +000027; CHECK-CGSCC-PASS-NEXT: Running an SCC pass across the RefSCC: [(foo)]
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<{{.*}}>
Chandler Carruth395fe572016-02-25 10:27:39 +000042; CHECK-FUNCTION-PASS-NEXT: Starting llvm::Function pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +000043; CHECK-FUNCTION-PASS-NEXT: Running pass: NoOpFunctionPass
Chandler Carruth395fe572016-02-25 10:27:39 +000044; CHECK-FUNCTION-PASS-NEXT: Finished llvm::Function pass manager run
45; CHECK-FUNCTION-PASS-NEXT: Finished llvm::Module pass manager run
Chandler Carruthea368f12015-01-06 08:37:58 +000046
Chandler Carruth52eef882014-01-12 12:15:39 +000047; RUN: opt -disable-output -debug-pass-manager -passes=print %s 2>&1 \
48; RUN: | FileCheck %s --check-prefix=CHECK-MODULE-PRINT
Chandler Carruth395fe572016-02-25 10:27:39 +000049; CHECK-MODULE-PRINT: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +000050; CHECK-MODULE-PRINT: Running pass: VerifierPass
51; CHECK-MODULE-PRINT: Running pass: PrintModulePass
Chandler Carruth52eef882014-01-12 12:15:39 +000052; CHECK-MODULE-PRINT: ModuleID
Chandler Carruth17c630a2016-12-27 08:44:39 +000053; CHECK-MODULE-PRINT: define void @foo(i1 %x, i8* %p1, i8* %p2)
Chandler Carruth816702f2015-01-13 11:13:56 +000054; CHECK-MODULE-PRINT: Running pass: VerifierPass
Chandler Carruth395fe572016-02-25 10:27:39 +000055; CHECK-MODULE-PRINT: Finished llvm::Module pass manager run
Chandler Carruth52eef882014-01-12 12:15:39 +000056
Chandler Carruth9c31db42015-01-05 00:08:53 +000057; RUN: opt -disable-output -debug-pass-manager -disable-verify -passes='print,verify' %s 2>&1 \
58; RUN: | FileCheck %s --check-prefix=CHECK-MODULE-VERIFY
Chandler Carruth395fe572016-02-25 10:27:39 +000059; CHECK-MODULE-VERIFY: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +000060; CHECK-MODULE-VERIFY: Running pass: PrintModulePass
Chandler Carruth9c31db42015-01-05 00:08:53 +000061; CHECK-MODULE-VERIFY: ModuleID
Chandler Carruth17c630a2016-12-27 08:44:39 +000062; CHECK-MODULE-VERIFY: define void @foo(i1 %x, i8* %p1, i8* %p2)
Chandler Carruth816702f2015-01-13 11:13:56 +000063; CHECK-MODULE-VERIFY: Running pass: VerifierPass
Chandler Carruth395fe572016-02-25 10:27:39 +000064; CHECK-MODULE-VERIFY: Finished llvm::Module pass manager run
Chandler Carruth9c31db42015-01-05 00:08:53 +000065
Chandler Carruth52eef882014-01-12 12:15:39 +000066; RUN: opt -disable-output -debug-pass-manager -passes='function(print)' %s 2>&1 \
67; RUN: | FileCheck %s --check-prefix=CHECK-FUNCTION-PRINT
Chandler Carruth395fe572016-02-25 10:27:39 +000068; CHECK-FUNCTION-PRINT: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +000069; CHECK-FUNCTION-PRINT: Running pass: VerifierPass
70; CHECK-FUNCTION-PRINT: Running pass: ModuleToFunctionPassAdaptor
Chandler Carruth30811a42016-02-27 11:07:16 +000071; CHECK-FUNCTION-PRINT: Running analysis: InnerAnalysisManagerProxy<{{.*}}>
Chandler Carruth395fe572016-02-25 10:27:39 +000072; CHECK-FUNCTION-PRINT: Starting llvm::Function pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +000073; CHECK-FUNCTION-PRINT: Running pass: PrintFunctionPass
Chandler Carruth52eef882014-01-12 12:15:39 +000074; CHECK-FUNCTION-PRINT-NOT: ModuleID
Chandler Carruth17c630a2016-12-27 08:44:39 +000075; CHECK-FUNCTION-PRINT: define void @foo(i1 %x, i8* %p1, i8* %p2)
Chandler Carruth395fe572016-02-25 10:27:39 +000076; CHECK-FUNCTION-PRINT: Finished llvm::Function pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +000077; CHECK-FUNCTION-PRINT: Running pass: VerifierPass
Chandler Carruth395fe572016-02-25 10:27:39 +000078; CHECK-FUNCTION-PRINT: Finished llvm::Module pass manager run
Chandler Carruth52eef882014-01-12 12:15:39 +000079
Chandler Carruth9c31db42015-01-05 00:08:53 +000080; RUN: opt -disable-output -debug-pass-manager -disable-verify -passes='function(print,verify)' %s 2>&1 \
81; RUN: | FileCheck %s --check-prefix=CHECK-FUNCTION-VERIFY
Chandler Carruth395fe572016-02-25 10:27:39 +000082; CHECK-FUNCTION-VERIFY: Starting llvm::Module pass manager run
83; CHECK-FUNCTION-VERIFY: Starting llvm::Function pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +000084; CHECK-FUNCTION-VERIFY: Running pass: PrintFunctionPass
Chandler Carruth9c31db42015-01-05 00:08:53 +000085; CHECK-FUNCTION-VERIFY-NOT: ModuleID
Chandler Carruth17c630a2016-12-27 08:44:39 +000086; CHECK-FUNCTION-VERIFY: define void @foo(i1 %x, i8* %p1, i8* %p2)
Chandler Carruth816702f2015-01-13 11:13:56 +000087; CHECK-FUNCTION-VERIFY: Running pass: VerifierPass
Chandler Carruth395fe572016-02-25 10:27:39 +000088; CHECK-FUNCTION-VERIFY: Finished llvm::Function pass manager run
89; CHECK-FUNCTION-VERIFY: Finished llvm::Module pass manager run
Chandler Carruth9c31db42015-01-05 00:08:53 +000090
Chandler Carruthb353c3f2014-01-13 05:16:45 +000091; RUN: opt -S -o - -passes='no-op-module,no-op-module' %s \
92; RUN: | FileCheck %s --check-prefix=CHECK-NOOP
Chandler Carruth17c630a2016-12-27 08:44:39 +000093; CHECK-NOOP: define void @foo(i1 %x, i8* %p1, i8* %p2) {
Chandler Carruth241bf242016-08-03 07:44:48 +000094; CHECK-NOOP: entry:
Chandler Carruth17c630a2016-12-27 08:44:39 +000095; CHECK-NOOP: store i8 42, i8* %p1
Chandler Carruth241bf242016-08-03 07:44:48 +000096; CHECK-NOOP: br i1 %x, label %loop, label %exit
97; CHECK-NOOP: loop:
Chandler Carruth17c630a2016-12-27 08:44:39 +000098; CHECK-NOOP: %tmp1 = load i8, i8* %p2
Chandler Carruth241bf242016-08-03 07:44:48 +000099; CHECK-NOOP: br label %loop
100; CHECK-NOOP: exit:
Chandler Carruthb353c3f2014-01-13 05:16:45 +0000101; CHECK-NOOP: ret void
102; CHECK-NOOP: }
103
Chandler Carruthb7bdfd62014-01-13 07:38:24 +0000104; Round trip through bitcode.
105; RUN: opt -f -o - -passes='no-op-module,no-op-module' %s \
106; RUN: | llvm-dis \
107; RUN: | FileCheck %s --check-prefix=CHECK-NOOP
108
Chandler Carruth4d356312014-01-20 11:34:08 +0000109; RUN: opt -disable-output -debug-pass-manager -verify-each -passes='no-op-module,function(no-op-function)' %s 2>&1 \
110; RUN: | FileCheck %s --check-prefix=CHECK-VERIFY-EACH
Chandler Carruth395fe572016-02-25 10:27:39 +0000111; CHECK-VERIFY-EACH: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000112; CHECK-VERIFY-EACH: Running pass: VerifierPass
113; CHECK-VERIFY-EACH: Running pass: NoOpModulePass
114; CHECK-VERIFY-EACH: Running pass: VerifierPass
Chandler Carruth395fe572016-02-25 10:27:39 +0000115; CHECK-VERIFY-EACH: Starting llvm::Function pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000116; CHECK-VERIFY-EACH: Running pass: NoOpFunctionPass
117; CHECK-VERIFY-EACH: Running pass: VerifierPass
Chandler Carruth395fe572016-02-25 10:27:39 +0000118; CHECK-VERIFY-EACH: Finished llvm::Function pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000119; CHECK-VERIFY-EACH: Running pass: VerifierPass
Chandler Carruth395fe572016-02-25 10:27:39 +0000120; CHECK-VERIFY-EACH: Finished llvm::Module pass manager run
Chandler Carruth4d356312014-01-20 11:34:08 +0000121
122; RUN: opt -disable-output -debug-pass-manager -disable-verify -passes='no-op-module,function(no-op-function)' %s 2>&1 \
123; RUN: | FileCheck %s --check-prefix=CHECK-NO-VERIFY
Chandler Carruth395fe572016-02-25 10:27:39 +0000124; CHECK-NO-VERIFY: Starting llvm::Module pass manager run
Chandler Carruth4d356312014-01-20 11:34:08 +0000125; CHECK-NO-VERIFY-NOT: VerifierPass
Chandler Carruth816702f2015-01-13 11:13:56 +0000126; CHECK-NO-VERIFY: Running pass: NoOpModulePass
Chandler Carruth4d356312014-01-20 11:34:08 +0000127; CHECK-NO-VERIFY-NOT: VerifierPass
Chandler Carruth395fe572016-02-25 10:27:39 +0000128; CHECK-NO-VERIFY: Starting llvm::Function pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000129; CHECK-NO-VERIFY: Running pass: NoOpFunctionPass
Chandler Carruth4d356312014-01-20 11:34:08 +0000130; CHECK-NO-VERIFY-NOT: VerifierPass
Chandler Carruth395fe572016-02-25 10:27:39 +0000131; CHECK-NO-VERIFY: Finished llvm::Function pass manager run
Chandler Carruth4d356312014-01-20 11:34:08 +0000132; CHECK-NO-VERIFY-NOT: VerifierPass
Chandler Carruth395fe572016-02-25 10:27:39 +0000133; CHECK-NO-VERIFY: Finished llvm::Module pass manager run
Chandler Carruth4d356312014-01-20 11:34:08 +0000134
Chandler Carruth703378f2015-01-13 22:45:13 +0000135; RUN: opt -disable-output -debug-pass-manager \
Chandler Carruth0b576b32015-01-06 02:50:06 +0000136; RUN: -passes='require<no-op-module>,cgscc(require<no-op-cgscc>,function(require<no-op-function>))' %s 2>&1 \
137; RUN: | FileCheck %s --check-prefix=CHECK-ANALYSES
Chandler Carruth395fe572016-02-25 10:27:39 +0000138; CHECK-ANALYSES: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000139; CHECK-ANALYSES: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000140; CHECK-ANALYSES: Running analysis: NoOpModuleAnalysis
Chandler Carruth88823462016-08-24 09:37:14 +0000141; CHECK-ANALYSES: Starting CGSCC pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000142; CHECK-ANALYSES: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000143; CHECK-ANALYSES: Running analysis: NoOpCGSCCAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000144; CHECK-ANALYSES: Starting llvm::Function pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000145; CHECK-ANALYSES: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000146; CHECK-ANALYSES: Running analysis: NoOpFunctionAnalysis
Chandler Carruthe5e8fb32015-01-05 12:21:44 +0000147
Chandler Carruth539dc4b2015-01-05 12:32:11 +0000148; Make sure no-op passes that preserve all analyses don't even try to do any
149; analysis invalidation.
Chandler Carruth703378f2015-01-13 22:45:13 +0000150; RUN: opt -disable-output -debug-pass-manager \
Chandler Carruth0b576b32015-01-06 02:50:06 +0000151; 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 +0000152; RUN: | FileCheck %s --check-prefix=CHECK-NO-OP-INVALIDATION
Chandler Carruth395fe572016-02-25 10:27:39 +0000153; CHECK-NO-OP-INVALIDATION: Starting llvm::Module pass manager run
Chandler Carruth539dc4b2015-01-05 12:32:11 +0000154; CHECK-NO-OP-INVALIDATION-NOT: Invalidating all non-preserved analyses
155
Chandler Carruth703378f2015-01-13 22:45:13 +0000156; RUN: opt -disable-output -debug-pass-manager \
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000157; RUN: -passes='require<no-op-module>,require<no-op-module>,require<no-op-module>' %s 2>&1 \
158; RUN: | FileCheck %s --check-prefix=CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS
Chandler Carruth395fe572016-02-25 10:27:39 +0000159; CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000160; CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000161; CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS: Running analysis: NoOpModuleAnalysis
162; CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS-NOT: Running analysis: NoOpModuleAnalysis
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000163
Chandler Carruth703378f2015-01-13 22:45:13 +0000164; RUN: opt -disable-output -debug-pass-manager \
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000165; RUN: -passes='require<no-op-module>,invalidate<no-op-module>,require<no-op-module>' %s 2>&1 \
166; RUN: | FileCheck %s --check-prefix=CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS
Chandler Carruth395fe572016-02-25 10:27:39 +0000167; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000168; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000169; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Running analysis: NoOpModuleAnalysis
170; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Invalidating analysis: NoOpModuleAnalysis
171; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Running analysis: NoOpModuleAnalysis
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000172
Chandler Carruth703378f2015-01-13 22:45:13 +0000173; RUN: opt -disable-output -debug-pass-manager \
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000174; RUN: -passes='cgscc(require<no-op-cgscc>,require<no-op-cgscc>,require<no-op-cgscc>)' %s 2>&1 \
175; RUN: | FileCheck %s --check-prefix=CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS
Chandler Carruth395fe572016-02-25 10:27:39 +0000176; CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000177; CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000178; CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS: Running analysis: NoOpCGSCCAnalysis
179; CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS-NOT: Running analysis: NoOpCGSCCAnalysis
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000180
Chandler Carruth703378f2015-01-13 22:45:13 +0000181; RUN: opt -disable-output -debug-pass-manager \
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000182; RUN: -passes='cgscc(require<no-op-cgscc>,invalidate<no-op-cgscc>,require<no-op-cgscc>)' %s 2>&1 \
183; RUN: | FileCheck %s --check-prefix=CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS
Chandler Carruth395fe572016-02-25 10:27:39 +0000184; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000185; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000186; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Running analysis: NoOpCGSCCAnalysis
187; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Invalidating analysis: NoOpCGSCCAnalysis
188; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Running analysis: NoOpCGSCCAnalysis
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000189
Chandler Carruth703378f2015-01-13 22:45:13 +0000190; RUN: opt -disable-output -debug-pass-manager \
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000191; RUN: -passes='function(require<no-op-function>,require<no-op-function>,require<no-op-function>)' %s 2>&1 \
192; RUN: | FileCheck %s --check-prefix=CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS
Chandler Carruth395fe572016-02-25 10:27:39 +0000193; CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000194; CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000195; CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS: Running analysis: NoOpFunctionAnalysis
196; CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS-NOT: Running analysis: NoOpFunctionAnalysis
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000197
Chandler Carruth703378f2015-01-13 22:45:13 +0000198; RUN: opt -disable-output -debug-pass-manager \
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000199; RUN: -passes='function(require<no-op-function>,invalidate<no-op-function>,require<no-op-function>)' %s 2>&1 \
200; RUN: | FileCheck %s --check-prefix=CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS
Chandler Carruth395fe572016-02-25 10:27:39 +0000201; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000202; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000203; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Running analysis: NoOpFunctionAnalysis
204; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Invalidating analysis: NoOpFunctionAnalysis
205; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Running analysis: NoOpFunctionAnalysis
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000206
Chandler Carruth703378f2015-01-13 22:45:13 +0000207; RUN: opt -disable-output -disable-verify -debug-pass-manager \
Chandler Carruthfdb41802015-01-07 01:58:35 +0000208; 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 +0000209; RUN: | FileCheck %s --check-prefix=CHECK-INVALIDATE-ALL
Chandler Carruth395fe572016-02-25 10:27:39 +0000210; CHECK-INVALIDATE-ALL: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000211; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000212; CHECK-INVALIDATE-ALL: Running analysis: NoOpModuleAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000213; CHECK-INVALIDATE-ALL: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000214; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000215; CHECK-INVALIDATE-ALL-NOT: Running analysis: NoOpModuleAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000216; CHECK-INVALIDATE-ALL: Starting llvm::Function pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000217; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000218; CHECK-INVALIDATE-ALL: Running analysis: NoOpFunctionAnalysis
Chandler Carruth816702f2015-01-13 11:13:56 +0000219; CHECK-INVALIDATE-ALL: Running pass: InvalidateAllAnalysesPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000220; CHECK-INVALIDATE-ALL: Invalidating analysis: NoOpFunctionAnalysis
Chandler Carruth816702f2015-01-13 11:13:56 +0000221; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000222; CHECK-INVALIDATE-ALL: Running analysis: NoOpFunctionAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000223; CHECK-INVALIDATE-ALL: Finished llvm::Function pass manager run
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000224; CHECK-INVALIDATE-ALL: Invalidating analysis: NoOpModuleAnalysis
Chandler Carruth816702f2015-01-13 11:13:56 +0000225; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000226; CHECK-INVALIDATE-ALL: Running analysis: NoOpModuleAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000227; CHECK-INVALIDATE-ALL: Finished llvm::Module pass manager run
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000228; CHECK-INVALIDATE-ALL-NOT: Invalidating analysis: NoOpModuleAnalysis
Chandler Carruth816702f2015-01-13 11:13:56 +0000229; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000230; CHECK-INVALIDATE-ALL-NOT: Running analysis: NoOpModuleAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000231; CHECK-INVALIDATE-ALL: Finished llvm::Module pass manager run
Chandler Carruthfdb41802015-01-07 01:58:35 +0000232
Chandler Carruth703378f2015-01-13 22:45:13 +0000233; RUN: opt -disable-output -disable-verify -debug-pass-manager \
Chandler Carruthfdb41802015-01-07 01:58:35 +0000234; 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 \
235; RUN: | FileCheck %s --check-prefix=CHECK-INVALIDATE-ALL-CG
Chandler Carruth395fe572016-02-25 10:27:39 +0000236; CHECK-INVALIDATE-ALL-CG: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000237; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000238; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpModuleAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000239; CHECK-INVALIDATE-ALL-CG: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000240; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000241; CHECK-INVALIDATE-ALL-CG-NOT: Running analysis: NoOpModuleAnalysis
Chandler Carruth88823462016-08-24 09:37:14 +0000242; CHECK-INVALIDATE-ALL-CG: Starting CGSCC pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000243; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000244; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpCGSCCAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000245; CHECK-INVALIDATE-ALL-CG: Starting llvm::Function pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000246; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000247; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpFunctionAnalysis
Chandler Carruth816702f2015-01-13 11:13:56 +0000248; CHECK-INVALIDATE-ALL-CG: Running pass: InvalidateAllAnalysesPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000249; CHECK-INVALIDATE-ALL-CG: Invalidating analysis: NoOpFunctionAnalysis
Chandler Carruth816702f2015-01-13 11:13:56 +0000250; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000251; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpFunctionAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000252; CHECK-INVALIDATE-ALL-CG: Finished llvm::Function pass manager run
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000253; CHECK-INVALIDATE-ALL-CG-NOT: Running analysis: NoOpFunctionAnalysis
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000254; CHECK-INVALIDATE-ALL-CG: Invalidating analysis: NoOpCGSCCAnalysis
Chandler Carruth816702f2015-01-13 11:13:56 +0000255; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000256; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpCGSCCAnalysis
Chandler Carruth88823462016-08-24 09:37:14 +0000257; CHECK-INVALIDATE-ALL-CG: Finished CGSCC pass manager run
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000258; CHECK-INVALIDATE-ALL-CG-NOT: Invalidating analysis: NoOpCGSCCAnalysis
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000259; CHECK-INVALIDATE-ALL-CG: Invalidating analysis: NoOpModuleAnalysis
Chandler Carruth816702f2015-01-13 11:13:56 +0000260; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000261; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpModuleAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000262; CHECK-INVALIDATE-ALL-CG: Finished llvm::Module pass manager run
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000263; CHECK-INVALIDATE-ALL-CG-NOT: Invalidating analysis: NoOpModuleAnalysis
Chandler Carruth816702f2015-01-13 11:13:56 +0000264; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000265; CHECK-INVALIDATE-ALL-CG-NOT: Running analysis: NoOpModuleAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000266; CHECK-INVALIDATE-ALL-CG: Finished llvm::Module pass manager run
Chandler Carruth4e107caf2015-01-06 09:06:35 +0000267
Chandler Carruth8ca43222015-01-15 11:39:46 +0000268; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
269; RUN: -passes='require<targetlibinfo>,invalidate<all>,require<targetlibinfo>' \
270; RUN: | FileCheck %s --check-prefix=CHECK-TLI
Chandler Carruth395fe572016-02-25 10:27:39 +0000271; CHECK-TLI: Starting llvm::Module pass manager run
Chandler Carruth8ca43222015-01-15 11:39:46 +0000272; CHECK-TLI: Running pass: RequireAnalysisPass
273; CHECK-TLI: Running analysis: TargetLibraryAnalysis
274; CHECK-TLI: Running pass: InvalidateAllAnalysesPass
275; CHECK-TLI-NOT: Invalidating analysis: TargetLibraryAnalysis
276; CHECK-TLI: Running pass: RequireAnalysisPass
277; CHECK-TLI-NOT: Running analysis: TargetLibraryAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000278; CHECK-TLI: Finished llvm::Module pass manager run
Chandler Carruth8ca43222015-01-15 11:39:46 +0000279
Chandler Carruthe0385522015-02-01 10:11:22 +0000280; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
281; RUN: -passes='require<targetir>,invalidate<all>,require<targetir>' \
282; RUN: | FileCheck %s --check-prefix=CHECK-TIRA
Chandler Carruth395fe572016-02-25 10:27:39 +0000283; CHECK-TIRA: Starting llvm::Module pass manager run
Chandler Carruthe0385522015-02-01 10:11:22 +0000284; CHECK-TIRA: Running pass: RequireAnalysisPass
285; CHECK-TIRA: Running analysis: TargetIRAnalysis
286; CHECK-TIRA: Running pass: InvalidateAllAnalysesPass
287; CHECK-TIRA-NOT: Invalidating analysis: TargetIRAnalysis
288; CHECK-TIRA: Running pass: RequireAnalysisPass
289; CHECK-TIRA-NOT: Running analysis: TargetIRAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000290; CHECK-TIRA: Finished llvm::Module pass manager run
Chandler Carruthe0385522015-02-01 10:11:22 +0000291
Chandler Carruth9f8d9b62015-02-01 10:47:25 +0000292; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
293; RUN: -passes='require<domtree>' \
294; RUN: | FileCheck %s --check-prefix=CHECK-DT
Chandler Carruth395fe572016-02-25 10:27:39 +0000295; CHECK-DT: Starting llvm::Module pass manager run
Chandler Carruth9f8d9b62015-02-01 10:47:25 +0000296; CHECK-DT: Running pass: RequireAnalysisPass
297; CHECK-DT: Running analysis: DominatorTreeAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000298; CHECK-DT: Finished llvm::Module pass manager run
Chandler Carruth9f8d9b62015-02-01 10:47:25 +0000299
Chandler Carruth6f5770b102016-02-13 23:32:00 +0000300; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
Chandler Carruthbece8d52016-02-13 23:46:24 +0000301; RUN: -passes='require<basic-aa>' \
302; RUN: | FileCheck %s --check-prefix=CHECK-BASIC-AA
Chandler Carruth395fe572016-02-25 10:27:39 +0000303; CHECK-BASIC-AA: Starting llvm::Module pass manager run
Chandler Carruthbece8d52016-02-13 23:46:24 +0000304; CHECK-BASIC-AA: Running pass: RequireAnalysisPass
305; CHECK-BASIC-AA: Running analysis: BasicAA
Chandler Carruth395fe572016-02-25 10:27:39 +0000306; CHECK-BASIC-AA: Finished llvm::Module pass manager run
Chandler Carruthbece8d52016-02-13 23:46:24 +0000307
Chandler Carruthedf59962016-02-18 09:45:17 +0000308; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
309; RUN: -passes='require<aa>' -aa-pipeline='basic-aa' \
310; RUN: | FileCheck %s --check-prefix=CHECK-AA
Chandler Carruth395fe572016-02-25 10:27:39 +0000311; CHECK-AA: Starting llvm::Module pass manager run
Chandler Carruthedf59962016-02-18 09:45:17 +0000312; CHECK-AA: Running pass: RequireAnalysisPass
313; CHECK-AA: Running analysis: AAManager
314; CHECK-AA: Running analysis: BasicAA
Chandler Carruth395fe572016-02-25 10:27:39 +0000315; CHECK-AA: Finished llvm::Module pass manager run
Chandler Carruthedf59962016-02-18 09:45:17 +0000316
Chandler Carruth61440d22016-03-10 00:55:30 +0000317; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
Chandler Carruth060ad612016-12-23 20:38:19 +0000318; RUN: -passes='require<aa>' -aa-pipeline='default' \
319; RUN: | FileCheck %s --check-prefix=CHECK-AA-DEFAULT
320; CHECK-AA-DEFAULT: Starting llvm::Module pass manager run
321; CHECK-AA-DEFAULT: Running pass: RequireAnalysisPass
322; CHECK-AA-DEFAULT: Running analysis: AAManager
323; CHECK-AA-DEFAULT: Running analysis: BasicAA
324; CHECK-AA-DEFAULT: Running analysis: ScopedNoAliasAA
325; CHECK-AA-DEFAULT: Running analysis: TypeBasedAA
326; CHECK-AA-DEFAULT: Finished llvm::Module pass manager run
327
328; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
Chandler Carruthaa351672016-12-27 10:30:45 +0000329; RUN: -passes='require<aa>,invalidate<domtree>,aa-eval' -aa-pipeline='basic-aa' \
Chandler Carruth17c630a2016-12-27 08:44:39 +0000330; RUN: | FileCheck %s --check-prefix=CHECK-AA-FUNCTION-INVALIDATE
331; CHECK-AA-FUNCTION-INVALIDATE: Starting llvm::Function pass manager run
332; CHECK-AA-FUNCTION-INVALIDATE: Running pass: RequireAnalysisPass
333; CHECK-AA-FUNCTION-INVALIDATE: Running analysis: AAManager
334; CHECK-AA-FUNCTION-INVALIDATE: Running analysis: BasicAA
335; CHECK-AA-FUNCTION-INVALIDATE: Running pass: InvalidateAnalysisPass
Chandler Carruthaa351672016-12-27 10:30:45 +0000336; CHECK-AA-FUNCTION-INVALIDATE: Invalidating analysis: DominatorTreeAnalysis
Chandler Carruth17c630a2016-12-27 08:44:39 +0000337; CHECK-AA-FUNCTION-INVALIDATE: Invalidating analysis: BasicAA
338; CHECK-AA-FUNCTION-INVALIDATE: Invalidating analysis: AAManager
339; CHECK-AA-FUNCTION-INVALIDATE: Running pass: AAEvaluator
340; CHECK-AA-FUNCTION-INVALIDATE: Running analysis: AAManager
341; CHECK-AA-FUNCTION-INVALIDATE: Running analysis: BasicAA
342; CHECK-AA-FUNCTION-INVALIDATE: Finished llvm::Function pass manager run
343
344; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
345; RUN: -passes='require<globals-aa>,function(require<aa>),invalidate<globals-aa>,require<globals-aa>,function(aa-eval)' -aa-pipeline='globals-aa' \
346; RUN: | FileCheck %s --check-prefix=CHECK-AA-MODULE-INVALIDATE
347; CHECK-AA-MODULE-INVALIDATE: Starting llvm::Module pass manager run
348; CHECK-AA-MODULE-INVALIDATE: Running pass: RequireAnalysisPass
349; CHECK-AA-MODULE-INVALIDATE: Running analysis: GlobalsAA
350; CHECK-AA-MODULE-INVALIDATE: Starting llvm::Function pass manager run
351; CHECK-AA-MODULE-INVALIDATE: Running pass: RequireAnalysisPass
352; CHECK-AA-MODULE-INVALIDATE: Running analysis: AAManager
353; CHECK-AA-MODULE-INVALIDATE: Finished llvm::Function pass manager run
354; CHECK-AA-MODULE-INVALIDATE: Running pass: InvalidateAnalysisPass
355; CHECK-AA-MODULE-INVALIDATE: Invalidating analysis: AAManager
356; CHECK-AA-MODULE-INVALIDATE: Invalidating analysis: GlobalsAA
357; CHECK-AA-MODULE-INVALIDATE: Running pass: RequireAnalysisPass
358; CHECK-AA-MODULE-INVALIDATE: Running analysis: GlobalsAA
359; CHECK-AA-MODULE-INVALIDATE: Starting llvm::Function pass manager run
360; CHECK-AA-MODULE-INVALIDATE: Running pass: AAEvaluator
361; CHECK-AA-MODULE-INVALIDATE: Running analysis: AAManager
362; CHECK-AA-MODULE-INVALIDATE: Finished llvm::Function pass manager run
363; CHECK-AA-MODULE-INVALIDATE: Finished llvm::Module pass manager run
364
365; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
Chandler Carruth61440d22016-03-10 00:55:30 +0000366; RUN: -passes='require<memdep>' \
367; RUN: | FileCheck %s --check-prefix=CHECK-MEMDEP
368; CHECK-MEMDEP: Starting llvm::Module pass manager run
369; CHECK-MEMDEP: Running pass: RequireAnalysisPass
370; CHECK-MEMDEP: Running analysis: MemoryDependenceAnalysis
371; CHECK-MEMDEP: Finished llvm::Module pass manager run
372
Chandler Carruth4c660f72016-03-10 11:24:11 +0000373; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
374; RUN: -passes='require<callgraph>' \
375; RUN: | FileCheck %s --check-prefix=CHECK-CALLGRAPH
376; CHECK-CALLGRAPH: Starting llvm::Module pass manager run
377; CHECK-CALLGRAPH: Running pass: RequireAnalysisPass
378; CHECK-CALLGRAPH: Running analysis: CallGraphAnalysis
379; CHECK-CALLGRAPH: Finished llvm::Module pass manager run
380
Chandler Carruth8b5a74192016-02-28 22:16:03 +0000381; RUN: opt -disable-output -disable-verify -debug-pass-manager \
382; RUN: -passes='default<O0>' %s 2>&1 \
Chandler Carruthe3f50642016-12-22 06:59:15 +0000383; RUN: | FileCheck %s --check-prefix=CHECK-O0
384; CHECK-O0: Starting llvm::Module pass manager run
385; CHECK-O0-NEXT: Finished llvm::Module pass manager run
386
Chandler Carruth8b5a74192016-02-28 22:16:03 +0000387; RUN: opt -disable-output -disable-verify -debug-pass-manager \
Chandler Carruth241bf242016-08-03 07:44:48 +0000388; RUN: -passes='repeat<3>(no-op-module)' %s 2>&1 \
389; RUN: | FileCheck %s --check-prefix=CHECK-REPEAT-MODULE-PASS
390; CHECK-REPEAT-MODULE-PASS: Starting llvm::Module pass manager run
Chandler Carrutha053a882016-08-04 03:52:53 +0000391; CHECK-REPEAT-MODULE-PASS-NEXT: Running pass: RepeatedPass
Chandler Carruth241bf242016-08-03 07:44:48 +0000392; CHECK-REPEAT-MODULE-PASS-NEXT: Starting llvm::Module pass manager run
393; CHECK-REPEAT-MODULE-PASS-NEXT: Running pass: NoOpModulePass
394; CHECK-REPEAT-MODULE-PASS-NEXT: Finished llvm::Module pass manager run
395; CHECK-REPEAT-MODULE-PASS-NEXT: Starting llvm::Module pass manager run
396; CHECK-REPEAT-MODULE-PASS-NEXT: Running pass: NoOpModulePass
397; CHECK-REPEAT-MODULE-PASS-NEXT: Finished llvm::Module pass manager run
398; 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: Finished llvm::Module pass manager run
402
403; RUN: opt -disable-output -disable-verify -debug-pass-manager \
404; RUN: -passes='cgscc(repeat<3>(no-op-cgscc))' %s 2>&1 \
405; RUN: | FileCheck %s --check-prefix=CHECK-REPEAT-CGSCC-PASS
406; CHECK-REPEAT-CGSCC-PASS: Starting llvm::Module pass manager run
407; CHECK-REPEAT-CGSCC-PASS-NEXT: Running pass: ModuleToPostOrderCGSCCPassAdaptor
Chandler Carruth0d1d4952016-12-22 07:53:20 +0000408; CHECK-REPEAT-CGSCC-PASS-NEXT: Running analysis: InnerAnalysisManagerProxy<{{.*(CGSCCAnalysisManager|AnalysisManager<.*LazyCallGraph::SCC.*>).*}},{{.*}}Module>
409; CHECK-REPEAT-CGSCC-PASS-NEXT: Running analysis: InnerAnalysisManagerProxy<{{.*(FunctionAnalysisManager|AnalysisManager<.*Function.*>).*}},{{.*}}Module>
Chandler Carruth241bf242016-08-03 07:44:48 +0000410; CHECK-REPEAT-CGSCC-PASS-NEXT: Running analysis: LazyCallGraphAnalysis
Chandler Carruthf59a8382017-07-15 08:08:19 +0000411; CHECK-REPEAT-CGSCC-PASS-NEXT: Running analysis: TargetLibraryAnalysis
Chandler Carruth241bf242016-08-03 07:44:48 +0000412; CHECK-REPEAT-CGSCC-PASS-NEXT: Running an SCC pass across the RefSCC: [(foo)]
Chandler Carruth88823462016-08-24 09:37:14 +0000413; CHECK-REPEAT-CGSCC-PASS-NEXT: Starting CGSCC pass manager run
Chandler Carrutha053a882016-08-04 03:52:53 +0000414; CHECK-REPEAT-CGSCC-PASS-NEXT: Running pass: RepeatedPass
Chandler Carruth88823462016-08-24 09:37:14 +0000415; CHECK-REPEAT-CGSCC-PASS-NEXT: Starting CGSCC pass manager run
Chandler Carruth241bf242016-08-03 07:44:48 +0000416; CHECK-REPEAT-CGSCC-PASS-NEXT: Running pass: NoOpCGSCCPass
Chandler Carruth88823462016-08-24 09:37:14 +0000417; CHECK-REPEAT-CGSCC-PASS-NEXT: Finished CGSCC pass manager run
418; CHECK-REPEAT-CGSCC-PASS-NEXT: Starting CGSCC pass manager run
Chandler Carruth241bf242016-08-03 07:44:48 +0000419; CHECK-REPEAT-CGSCC-PASS-NEXT: Running pass: NoOpCGSCCPass
Chandler Carruth88823462016-08-24 09:37:14 +0000420; CHECK-REPEAT-CGSCC-PASS-NEXT: Finished CGSCC pass manager run
421; CHECK-REPEAT-CGSCC-PASS-NEXT: Starting CGSCC pass manager run
Chandler Carruth241bf242016-08-03 07:44:48 +0000422; CHECK-REPEAT-CGSCC-PASS-NEXT: Running pass: NoOpCGSCCPass
Chandler Carruth88823462016-08-24 09:37:14 +0000423; CHECK-REPEAT-CGSCC-PASS-NEXT: Finished CGSCC pass manager run
424; CHECK-REPEAT-CGSCC-PASS-NEXT: Finished CGSCC pass manager run
Chandler Carruth241bf242016-08-03 07:44:48 +0000425; CHECK-REPEAT-CGSCC-PASS-NEXT: Finished llvm::Module pass manager run
426
427; RUN: opt -disable-output -disable-verify -debug-pass-manager \
428; RUN: -passes='function(repeat<3>(no-op-function))' %s 2>&1 \
429; RUN: | FileCheck %s --check-prefix=CHECK-REPEAT-FUNCTION-PASS
430; CHECK-REPEAT-FUNCTION-PASS: Starting llvm::Module pass manager run
431; CHECK-REPEAT-FUNCTION-PASS-NEXT: Running pass: ModuleToFunctionPassAdaptor
432; CHECK-REPEAT-FUNCTION-PASS-NEXT: Running analysis: InnerAnalysisManagerProxy<{{.*}}>
433; CHECK-REPEAT-FUNCTION-PASS-NEXT: Starting llvm::Function pass manager run
Chandler Carrutha053a882016-08-04 03:52:53 +0000434; CHECK-REPEAT-FUNCTION-PASS-NEXT: Running pass: RepeatedPass
Chandler Carruth241bf242016-08-03 07:44:48 +0000435; CHECK-REPEAT-FUNCTION-PASS-NEXT: Starting llvm::Function pass manager run
436; CHECK-REPEAT-FUNCTION-PASS-NEXT: Running pass: NoOpFunctionPass
437; CHECK-REPEAT-FUNCTION-PASS-NEXT: Finished llvm::Function pass manager run
438; CHECK-REPEAT-FUNCTION-PASS-NEXT: Starting llvm::Function pass manager run
439; CHECK-REPEAT-FUNCTION-PASS-NEXT: Running pass: NoOpFunctionPass
440; CHECK-REPEAT-FUNCTION-PASS-NEXT: Finished llvm::Function pass manager run
441; CHECK-REPEAT-FUNCTION-PASS-NEXT: Starting llvm::Function pass manager run
442; CHECK-REPEAT-FUNCTION-PASS-NEXT: Running pass: NoOpFunctionPass
443; CHECK-REPEAT-FUNCTION-PASS-NEXT: Finished llvm::Function pass manager run
444; CHECK-REPEAT-FUNCTION-PASS-NEXT: Finished llvm::Function pass manager run
445; CHECK-REPEAT-FUNCTION-PASS-NEXT: Finished llvm::Module pass manager run
446
447; RUN: opt -disable-output -disable-verify -debug-pass-manager \
448; RUN: -passes='loop(repeat<3>(no-op-loop))' %s 2>&1 \
449; RUN: | FileCheck %s --check-prefix=CHECK-REPEAT-LOOP-PASS
450; CHECK-REPEAT-LOOP-PASS: Starting llvm::Module pass manager run
451; CHECK-REPEAT-LOOP-PASS-NEXT: Running pass: ModuleToFunctionPassAdaptor
452; CHECK-REPEAT-LOOP-PASS-NEXT: Running analysis: InnerAnalysisManagerProxy<{{.*}}>
453; CHECK-REPEAT-LOOP-PASS-NEXT: Starting llvm::Function pass manager run
454; CHECK-REPEAT-LOOP-PASS-NEXT: Running pass: FunctionToLoopPassAdaptor
Chandler Carruth241bf242016-08-03 07:44:48 +0000455; CHECK-REPEAT-LOOP-PASS-NEXT: Running analysis: LoopAnalysis
456; CHECK-REPEAT-LOOP-PASS-NEXT: Running analysis: DominatorTreeAnalysis
Chandler Carruth17350de2017-01-21 03:48:51 +0000457; CHECK-REPEAT-LOOP-PASS-NEXT: Running analysis: AssumptionAnalysis
458; CHECK-REPEAT-LOOP-PASS-NEXT: Invalidating all non-preserved analyses
Chandler Carruthe3f50642016-12-22 06:59:15 +0000459; CHECK-REPEAT-LOOP-PASS-NEXT: Running analysis: AAManager
460; CHECK-REPEAT-LOOP-PASS-NEXT: Running analysis: TargetLibraryAnalysis
Chandler Carruth410eaeb2017-01-11 06:23:21 +0000461; CHECK-REPEAT-LOOP-PASS-NEXT: Running analysis: ScalarEvolutionAnalysis
462; CHECK-REPEAT-LOOP-PASS-NEXT: Running analysis: TargetIRAnalysis
Chandler Carruthf4252922017-02-10 08:26:58 +0000463; CHECK-REPEAT-LOOP-PASS-NEXT: Running analysis: InnerAnalysisManagerProxy<{{.*}}>
Chandler Carruth410eaeb2017-01-11 06:23:21 +0000464; CHECK-REPEAT-LOOP-PASS-NEXT: Starting Loop pass manager run
Chandler Carrutha053a882016-08-04 03:52:53 +0000465; CHECK-REPEAT-LOOP-PASS-NEXT: Running pass: RepeatedPass
Chandler Carruth410eaeb2017-01-11 06:23:21 +0000466; CHECK-REPEAT-LOOP-PASS-NEXT: Starting Loop pass manager run
Chandler Carruth241bf242016-08-03 07:44:48 +0000467; CHECK-REPEAT-LOOP-PASS-NEXT: Running pass: NoOpLoopPass
Chandler Carruth410eaeb2017-01-11 06:23:21 +0000468; CHECK-REPEAT-LOOP-PASS-NEXT: Finished Loop pass manager run
469; CHECK-REPEAT-LOOP-PASS-NEXT: Starting Loop pass manager run
Chandler Carruth241bf242016-08-03 07:44:48 +0000470; CHECK-REPEAT-LOOP-PASS-NEXT: Running pass: NoOpLoopPass
Chandler Carruth410eaeb2017-01-11 06:23:21 +0000471; CHECK-REPEAT-LOOP-PASS-NEXT: Finished Loop pass manager run
472; CHECK-REPEAT-LOOP-PASS-NEXT: Starting Loop pass manager run
Chandler Carruth241bf242016-08-03 07:44:48 +0000473; CHECK-REPEAT-LOOP-PASS-NEXT: Running pass: NoOpLoopPass
Chandler Carruth410eaeb2017-01-11 06:23:21 +0000474; CHECK-REPEAT-LOOP-PASS-NEXT: Finished Loop pass manager run
475; CHECK-REPEAT-LOOP-PASS-NEXT: Finished Loop pass manager run
Chandler Carruth241bf242016-08-03 07:44:48 +0000476; CHECK-REPEAT-LOOP-PASS-NEXT: Finished llvm::Function pass manager run
Chandler Carruth17350de2017-01-21 03:48:51 +0000477; CHECK-REPEAT-LOOP-PASS-NEXT: Invalidating all non-preserved analyses
Chandler Carruth241bf242016-08-03 07:44:48 +0000478; CHECK-REPEAT-LOOP-PASS-NEXT: Finished llvm::Module pass manager run
479
Chandler Carruth17c630a2016-12-27 08:44:39 +0000480define void @foo(i1 %x, i8* %p1, i8* %p2) {
Chandler Carruth241bf242016-08-03 07:44:48 +0000481entry:
Chandler Carruth17c630a2016-12-27 08:44:39 +0000482 store i8 42, i8* %p1
Chandler Carruth241bf242016-08-03 07:44:48 +0000483 br i1 %x, label %loop, label %exit
484
485loop:
Chandler Carruth17c630a2016-12-27 08:44:39 +0000486 %tmp1 = load i8, i8* %p2
Chandler Carruth241bf242016-08-03 07:44:48 +0000487 br label %loop
488
489exit:
Chandler Carruth52eef882014-01-12 12:15:39 +0000490 ret void
491}
Chandler Carruth9f8d9b62015-02-01 10:47:25 +0000492
493declare void @bar()