blob: 05792d56fa79420c2f230b16d4420eedcb35064c [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 Carruthea368f12015-01-06 08:37:58 +00008; RUN: opt -disable-output -disable-verify -debug-pass-manager -debug-cgscc-pass-manager \
9; RUN: -passes=no-op-module %s 2>&1 \
10; RUN: | FileCheck %s --check-prefix=CHECK-MODULE-PASS
Chandler Carruth816702f2015-01-13 11:13:56 +000011; CHECK-MODULE-PASS: Starting pass manager
12; CHECK-MODULE-PASS-NEXT: Running pass: NoOpModulePass
13; CHECK-MODULE-PASS-NEXT: Finished pass manager
Chandler Carruthea368f12015-01-06 08:37:58 +000014
15; RUN: opt -disable-output -disable-verify -debug-pass-manager -debug-cgscc-pass-manager \
16; RUN: -passes=no-op-cgscc %s 2>&1 \
17; RUN: | FileCheck %s --check-prefix=CHECK-CGSCC-PASS
18; RUN: opt -disable-output -disable-verify -debug-pass-manager -debug-cgscc-pass-manager \
19; RUN: -passes='cgscc(no-op-cgscc)' %s 2>&1 \
20; RUN: | FileCheck %s --check-prefix=CHECK-CGSCC-PASS
Chandler Carruth816702f2015-01-13 11:13:56 +000021; CHECK-CGSCC-PASS: Starting pass manager
22; CHECK-CGSCC-PASS-NEXT: Running pass: ModuleToPostOrderCGSCCPassAdaptor
Chandler Carruth7ad6d622015-01-13 02:51:47 +000023; CHECK-CGSCC-PASS-NEXT: Running analysis: CGSCCAnalysisManagerModuleProxy
24; CHECK-CGSCC-PASS-NEXT: Running analysis: Lazy CallGraph Analysis
Chandler Carruth816702f2015-01-13 11:13:56 +000025; CHECK-CGSCC-PASS-NEXT: Starting pass manager
26; CHECK-CGSCC-PASS-NEXT: Running pass: NoOpCGSCCPass
27; CHECK-CGSCC-PASS-NEXT: Finished pass manager
28; CHECK-CGSCC-PASS-NEXT: Finished pass manager
Chandler Carruthea368f12015-01-06 08:37:58 +000029
30; RUN: opt -disable-output -disable-verify -debug-pass-manager -debug-cgscc-pass-manager \
31; RUN: -passes=no-op-function %s 2>&1 \
32; RUN: | FileCheck %s --check-prefix=CHECK-FUNCTION-PASS
33; RUN: opt -disable-output -disable-verify -debug-pass-manager -debug-cgscc-pass-manager \
34; RUN: -passes='function(no-op-function)' %s 2>&1 \
35; RUN: | FileCheck %s --check-prefix=CHECK-FUNCTION-PASS
Chandler Carruth816702f2015-01-13 11:13:56 +000036; CHECK-FUNCTION-PASS: Starting pass manager
37; CHECK-FUNCTION-PASS-NEXT: Running pass: ModuleToFunctionPassAdaptor
Chandler Carruth7ad6d622015-01-13 02:51:47 +000038; CHECK-FUNCTION-PASS-NEXT: Running analysis: FunctionAnalysisManagerModuleProxy
Chandler Carruth816702f2015-01-13 11:13:56 +000039; CHECK-FUNCTION-PASS-NEXT: Starting pass manager
40; CHECK-FUNCTION-PASS-NEXT: Running pass: NoOpFunctionPass
41; CHECK-FUNCTION-PASS-NEXT: Finished pass manager
42; CHECK-FUNCTION-PASS-NEXT: Finished pass manager
Chandler Carruthea368f12015-01-06 08:37:58 +000043
Chandler Carruth52eef882014-01-12 12:15:39 +000044; RUN: opt -disable-output -debug-pass-manager -passes=print %s 2>&1 \
45; RUN: | FileCheck %s --check-prefix=CHECK-MODULE-PRINT
Chandler Carruth816702f2015-01-13 11:13:56 +000046; CHECK-MODULE-PRINT: Starting pass manager
47; CHECK-MODULE-PRINT: Running pass: VerifierPass
48; CHECK-MODULE-PRINT: Running pass: PrintModulePass
Chandler Carruth52eef882014-01-12 12:15:39 +000049; CHECK-MODULE-PRINT: ModuleID
50; CHECK-MODULE-PRINT: define void @foo()
Chandler Carruth816702f2015-01-13 11:13:56 +000051; CHECK-MODULE-PRINT: Running pass: VerifierPass
52; CHECK-MODULE-PRINT: Finished pass manager
Chandler Carruth52eef882014-01-12 12:15:39 +000053
Chandler Carruth9c31db42015-01-05 00:08:53 +000054; RUN: opt -disable-output -debug-pass-manager -disable-verify -passes='print,verify' %s 2>&1 \
55; RUN: | FileCheck %s --check-prefix=CHECK-MODULE-VERIFY
Chandler Carruth816702f2015-01-13 11:13:56 +000056; CHECK-MODULE-VERIFY: Starting pass manager
57; CHECK-MODULE-VERIFY: Running pass: PrintModulePass
Chandler Carruth9c31db42015-01-05 00:08:53 +000058; CHECK-MODULE-VERIFY: ModuleID
59; CHECK-MODULE-VERIFY: define void @foo()
Chandler Carruth816702f2015-01-13 11:13:56 +000060; CHECK-MODULE-VERIFY: Running pass: VerifierPass
61; CHECK-MODULE-VERIFY: Finished pass manager
Chandler Carruth9c31db42015-01-05 00:08:53 +000062
Chandler Carruth52eef882014-01-12 12:15:39 +000063; RUN: opt -disable-output -debug-pass-manager -passes='function(print)' %s 2>&1 \
64; RUN: | FileCheck %s --check-prefix=CHECK-FUNCTION-PRINT
Chandler Carruth816702f2015-01-13 11:13:56 +000065; CHECK-FUNCTION-PRINT: Starting pass manager
66; CHECK-FUNCTION-PRINT: Running pass: VerifierPass
67; CHECK-FUNCTION-PRINT: Running pass: ModuleToFunctionPassAdaptor
Chandler Carruth7ad6d622015-01-13 02:51:47 +000068; CHECK-FUNCTION-PRINT: Running analysis: FunctionAnalysisManagerModuleProxy
Chandler Carruth816702f2015-01-13 11:13:56 +000069; CHECK-FUNCTION-PRINT: Starting pass manager
70; CHECK-FUNCTION-PRINT: Running pass: PrintFunctionPass
Chandler Carruth52eef882014-01-12 12:15:39 +000071; CHECK-FUNCTION-PRINT-NOT: ModuleID
72; CHECK-FUNCTION-PRINT: define void @foo()
Chandler Carruth816702f2015-01-13 11:13:56 +000073; CHECK-FUNCTION-PRINT: Finished pass manager
74; CHECK-FUNCTION-PRINT: Running pass: VerifierPass
75; CHECK-FUNCTION-PRINT: Finished pass manager
Chandler Carruth52eef882014-01-12 12:15:39 +000076
Chandler Carruth9c31db42015-01-05 00:08:53 +000077; RUN: opt -disable-output -debug-pass-manager -disable-verify -passes='function(print,verify)' %s 2>&1 \
78; RUN: | FileCheck %s --check-prefix=CHECK-FUNCTION-VERIFY
Chandler Carruth816702f2015-01-13 11:13:56 +000079; CHECK-FUNCTION-VERIFY: Starting pass manager
80; CHECK-FUNCTION-VERIFY: Starting pass manager
81; CHECK-FUNCTION-VERIFY: Running pass: PrintFunctionPass
Chandler Carruth9c31db42015-01-05 00:08:53 +000082; CHECK-FUNCTION-VERIFY-NOT: ModuleID
83; CHECK-FUNCTION-VERIFY: define void @foo()
Chandler Carruth816702f2015-01-13 11:13:56 +000084; CHECK-FUNCTION-VERIFY: Running pass: VerifierPass
85; CHECK-FUNCTION-VERIFY: Finished pass manager
86; CHECK-FUNCTION-VERIFY: Finished pass manager
Chandler Carruth9c31db42015-01-05 00:08:53 +000087
Chandler Carruthb353c3f2014-01-13 05:16:45 +000088; RUN: opt -S -o - -passes='no-op-module,no-op-module' %s \
89; RUN: | FileCheck %s --check-prefix=CHECK-NOOP
90; CHECK-NOOP: define void @foo() {
91; CHECK-NOOP: ret void
92; CHECK-NOOP: }
93
Chandler Carruthb7bdfd62014-01-13 07:38:24 +000094; Round trip through bitcode.
95; RUN: opt -f -o - -passes='no-op-module,no-op-module' %s \
96; RUN: | llvm-dis \
97; RUN: | FileCheck %s --check-prefix=CHECK-NOOP
98
Chandler Carruth4d356312014-01-20 11:34:08 +000099; RUN: opt -disable-output -debug-pass-manager -verify-each -passes='no-op-module,function(no-op-function)' %s 2>&1 \
100; RUN: | FileCheck %s --check-prefix=CHECK-VERIFY-EACH
Chandler Carruth816702f2015-01-13 11:13:56 +0000101; CHECK-VERIFY-EACH: Starting pass manager
102; CHECK-VERIFY-EACH: Running pass: VerifierPass
103; CHECK-VERIFY-EACH: Running pass: NoOpModulePass
104; CHECK-VERIFY-EACH: Running pass: VerifierPass
105; CHECK-VERIFY-EACH: Starting pass manager
106; CHECK-VERIFY-EACH: Running pass: NoOpFunctionPass
107; CHECK-VERIFY-EACH: Running pass: VerifierPass
108; CHECK-VERIFY-EACH: Finished pass manager
109; CHECK-VERIFY-EACH: Running pass: VerifierPass
110; CHECK-VERIFY-EACH: Finished pass manager
Chandler Carruth4d356312014-01-20 11:34:08 +0000111
112; RUN: opt -disable-output -debug-pass-manager -disable-verify -passes='no-op-module,function(no-op-function)' %s 2>&1 \
113; RUN: | FileCheck %s --check-prefix=CHECK-NO-VERIFY
Chandler Carruth816702f2015-01-13 11:13:56 +0000114; CHECK-NO-VERIFY: Starting pass manager
Chandler Carruth4d356312014-01-20 11:34:08 +0000115; CHECK-NO-VERIFY-NOT: VerifierPass
Chandler Carruth816702f2015-01-13 11:13:56 +0000116; CHECK-NO-VERIFY: Running pass: NoOpModulePass
Chandler Carruth4d356312014-01-20 11:34:08 +0000117; CHECK-NO-VERIFY-NOT: VerifierPass
Chandler Carruth816702f2015-01-13 11:13:56 +0000118; CHECK-NO-VERIFY: Starting pass manager
119; CHECK-NO-VERIFY: Running pass: NoOpFunctionPass
Chandler Carruth4d356312014-01-20 11:34:08 +0000120; CHECK-NO-VERIFY-NOT: VerifierPass
Chandler Carruth816702f2015-01-13 11:13:56 +0000121; CHECK-NO-VERIFY: Finished pass manager
Chandler Carruth4d356312014-01-20 11:34:08 +0000122; CHECK-NO-VERIFY-NOT: VerifierPass
Chandler Carruth816702f2015-01-13 11:13:56 +0000123; CHECK-NO-VERIFY: Finished pass manager
Chandler Carruth4d356312014-01-20 11:34:08 +0000124
Chandler Carruth0b576b32015-01-06 02:50:06 +0000125; RUN: opt -disable-output -debug-pass-manager -debug-cgscc-pass-manager \
126; RUN: -passes='require<no-op-module>,cgscc(require<no-op-cgscc>,function(require<no-op-function>))' %s 2>&1 \
127; RUN: | FileCheck %s --check-prefix=CHECK-ANALYSES
Chandler Carruth816702f2015-01-13 11:13:56 +0000128; CHECK-ANALYSES: Starting pass manager
129; CHECK-ANALYSES: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000130; CHECK-ANALYSES: Running analysis: NoOpModuleAnalysis
Chandler Carruth816702f2015-01-13 11:13:56 +0000131; CHECK-ANALYSES: Starting pass manager
132; CHECK-ANALYSES: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000133; CHECK-ANALYSES: Running analysis: NoOpCGSCCAnalysis
Chandler Carruth816702f2015-01-13 11:13:56 +0000134; CHECK-ANALYSES: Starting pass manager
135; CHECK-ANALYSES: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000136; CHECK-ANALYSES: Running analysis: NoOpFunctionAnalysis
Chandler Carruthe5e8fb32015-01-05 12:21:44 +0000137
Chandler Carruth539dc4b2015-01-05 12:32:11 +0000138; Make sure no-op passes that preserve all analyses don't even try to do any
139; analysis invalidation.
Chandler Carruth0b576b32015-01-06 02:50:06 +0000140; RUN: opt -disable-output -debug-pass-manager -debug-cgscc-pass-manager \
141; 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 +0000142; RUN: | FileCheck %s --check-prefix=CHECK-NO-OP-INVALIDATION
Chandler Carruth816702f2015-01-13 11:13:56 +0000143; CHECK-NO-OP-INVALIDATION: Starting pass manager
Chandler Carruth539dc4b2015-01-05 12:32:11 +0000144; CHECK-NO-OP-INVALIDATION-NOT: Invalidating all non-preserved analyses
145
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000146; RUN: opt -disable-output -debug-pass-manager -debug-cgscc-pass-manager \
147; RUN: -passes='require<no-op-module>,require<no-op-module>,require<no-op-module>' %s 2>&1 \
148; RUN: | FileCheck %s --check-prefix=CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS
Chandler Carruth816702f2015-01-13 11:13:56 +0000149; CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS: Starting pass manager
150; CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000151; CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS: Running analysis: NoOpModuleAnalysis
152; CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS-NOT: Running analysis: NoOpModuleAnalysis
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000153
154; RUN: opt -disable-output -debug-pass-manager -debug-cgscc-pass-manager \
155; RUN: -passes='require<no-op-module>,invalidate<no-op-module>,require<no-op-module>' %s 2>&1 \
156; RUN: | FileCheck %s --check-prefix=CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS
Chandler Carruth816702f2015-01-13 11:13:56 +0000157; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Starting pass manager
158; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000159; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Running analysis: NoOpModuleAnalysis
160; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Invalidating analysis: NoOpModuleAnalysis
161; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Running analysis: NoOpModuleAnalysis
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000162
163; RUN: opt -disable-output -debug-pass-manager -debug-cgscc-pass-manager \
164; RUN: -passes='cgscc(require<no-op-cgscc>,require<no-op-cgscc>,require<no-op-cgscc>)' %s 2>&1 \
165; RUN: | FileCheck %s --check-prefix=CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS
Chandler Carruth816702f2015-01-13 11:13:56 +0000166; CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS: Starting pass manager
167; CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000168; CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS: Running analysis: NoOpCGSCCAnalysis
169; CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS-NOT: Running analysis: NoOpCGSCCAnalysis
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000170
171; RUN: opt -disable-output -debug-pass-manager -debug-cgscc-pass-manager \
172; RUN: -passes='cgscc(require<no-op-cgscc>,invalidate<no-op-cgscc>,require<no-op-cgscc>)' %s 2>&1 \
173; RUN: | FileCheck %s --check-prefix=CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS
Chandler Carruth816702f2015-01-13 11:13:56 +0000174; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Starting pass manager
175; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000176; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Running analysis: NoOpCGSCCAnalysis
177; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Invalidating analysis: NoOpCGSCCAnalysis
178; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Running analysis: NoOpCGSCCAnalysis
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000179
180; RUN: opt -disable-output -debug-pass-manager -debug-cgscc-pass-manager \
181; RUN: -passes='function(require<no-op-function>,require<no-op-function>,require<no-op-function>)' %s 2>&1 \
182; RUN: | FileCheck %s --check-prefix=CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS
Chandler Carruth816702f2015-01-13 11:13:56 +0000183; CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS: Starting pass manager
184; CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000185; CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS: Running analysis: NoOpFunctionAnalysis
186; CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS-NOT: Running analysis: NoOpFunctionAnalysis
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000187
188; RUN: opt -disable-output -debug-pass-manager -debug-cgscc-pass-manager \
189; RUN: -passes='function(require<no-op-function>,invalidate<no-op-function>,require<no-op-function>)' %s 2>&1 \
190; RUN: | FileCheck %s --check-prefix=CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS
Chandler Carruth816702f2015-01-13 11:13:56 +0000191; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Starting pass manager
192; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000193; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Running analysis: NoOpFunctionAnalysis
194; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Invalidating analysis: NoOpFunctionAnalysis
195; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Running analysis: NoOpFunctionAnalysis
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000196
Chandler Carruth4e107caf2015-01-06 09:06:35 +0000197; RUN: opt -disable-output -disable-verify -debug-pass-manager -debug-cgscc-pass-manager \
Chandler Carruthfdb41802015-01-07 01:58:35 +0000198; 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 +0000199; RUN: | FileCheck %s --check-prefix=CHECK-INVALIDATE-ALL
Chandler Carruth816702f2015-01-13 11:13:56 +0000200; CHECK-INVALIDATE-ALL: Starting pass manager
201; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000202; CHECK-INVALIDATE-ALL: Running analysis: NoOpModuleAnalysis
Chandler Carruth816702f2015-01-13 11:13:56 +0000203; CHECK-INVALIDATE-ALL: Starting pass manager
204; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000205; CHECK-INVALIDATE-ALL-NOT: Running analysis: NoOpModuleAnalysis
Chandler Carruth816702f2015-01-13 11:13:56 +0000206; CHECK-INVALIDATE-ALL: Starting pass manager
207; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000208; CHECK-INVALIDATE-ALL: Running analysis: NoOpFunctionAnalysis
Chandler Carruth816702f2015-01-13 11:13:56 +0000209; CHECK-INVALIDATE-ALL: Running pass: InvalidateAllAnalysesPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000210; CHECK-INVALIDATE-ALL: Invalidating all non-preserved analyses
211; CHECK-INVALIDATE-ALL: Invalidating analysis: NoOpFunctionAnalysis
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: NoOpFunctionAnalysis
Chandler Carruth816702f2015-01-13 11:13:56 +0000214; CHECK-INVALIDATE-ALL: Finished pass manager
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000215; CHECK-INVALIDATE-ALL: Invalidating all non-preserved analyses
216; CHECK-INVALIDATE-ALL-NOT: Running analysis: NoOpFunctionAnalysis
217; CHECK-INVALIDATE-ALL: Invalidating all non-preserved analyses
218; CHECK-INVALIDATE-ALL: Invalidating analysis: NoOpModuleAnalysis
Chandler Carruth816702f2015-01-13 11:13:56 +0000219; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000220; CHECK-INVALIDATE-ALL: Running analysis: NoOpModuleAnalysis
Chandler Carruth816702f2015-01-13 11:13:56 +0000221; CHECK-INVALIDATE-ALL: Finished pass manager
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000222; CHECK-INVALIDATE-ALL: Invalidating all non-preserved analyses
223; CHECK-INVALIDATE-ALL-NOT: 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-NOT: Running analysis: NoOpModuleAnalysis
Chandler Carruth816702f2015-01-13 11:13:56 +0000226; CHECK-INVALIDATE-ALL: Finished pass manager
Chandler Carruthfdb41802015-01-07 01:58:35 +0000227
228; RUN: opt -disable-output -disable-verify -debug-pass-manager -debug-cgscc-pass-manager \
229; 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 \
230; RUN: | FileCheck %s --check-prefix=CHECK-INVALIDATE-ALL-CG
Chandler Carruth816702f2015-01-13 11:13:56 +0000231; CHECK-INVALIDATE-ALL-CG: Starting pass manager
232; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000233; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpModuleAnalysis
Chandler Carruth816702f2015-01-13 11:13:56 +0000234; CHECK-INVALIDATE-ALL-CG: Starting pass manager
235; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000236; CHECK-INVALIDATE-ALL-CG-NOT: Running analysis: NoOpModuleAnalysis
Chandler Carruth816702f2015-01-13 11:13:56 +0000237; CHECK-INVALIDATE-ALL-CG: Starting pass manager
238; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000239; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpCGSCCAnalysis
Chandler Carruth816702f2015-01-13 11:13:56 +0000240; CHECK-INVALIDATE-ALL-CG: Starting pass manager
241; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000242; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpFunctionAnalysis
Chandler Carruth816702f2015-01-13 11:13:56 +0000243; CHECK-INVALIDATE-ALL-CG: Running pass: InvalidateAllAnalysesPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000244; CHECK-INVALIDATE-ALL-CG: Invalidating all non-preserved analyses
245; CHECK-INVALIDATE-ALL-CG: Invalidating analysis: NoOpFunctionAnalysis
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: Finished pass manager
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000249; CHECK-INVALIDATE-ALL-CG: Invalidating all non-preserved analyses
250; CHECK-INVALIDATE-ALL-CG-NOT: Running analysis: NoOpFunctionAnalysis
251; CHECK-INVALIDATE-ALL-CG: Invalidating all non-preserved analyses
252; CHECK-INVALIDATE-ALL-CG: Invalidating analysis: NoOpCGSCCAnalysis
Chandler Carruth816702f2015-01-13 11:13:56 +0000253; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000254; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpCGSCCAnalysis
Chandler Carruth816702f2015-01-13 11:13:56 +0000255; CHECK-INVALIDATE-ALL-CG: Finished pass manager
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000256; CHECK-INVALIDATE-ALL-CG: Invalidating all non-preserved analyses
257; CHECK-INVALIDATE-ALL-CG-NOT: Invalidating analysis: NoOpCGSCCAnalysis
258; CHECK-INVALIDATE-ALL-CG: Invalidating all non-preserved analyses
259; 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 Carruth816702f2015-01-13 11:13:56 +0000262; CHECK-INVALIDATE-ALL-CG: Finished pass manager
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000263; CHECK-INVALIDATE-ALL-CG: Invalidating all non-preserved analyses
264; 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 Carruth816702f2015-01-13 11:13:56 +0000267; CHECK-INVALIDATE-ALL-CG: Finished pass manager
Chandler Carruth4e107caf2015-01-06 09:06:35 +0000268
Chandler Carruth52eef882014-01-12 12:15:39 +0000269define void @foo() {
270 ret void
271}