xref: /aosp_15_r20/external/llvm/test/Other/new-pass-manager.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; This test is essentially doing very basic things with the opt tool and the
2*9880d681SAndroid Build Coastguard Worker; new pass manager pipeline. It will be used to flesh out the feature
3*9880d681SAndroid Build Coastguard Worker; completeness of the opt tool when the new pass manager is engaged. The tests
4*9880d681SAndroid Build Coastguard Worker; may not be useful once it becomes the default or may get spread out into other
5*9880d681SAndroid Build Coastguard Worker; files, but for now this is just going to step the new process through its
6*9880d681SAndroid Build Coastguard Worker; paces.
7*9880d681SAndroid Build Coastguard Worker
8*9880d681SAndroid Build Coastguard Worker; RUN: opt -disable-output -disable-verify -debug-pass-manager \
9*9880d681SAndroid Build Coastguard Worker; RUN:     -passes=no-op-module %s 2>&1 \
10*9880d681SAndroid Build Coastguard Worker; RUN:     | FileCheck %s --check-prefix=CHECK-MODULE-PASS
11*9880d681SAndroid Build Coastguard Worker; CHECK-MODULE-PASS: Starting llvm::Module pass manager run
12*9880d681SAndroid Build Coastguard Worker; CHECK-MODULE-PASS-NEXT: Running pass: NoOpModulePass
13*9880d681SAndroid Build Coastguard Worker; CHECK-MODULE-PASS-NEXT: Finished llvm::Module pass manager run
14*9880d681SAndroid Build Coastguard Worker
15*9880d681SAndroid Build Coastguard Worker; RUN: opt -disable-output -disable-verify -debug-pass-manager \
16*9880d681SAndroid Build Coastguard Worker; RUN:     -passes=no-op-cgscc %s 2>&1 \
17*9880d681SAndroid Build Coastguard Worker; RUN:     | FileCheck %s --check-prefix=CHECK-CGSCC-PASS
18*9880d681SAndroid Build Coastguard Worker; RUN: opt -disable-output -disable-verify -debug-pass-manager \
19*9880d681SAndroid Build Coastguard Worker; RUN:     -passes='cgscc(no-op-cgscc)' %s 2>&1 \
20*9880d681SAndroid Build Coastguard Worker; RUN:     | FileCheck %s --check-prefix=CHECK-CGSCC-PASS
21*9880d681SAndroid Build Coastguard Worker; CHECK-CGSCC-PASS: Starting llvm::Module pass manager run
22*9880d681SAndroid Build Coastguard Worker; CHECK-CGSCC-PASS-NEXT: Running pass: ModuleToPostOrderCGSCCPassAdaptor
23*9880d681SAndroid Build Coastguard Worker; CHECK-CGSCC-PASS-NEXT: Running analysis: InnerAnalysisManagerProxy<{{.*}}>
24*9880d681SAndroid Build Coastguard Worker; CHECK-CGSCC-PASS-NEXT: Running analysis: LazyCallGraphAnalysis
25*9880d681SAndroid Build Coastguard Worker; CHECK-CGSCC-PASS-NEXT: Running an SCC pass across the RefSCC: [(foo)]
26*9880d681SAndroid Build Coastguard Worker; CHECK-CGSCC-PASS-NEXT: Starting llvm::LazyCallGraph::SCC pass manager run
27*9880d681SAndroid Build Coastguard Worker; CHECK-CGSCC-PASS-NEXT: Running pass: NoOpCGSCCPass
28*9880d681SAndroid Build Coastguard Worker; CHECK-CGSCC-PASS-NEXT: Finished llvm::LazyCallGraph::SCC pass manager run
29*9880d681SAndroid Build Coastguard Worker; CHECK-CGSCC-PASS-NEXT: Finished llvm::Module pass manager run
30*9880d681SAndroid Build Coastguard Worker
31*9880d681SAndroid Build Coastguard Worker; RUN: opt -disable-output -disable-verify -debug-pass-manager \
32*9880d681SAndroid Build Coastguard Worker; RUN:     -passes=no-op-function %s 2>&1 \
33*9880d681SAndroid Build Coastguard Worker; RUN:     | FileCheck %s --check-prefix=CHECK-FUNCTION-PASS
34*9880d681SAndroid Build Coastguard Worker; RUN: opt -disable-output -disable-verify -debug-pass-manager \
35*9880d681SAndroid Build Coastguard Worker; RUN:     -passes='function(no-op-function)' %s 2>&1 \
36*9880d681SAndroid Build Coastguard Worker; RUN:     | FileCheck %s --check-prefix=CHECK-FUNCTION-PASS
37*9880d681SAndroid Build Coastguard Worker; CHECK-FUNCTION-PASS: Starting llvm::Module pass manager run
38*9880d681SAndroid Build Coastguard Worker; CHECK-FUNCTION-PASS-NEXT: Running pass: ModuleToFunctionPassAdaptor
39*9880d681SAndroid Build Coastguard Worker; CHECK-FUNCTION-PASS-NEXT: Running analysis: InnerAnalysisManagerProxy<{{.*}}>
40*9880d681SAndroid Build Coastguard Worker; CHECK-FUNCTION-PASS-NEXT: Starting llvm::Function pass manager run
41*9880d681SAndroid Build Coastguard Worker; CHECK-FUNCTION-PASS-NEXT: Running pass: NoOpFunctionPass
42*9880d681SAndroid Build Coastguard Worker; CHECK-FUNCTION-PASS-NEXT: Finished llvm::Function pass manager run
43*9880d681SAndroid Build Coastguard Worker; CHECK-FUNCTION-PASS-NEXT: Finished llvm::Module pass manager run
44*9880d681SAndroid Build Coastguard Worker
45*9880d681SAndroid Build Coastguard Worker; RUN: opt -disable-output -debug-pass-manager -passes=print %s 2>&1 \
46*9880d681SAndroid Build Coastguard Worker; RUN:     | FileCheck %s --check-prefix=CHECK-MODULE-PRINT
47*9880d681SAndroid Build Coastguard Worker; CHECK-MODULE-PRINT: Starting llvm::Module pass manager run
48*9880d681SAndroid Build Coastguard Worker; CHECK-MODULE-PRINT: Running pass: VerifierPass
49*9880d681SAndroid Build Coastguard Worker; CHECK-MODULE-PRINT: Running pass: PrintModulePass
50*9880d681SAndroid Build Coastguard Worker; CHECK-MODULE-PRINT: ModuleID
51*9880d681SAndroid Build Coastguard Worker; CHECK-MODULE-PRINT: define void @foo()
52*9880d681SAndroid Build Coastguard Worker; CHECK-MODULE-PRINT: Running pass: VerifierPass
53*9880d681SAndroid Build Coastguard Worker; CHECK-MODULE-PRINT: Finished llvm::Module pass manager run
54*9880d681SAndroid Build Coastguard Worker
55*9880d681SAndroid Build Coastguard Worker; RUN: opt -disable-output -debug-pass-manager -disable-verify -passes='print,verify' %s 2>&1 \
56*9880d681SAndroid Build Coastguard Worker; RUN:     | FileCheck %s --check-prefix=CHECK-MODULE-VERIFY
57*9880d681SAndroid Build Coastguard Worker; CHECK-MODULE-VERIFY: Starting llvm::Module pass manager run
58*9880d681SAndroid Build Coastguard Worker; CHECK-MODULE-VERIFY: Running pass: PrintModulePass
59*9880d681SAndroid Build Coastguard Worker; CHECK-MODULE-VERIFY: ModuleID
60*9880d681SAndroid Build Coastguard Worker; CHECK-MODULE-VERIFY: define void @foo()
61*9880d681SAndroid Build Coastguard Worker; CHECK-MODULE-VERIFY: Running pass: VerifierPass
62*9880d681SAndroid Build Coastguard Worker; CHECK-MODULE-VERIFY: Finished llvm::Module pass manager run
63*9880d681SAndroid Build Coastguard Worker
64*9880d681SAndroid Build Coastguard Worker; RUN: opt -disable-output -debug-pass-manager -passes='function(print)' %s 2>&1 \
65*9880d681SAndroid Build Coastguard Worker; RUN:     | FileCheck %s --check-prefix=CHECK-FUNCTION-PRINT
66*9880d681SAndroid Build Coastguard Worker; CHECK-FUNCTION-PRINT: Starting llvm::Module pass manager run
67*9880d681SAndroid Build Coastguard Worker; CHECK-FUNCTION-PRINT: Running pass: VerifierPass
68*9880d681SAndroid Build Coastguard Worker; CHECK-FUNCTION-PRINT: Running pass: ModuleToFunctionPassAdaptor
69*9880d681SAndroid Build Coastguard Worker; CHECK-FUNCTION-PRINT: Running analysis: InnerAnalysisManagerProxy<{{.*}}>
70*9880d681SAndroid Build Coastguard Worker; CHECK-FUNCTION-PRINT: Starting llvm::Function pass manager run
71*9880d681SAndroid Build Coastguard Worker; CHECK-FUNCTION-PRINT: Running pass: PrintFunctionPass
72*9880d681SAndroid Build Coastguard Worker; CHECK-FUNCTION-PRINT-NOT: ModuleID
73*9880d681SAndroid Build Coastguard Worker; CHECK-FUNCTION-PRINT: define void @foo()
74*9880d681SAndroid Build Coastguard Worker; CHECK-FUNCTION-PRINT: Finished llvm::Function pass manager run
75*9880d681SAndroid Build Coastguard Worker; CHECK-FUNCTION-PRINT: Running pass: VerifierPass
76*9880d681SAndroid Build Coastguard Worker; CHECK-FUNCTION-PRINT: Finished llvm::Module pass manager run
77*9880d681SAndroid Build Coastguard Worker
78*9880d681SAndroid Build Coastguard Worker; RUN: opt -disable-output -debug-pass-manager -disable-verify -passes='function(print,verify)' %s 2>&1 \
79*9880d681SAndroid Build Coastguard Worker; RUN:     | FileCheck %s --check-prefix=CHECK-FUNCTION-VERIFY
80*9880d681SAndroid Build Coastguard Worker; CHECK-FUNCTION-VERIFY: Starting llvm::Module pass manager run
81*9880d681SAndroid Build Coastguard Worker; CHECK-FUNCTION-VERIFY: Starting llvm::Function pass manager run
82*9880d681SAndroid Build Coastguard Worker; CHECK-FUNCTION-VERIFY: Running pass: PrintFunctionPass
83*9880d681SAndroid Build Coastguard Worker; CHECK-FUNCTION-VERIFY-NOT: ModuleID
84*9880d681SAndroid Build Coastguard Worker; CHECK-FUNCTION-VERIFY: define void @foo()
85*9880d681SAndroid Build Coastguard Worker; CHECK-FUNCTION-VERIFY: Running pass: VerifierPass
86*9880d681SAndroid Build Coastguard Worker; CHECK-FUNCTION-VERIFY: Finished llvm::Function pass manager run
87*9880d681SAndroid Build Coastguard Worker; CHECK-FUNCTION-VERIFY: Finished llvm::Module pass manager run
88*9880d681SAndroid Build Coastguard Worker
89*9880d681SAndroid Build Coastguard Worker; RUN: opt -S -o - -passes='no-op-module,no-op-module' %s \
90*9880d681SAndroid Build Coastguard Worker; RUN:     | FileCheck %s --check-prefix=CHECK-NOOP
91*9880d681SAndroid Build Coastguard Worker; CHECK-NOOP: define void @foo() {
92*9880d681SAndroid Build Coastguard Worker; CHECK-NOOP:   ret void
93*9880d681SAndroid Build Coastguard Worker; CHECK-NOOP: }
94*9880d681SAndroid Build Coastguard Worker
95*9880d681SAndroid Build Coastguard Worker; Round trip through bitcode.
96*9880d681SAndroid Build Coastguard Worker; RUN: opt -f -o - -passes='no-op-module,no-op-module' %s \
97*9880d681SAndroid Build Coastguard Worker; RUN:     | llvm-dis \
98*9880d681SAndroid Build Coastguard Worker; RUN:     | FileCheck %s --check-prefix=CHECK-NOOP
99*9880d681SAndroid Build Coastguard Worker
100*9880d681SAndroid Build Coastguard Worker; RUN: opt -disable-output -debug-pass-manager -verify-each -passes='no-op-module,function(no-op-function)' %s 2>&1 \
101*9880d681SAndroid Build Coastguard Worker; RUN:     | FileCheck %s --check-prefix=CHECK-VERIFY-EACH
102*9880d681SAndroid Build Coastguard Worker; CHECK-VERIFY-EACH: Starting llvm::Module pass manager run
103*9880d681SAndroid Build Coastguard Worker; CHECK-VERIFY-EACH: Running pass: VerifierPass
104*9880d681SAndroid Build Coastguard Worker; CHECK-VERIFY-EACH: Running pass: NoOpModulePass
105*9880d681SAndroid Build Coastguard Worker; CHECK-VERIFY-EACH: Running pass: VerifierPass
106*9880d681SAndroid Build Coastguard Worker; CHECK-VERIFY-EACH: Starting llvm::Function pass manager run
107*9880d681SAndroid Build Coastguard Worker; CHECK-VERIFY-EACH: Running pass: NoOpFunctionPass
108*9880d681SAndroid Build Coastguard Worker; CHECK-VERIFY-EACH: Running pass: VerifierPass
109*9880d681SAndroid Build Coastguard Worker; CHECK-VERIFY-EACH: Finished llvm::Function pass manager run
110*9880d681SAndroid Build Coastguard Worker; CHECK-VERIFY-EACH: Running pass: VerifierPass
111*9880d681SAndroid Build Coastguard Worker; CHECK-VERIFY-EACH: Finished llvm::Module pass manager run
112*9880d681SAndroid Build Coastguard Worker
113*9880d681SAndroid Build Coastguard Worker; RUN: opt -disable-output -debug-pass-manager -disable-verify -passes='no-op-module,function(no-op-function)' %s 2>&1 \
114*9880d681SAndroid Build Coastguard Worker; RUN:     | FileCheck %s --check-prefix=CHECK-NO-VERIFY
115*9880d681SAndroid Build Coastguard Worker; CHECK-NO-VERIFY: Starting llvm::Module pass manager run
116*9880d681SAndroid Build Coastguard Worker; CHECK-NO-VERIFY-NOT: VerifierPass
117*9880d681SAndroid Build Coastguard Worker; CHECK-NO-VERIFY: Running pass: NoOpModulePass
118*9880d681SAndroid Build Coastguard Worker; CHECK-NO-VERIFY-NOT: VerifierPass
119*9880d681SAndroid Build Coastguard Worker; CHECK-NO-VERIFY: Starting llvm::Function pass manager run
120*9880d681SAndroid Build Coastguard Worker; CHECK-NO-VERIFY: Running pass: NoOpFunctionPass
121*9880d681SAndroid Build Coastguard Worker; CHECK-NO-VERIFY-NOT: VerifierPass
122*9880d681SAndroid Build Coastguard Worker; CHECK-NO-VERIFY: Finished llvm::Function pass manager run
123*9880d681SAndroid Build Coastguard Worker; CHECK-NO-VERIFY-NOT: VerifierPass
124*9880d681SAndroid Build Coastguard Worker; CHECK-NO-VERIFY: Finished llvm::Module pass manager run
125*9880d681SAndroid Build Coastguard Worker
126*9880d681SAndroid Build Coastguard Worker; RUN: opt -disable-output -debug-pass-manager \
127*9880d681SAndroid Build Coastguard Worker; RUN:     -passes='require<no-op-module>,cgscc(require<no-op-cgscc>,function(require<no-op-function>))' %s 2>&1 \
128*9880d681SAndroid Build Coastguard Worker; RUN:     | FileCheck %s --check-prefix=CHECK-ANALYSES
129*9880d681SAndroid Build Coastguard Worker; CHECK-ANALYSES: Starting llvm::Module pass manager run
130*9880d681SAndroid Build Coastguard Worker; CHECK-ANALYSES: Running pass: RequireAnalysisPass
131*9880d681SAndroid Build Coastguard Worker; CHECK-ANALYSES: Running analysis: NoOpModuleAnalysis
132*9880d681SAndroid Build Coastguard Worker; CHECK-ANALYSES: Starting llvm::LazyCallGraph::SCC pass manager run
133*9880d681SAndroid Build Coastguard Worker; CHECK-ANALYSES: Running pass: RequireAnalysisPass
134*9880d681SAndroid Build Coastguard Worker; CHECK-ANALYSES: Running analysis: NoOpCGSCCAnalysis
135*9880d681SAndroid Build Coastguard Worker; CHECK-ANALYSES: Starting llvm::Function pass manager run
136*9880d681SAndroid Build Coastguard Worker; CHECK-ANALYSES: Running pass: RequireAnalysisPass
137*9880d681SAndroid Build Coastguard Worker; CHECK-ANALYSES: Running analysis: NoOpFunctionAnalysis
138*9880d681SAndroid Build Coastguard Worker
139*9880d681SAndroid Build Coastguard Worker; Make sure no-op passes that preserve all analyses don't even try to do any
140*9880d681SAndroid Build Coastguard Worker; analysis invalidation.
141*9880d681SAndroid Build Coastguard Worker; RUN: opt -disable-output -debug-pass-manager \
142*9880d681SAndroid Build Coastguard Worker; RUN:     -passes='require<no-op-module>,cgscc(require<no-op-cgscc>,function(require<no-op-function>))' %s 2>&1 \
143*9880d681SAndroid Build Coastguard Worker; RUN:     | FileCheck %s --check-prefix=CHECK-NO-OP-INVALIDATION
144*9880d681SAndroid Build Coastguard Worker; CHECK-NO-OP-INVALIDATION: Starting llvm::Module pass manager run
145*9880d681SAndroid Build Coastguard Worker; CHECK-NO-OP-INVALIDATION-NOT: Invalidating all non-preserved analyses
146*9880d681SAndroid Build Coastguard Worker
147*9880d681SAndroid Build Coastguard Worker; RUN: opt -disable-output -debug-pass-manager \
148*9880d681SAndroid Build Coastguard Worker; RUN:     -passes='require<no-op-module>,require<no-op-module>,require<no-op-module>' %s 2>&1 \
149*9880d681SAndroid Build Coastguard Worker; RUN:     | FileCheck %s --check-prefix=CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS
150*9880d681SAndroid Build Coastguard Worker; CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS: Starting llvm::Module pass manager run
151*9880d681SAndroid Build Coastguard Worker; CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass
152*9880d681SAndroid Build Coastguard Worker; CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS: Running analysis: NoOpModuleAnalysis
153*9880d681SAndroid Build Coastguard Worker; CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS-NOT: Running analysis: NoOpModuleAnalysis
154*9880d681SAndroid Build Coastguard Worker
155*9880d681SAndroid Build Coastguard Worker; RUN: opt -disable-output -debug-pass-manager \
156*9880d681SAndroid Build Coastguard Worker; RUN:     -passes='require<no-op-module>,invalidate<no-op-module>,require<no-op-module>' %s 2>&1 \
157*9880d681SAndroid Build Coastguard Worker; RUN:     | FileCheck %s --check-prefix=CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS
158*9880d681SAndroid Build Coastguard Worker; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Starting llvm::Module pass manager run
159*9880d681SAndroid Build Coastguard Worker; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass
160*9880d681SAndroid Build Coastguard Worker; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Running analysis: NoOpModuleAnalysis
161*9880d681SAndroid Build Coastguard Worker; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Invalidating analysis: NoOpModuleAnalysis
162*9880d681SAndroid Build Coastguard Worker; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Running analysis: NoOpModuleAnalysis
163*9880d681SAndroid Build Coastguard Worker
164*9880d681SAndroid Build Coastguard Worker; RUN: opt -disable-output -debug-pass-manager \
165*9880d681SAndroid Build Coastguard Worker; RUN:     -passes='cgscc(require<no-op-cgscc>,require<no-op-cgscc>,require<no-op-cgscc>)' %s 2>&1 \
166*9880d681SAndroid Build Coastguard Worker; RUN:     | FileCheck %s --check-prefix=CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS
167*9880d681SAndroid Build Coastguard Worker; CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS: Starting llvm::Module pass manager run
168*9880d681SAndroid Build Coastguard Worker; CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass
169*9880d681SAndroid Build Coastguard Worker; CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS: Running analysis: NoOpCGSCCAnalysis
170*9880d681SAndroid Build Coastguard Worker; CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS-NOT: Running analysis: NoOpCGSCCAnalysis
171*9880d681SAndroid Build Coastguard Worker
172*9880d681SAndroid Build Coastguard Worker; RUN: opt -disable-output -debug-pass-manager \
173*9880d681SAndroid Build Coastguard Worker; RUN:     -passes='cgscc(require<no-op-cgscc>,invalidate<no-op-cgscc>,require<no-op-cgscc>)' %s 2>&1 \
174*9880d681SAndroid Build Coastguard Worker; RUN:     | FileCheck %s --check-prefix=CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS
175*9880d681SAndroid Build Coastguard Worker; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Starting llvm::Module pass manager run
176*9880d681SAndroid Build Coastguard Worker; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass
177*9880d681SAndroid Build Coastguard Worker; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Running analysis: NoOpCGSCCAnalysis
178*9880d681SAndroid Build Coastguard Worker; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Invalidating analysis: NoOpCGSCCAnalysis
179*9880d681SAndroid Build Coastguard Worker; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Running analysis: NoOpCGSCCAnalysis
180*9880d681SAndroid Build Coastguard Worker
181*9880d681SAndroid Build Coastguard Worker; RUN: opt -disable-output -debug-pass-manager \
182*9880d681SAndroid Build Coastguard Worker; RUN:     -passes='function(require<no-op-function>,require<no-op-function>,require<no-op-function>)' %s 2>&1 \
183*9880d681SAndroid Build Coastguard Worker; RUN:     | FileCheck %s --check-prefix=CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS
184*9880d681SAndroid Build Coastguard Worker; CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS: Starting llvm::Module pass manager run
185*9880d681SAndroid Build Coastguard Worker; CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass
186*9880d681SAndroid Build Coastguard Worker; CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS: Running analysis: NoOpFunctionAnalysis
187*9880d681SAndroid Build Coastguard Worker; CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS-NOT: Running analysis: NoOpFunctionAnalysis
188*9880d681SAndroid Build Coastguard Worker
189*9880d681SAndroid Build Coastguard Worker; RUN: opt -disable-output -debug-pass-manager \
190*9880d681SAndroid Build Coastguard Worker; RUN:     -passes='function(require<no-op-function>,invalidate<no-op-function>,require<no-op-function>)' %s 2>&1 \
191*9880d681SAndroid Build Coastguard Worker; RUN:     | FileCheck %s --check-prefix=CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS
192*9880d681SAndroid Build Coastguard Worker; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Starting llvm::Module pass manager run
193*9880d681SAndroid Build Coastguard Worker; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass
194*9880d681SAndroid Build Coastguard Worker; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Running analysis: NoOpFunctionAnalysis
195*9880d681SAndroid Build Coastguard Worker; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Invalidating analysis: NoOpFunctionAnalysis
196*9880d681SAndroid Build Coastguard Worker; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Running analysis: NoOpFunctionAnalysis
197*9880d681SAndroid Build Coastguard Worker
198*9880d681SAndroid Build Coastguard Worker; RUN: opt -disable-output -disable-verify -debug-pass-manager \
199*9880d681SAndroid Build Coastguard Worker; 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 \
200*9880d681SAndroid Build Coastguard Worker; RUN:     | FileCheck %s --check-prefix=CHECK-INVALIDATE-ALL
201*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL: Starting llvm::Module pass manager run
202*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass
203*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL: Running analysis: NoOpModuleAnalysis
204*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL: Starting llvm::Module pass manager run
205*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass
206*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL-NOT: Running analysis: NoOpModuleAnalysis
207*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL: Starting llvm::Function pass manager run
208*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass
209*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL: Running analysis: NoOpFunctionAnalysis
210*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL: Running pass: InvalidateAllAnalysesPass
211*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL: Invalidating all non-preserved analyses
212*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL: Invalidating analysis: NoOpFunctionAnalysis
213*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass
214*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL: Running analysis: NoOpFunctionAnalysis
215*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL: Finished llvm::Function pass manager run
216*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL: Invalidating all non-preserved analyses
217*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL-NOT: Running analysis: NoOpFunctionAnalysis
218*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL: Invalidating all non-preserved analyses
219*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL: Invalidating analysis: NoOpModuleAnalysis
220*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass
221*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL: Running analysis: NoOpModuleAnalysis
222*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL: Finished llvm::Module pass manager run
223*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL: Invalidating all non-preserved analyses
224*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL-NOT: Invalidating analysis: NoOpModuleAnalysis
225*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass
226*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL-NOT: Running analysis: NoOpModuleAnalysis
227*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL: Finished llvm::Module pass manager run
228*9880d681SAndroid Build Coastguard Worker
229*9880d681SAndroid Build Coastguard Worker; RUN: opt -disable-output -disable-verify -debug-pass-manager \
230*9880d681SAndroid Build Coastguard Worker; 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 \
231*9880d681SAndroid Build Coastguard Worker; RUN:     | FileCheck %s --check-prefix=CHECK-INVALIDATE-ALL-CG
232*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL-CG: Starting llvm::Module pass manager run
233*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
234*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpModuleAnalysis
235*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL-CG: Starting llvm::Module pass manager run
236*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
237*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL-CG-NOT: Running analysis: NoOpModuleAnalysis
238*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL-CG: Starting llvm::LazyCallGraph::SCC pass manager run
239*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
240*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpCGSCCAnalysis
241*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL-CG: Starting llvm::Function pass manager run
242*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
243*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpFunctionAnalysis
244*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL-CG: Running pass: InvalidateAllAnalysesPass
245*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL-CG: Invalidating all non-preserved analyses
246*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL-CG: Invalidating analysis: NoOpFunctionAnalysis
247*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
248*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpFunctionAnalysis
249*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL-CG: Finished llvm::Function pass manager run
250*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL-CG: Invalidating all non-preserved analyses
251*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL-CG-NOT: Running analysis: NoOpFunctionAnalysis
252*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL-CG: Invalidating all non-preserved analyses
253*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL-CG: Invalidating analysis: NoOpCGSCCAnalysis
254*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
255*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpCGSCCAnalysis
256*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL-CG: Finished llvm::LazyCallGraph::SCC pass manager run
257*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL-CG: Invalidating all non-preserved analyses
258*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL-CG-NOT: Invalidating analysis: NoOpCGSCCAnalysis
259*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL-CG: Invalidating all non-preserved analyses
260*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL-CG: Invalidating analysis: NoOpModuleAnalysis
261*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
262*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpModuleAnalysis
263*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL-CG: Finished llvm::Module pass manager run
264*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL-CG: Invalidating all non-preserved analyses
265*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL-CG-NOT: Invalidating analysis: NoOpModuleAnalysis
266*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
267*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL-CG-NOT: Running analysis: NoOpModuleAnalysis
268*9880d681SAndroid Build Coastguard Worker; CHECK-INVALIDATE-ALL-CG: Finished llvm::Module pass manager run
269*9880d681SAndroid Build Coastguard Worker
270*9880d681SAndroid Build Coastguard Worker; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
271*9880d681SAndroid Build Coastguard Worker; RUN:     -passes='require<targetlibinfo>,invalidate<all>,require<targetlibinfo>' \
272*9880d681SAndroid Build Coastguard Worker; RUN:     | FileCheck %s --check-prefix=CHECK-TLI
273*9880d681SAndroid Build Coastguard Worker; CHECK-TLI: Starting llvm::Module pass manager run
274*9880d681SAndroid Build Coastguard Worker; CHECK-TLI: Running pass: RequireAnalysisPass
275*9880d681SAndroid Build Coastguard Worker; CHECK-TLI: Running analysis: TargetLibraryAnalysis
276*9880d681SAndroid Build Coastguard Worker; CHECK-TLI: Running pass: InvalidateAllAnalysesPass
277*9880d681SAndroid Build Coastguard Worker; CHECK-TLI-NOT: Invalidating analysis: TargetLibraryAnalysis
278*9880d681SAndroid Build Coastguard Worker; CHECK-TLI: Running pass: RequireAnalysisPass
279*9880d681SAndroid Build Coastguard Worker; CHECK-TLI-NOT: Running analysis: TargetLibraryAnalysis
280*9880d681SAndroid Build Coastguard Worker; CHECK-TLI: Finished llvm::Module pass manager run
281*9880d681SAndroid Build Coastguard Worker
282*9880d681SAndroid Build Coastguard Worker; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
283*9880d681SAndroid Build Coastguard Worker; RUN:     -passes='require<targetir>,invalidate<all>,require<targetir>' \
284*9880d681SAndroid Build Coastguard Worker; RUN:     | FileCheck %s --check-prefix=CHECK-TIRA
285*9880d681SAndroid Build Coastguard Worker; CHECK-TIRA: Starting llvm::Module pass manager run
286*9880d681SAndroid Build Coastguard Worker; CHECK-TIRA: Running pass: RequireAnalysisPass
287*9880d681SAndroid Build Coastguard Worker; CHECK-TIRA: Running analysis: TargetIRAnalysis
288*9880d681SAndroid Build Coastguard Worker; CHECK-TIRA: Running pass: InvalidateAllAnalysesPass
289*9880d681SAndroid Build Coastguard Worker; CHECK-TIRA-NOT: Invalidating analysis: TargetIRAnalysis
290*9880d681SAndroid Build Coastguard Worker; CHECK-TIRA: Running pass: RequireAnalysisPass
291*9880d681SAndroid Build Coastguard Worker; CHECK-TIRA-NOT: Running analysis: TargetIRAnalysis
292*9880d681SAndroid Build Coastguard Worker; CHECK-TIRA: Finished llvm::Module pass manager run
293*9880d681SAndroid Build Coastguard Worker
294*9880d681SAndroid Build Coastguard Worker; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
295*9880d681SAndroid Build Coastguard Worker; RUN:     -passes='require<domtree>' \
296*9880d681SAndroid Build Coastguard Worker; RUN:     | FileCheck %s --check-prefix=CHECK-DT
297*9880d681SAndroid Build Coastguard Worker; CHECK-DT: Starting llvm::Module pass manager run
298*9880d681SAndroid Build Coastguard Worker; CHECK-DT: Running pass: RequireAnalysisPass
299*9880d681SAndroid Build Coastguard Worker; CHECK-DT: Running analysis: DominatorTreeAnalysis
300*9880d681SAndroid Build Coastguard Worker; CHECK-DT: Finished llvm::Module pass manager run
301*9880d681SAndroid Build Coastguard Worker
302*9880d681SAndroid Build Coastguard Worker; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
303*9880d681SAndroid Build Coastguard Worker; RUN:     -passes='require<basic-aa>' \
304*9880d681SAndroid Build Coastguard Worker; RUN:     | FileCheck %s --check-prefix=CHECK-BASIC-AA
305*9880d681SAndroid Build Coastguard Worker; CHECK-BASIC-AA: Starting llvm::Module pass manager run
306*9880d681SAndroid Build Coastguard Worker; CHECK-BASIC-AA: Running pass: RequireAnalysisPass
307*9880d681SAndroid Build Coastguard Worker; CHECK-BASIC-AA: Running analysis: BasicAA
308*9880d681SAndroid Build Coastguard Worker; CHECK-BASIC-AA: Finished llvm::Module pass manager run
309*9880d681SAndroid Build Coastguard Worker
310*9880d681SAndroid Build Coastguard Worker; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
311*9880d681SAndroid Build Coastguard Worker; RUN:     -passes='require<aa>' -aa-pipeline='basic-aa' \
312*9880d681SAndroid Build Coastguard Worker; RUN:     | FileCheck %s --check-prefix=CHECK-AA
313*9880d681SAndroid Build Coastguard Worker; CHECK-AA: Starting llvm::Module pass manager run
314*9880d681SAndroid Build Coastguard Worker; CHECK-AA: Running pass: RequireAnalysisPass
315*9880d681SAndroid Build Coastguard Worker; CHECK-AA: Running analysis: AAManager
316*9880d681SAndroid Build Coastguard Worker; CHECK-AA: Running analysis: BasicAA
317*9880d681SAndroid Build Coastguard Worker; CHECK-AA: Finished llvm::Module pass manager run
318*9880d681SAndroid Build Coastguard Worker
319*9880d681SAndroid Build Coastguard Worker; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
320*9880d681SAndroid Build Coastguard Worker; RUN:     -passes='require<memdep>' \
321*9880d681SAndroid Build Coastguard Worker; RUN:     | FileCheck %s --check-prefix=CHECK-MEMDEP
322*9880d681SAndroid Build Coastguard Worker; CHECK-MEMDEP: Starting llvm::Module pass manager run
323*9880d681SAndroid Build Coastguard Worker; CHECK-MEMDEP: Running pass: RequireAnalysisPass
324*9880d681SAndroid Build Coastguard Worker; CHECK-MEMDEP: Running analysis: MemoryDependenceAnalysis
325*9880d681SAndroid Build Coastguard Worker; CHECK-MEMDEP: Finished llvm::Module pass manager run
326*9880d681SAndroid Build Coastguard Worker
327*9880d681SAndroid Build Coastguard Worker; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
328*9880d681SAndroid Build Coastguard Worker; RUN:     -passes='require<callgraph>' \
329*9880d681SAndroid Build Coastguard Worker; RUN:     | FileCheck %s --check-prefix=CHECK-CALLGRAPH
330*9880d681SAndroid Build Coastguard Worker; CHECK-CALLGRAPH: Starting llvm::Module pass manager run
331*9880d681SAndroid Build Coastguard Worker; CHECK-CALLGRAPH: Running pass: RequireAnalysisPass
332*9880d681SAndroid Build Coastguard Worker; CHECK-CALLGRAPH: Running analysis: CallGraphAnalysis
333*9880d681SAndroid Build Coastguard Worker; CHECK-CALLGRAPH: Finished llvm::Module pass manager run
334*9880d681SAndroid Build Coastguard Worker
335*9880d681SAndroid Build Coastguard Worker; RUN: opt -disable-output -disable-verify -debug-pass-manager \
336*9880d681SAndroid Build Coastguard Worker; RUN:     -passes='default<O0>' %s 2>&1 \
337*9880d681SAndroid Build Coastguard Worker; RUN:     | FileCheck %s --check-prefix=CHECK-O2
338*9880d681SAndroid Build Coastguard Worker; RUN: opt -disable-output -disable-verify -debug-pass-manager \
339*9880d681SAndroid Build Coastguard Worker; RUN:     -passes='default<O1>' %s 2>&1 \
340*9880d681SAndroid Build Coastguard Worker; RUN:     | FileCheck %s --check-prefix=CHECK-O2
341*9880d681SAndroid Build Coastguard Worker; RUN: opt -disable-output -disable-verify -debug-pass-manager \
342*9880d681SAndroid Build Coastguard Worker; RUN:     -passes='default<O2>' %s 2>&1 \
343*9880d681SAndroid Build Coastguard Worker; RUN:     | FileCheck %s --check-prefix=CHECK-O2
344*9880d681SAndroid Build Coastguard Worker; RUN: opt -disable-output -disable-verify -debug-pass-manager \
345*9880d681SAndroid Build Coastguard Worker; RUN:     -passes='default<Os>' %s 2>&1 \
346*9880d681SAndroid Build Coastguard Worker; RUN:     | FileCheck %s --check-prefix=CHECK-O2
347*9880d681SAndroid Build Coastguard Worker; RUN: opt -disable-output -disable-verify -debug-pass-manager \
348*9880d681SAndroid Build Coastguard Worker; RUN:     -passes='default<Oz>' %s 2>&1 \
349*9880d681SAndroid Build Coastguard Worker; RUN:     | FileCheck %s --check-prefix=CHECK-O2
350*9880d681SAndroid Build Coastguard Worker; RUN: opt -disable-output -disable-verify -debug-pass-manager \
351*9880d681SAndroid Build Coastguard Worker; RUN:     -passes='lto-pre-link<O2>' %s 2>&1 \
352*9880d681SAndroid Build Coastguard Worker; RUN:     | FileCheck %s --check-prefix=CHECK-O2
353*9880d681SAndroid Build Coastguard Worker; CHECK-O2: Starting llvm::Module pass manager run
354*9880d681SAndroid Build Coastguard Worker; CHECK-O2: Running pass: SimplifyCFGPass
355*9880d681SAndroid Build Coastguard Worker; CHECK-O2: Running pass: SROA
356*9880d681SAndroid Build Coastguard Worker; CHECK-O2: Running pass: EarlyCSEPass
357*9880d681SAndroid Build Coastguard Worker; CHECK-O2: Running pass: LowerExpectIntrinsicPass
358*9880d681SAndroid Build Coastguard Worker
359*9880d681SAndroid Build Coastguard Worker; RUN: opt -disable-output -disable-verify -debug-pass-manager \
360*9880d681SAndroid Build Coastguard Worker; RUN:     -passes='lto<O2>' %s 2>&1 \
361*9880d681SAndroid Build Coastguard Worker; RUN:     | FileCheck %s --check-prefix=CHECK-LTO-O2
362*9880d681SAndroid Build Coastguard Worker; CHECK-LTO-O2: Starting llvm::Module pass manager run
363*9880d681SAndroid Build Coastguard Worker; CHECK-LTO-O2: Running pass: InstCombinePass
364*9880d681SAndroid Build Coastguard Worker; CHECK-LTO-O2: Running pass: SimplifyCFGPass
365*9880d681SAndroid Build Coastguard Worker
366*9880d681SAndroid Build Coastguard Workerdefine void @foo() {
367*9880d681SAndroid Build Coastguard Worker  ret void
368*9880d681SAndroid Build Coastguard Worker}
369*9880d681SAndroid Build Coastguard Worker
370*9880d681SAndroid Build Coastguard Workerdeclare void @bar()
371