1 ; RUN: opt -enable-new-pm=0 -O3 -enable-matrix -debug-pass=Structure %s -disable-output 2>&1 | FileCheck %s
5 ; CHECK-LABEL: Pass Arguments:
6 ; CHECK-NEXT: Target Transform Information
7 ; CHECK-NEXT: Type-Based Alias Analysis
8 ; CHECK-NEXT: Scoped NoAlias Alias Analysis
9 ; CHECK-NEXT: Assumption Cache Tracker
10 ; CHECK-NEXT: Target Library Information
11 ; CHECK-NEXT: FunctionPass Manager
12 ; CHECK-NEXT: Module Verifier
13 ; CHECK-EXT: Good Bye World Pass
14 ; CHECK-NOEXT-NOT: Good Bye World Pass
15 ; CHECK-NEXT: Lower 'expect' Intrinsics
16 ; CHECK-NEXT: Simplify the CFG
17 ; CHECK-NEXT: Dominator Tree Construction
19 ; CHECK-NEXT: Early CSE
20 ; CHECK-NEXT: Pass Arguments:
21 ; CHECK-NEXT: Target Library Information
22 ; CHECK-NEXT: Target Transform Information
23 ; Target Pass Configuration
24 ; CHECK: Type-Based Alias Analysis
25 ; CHECK-NEXT: Scoped NoAlias Alias Analysis
26 ; CHECK-NEXT: Assumption Cache Tracker
27 ; CHECK-NEXT: Profile summary info
28 ; CHECK-NEXT: ModulePass Manager
29 ; CHECK-NEXT: Annotation2Metadata
30 ; CHECK-NEXT: Force set function attributes
31 ; CHECK-NEXT: Infer set function attributes
32 ; CHECK-NEXT: FunctionPass Manager
33 ; CHECK-NEXT: Dominator Tree Construction
34 ; CHECK-NEXT: Call-site splitting
35 ; CHECK-NEXT: Interprocedural Sparse Conditional Constant Propagation
36 ; CHECK-NEXT: FunctionPass Manager
37 ; CHECK-NEXT: Dominator Tree Construction
38 ; CHECK-NEXT: Called Value Propagation
39 ; CHECK-NEXT: Global Variable Optimizer
40 ; CHECK-NEXT: FunctionPass Manager
41 ; CHECK-NEXT: Dominator Tree Construction
42 ; CHECK-NEXT: Natural Loop Information
43 ; CHECK-NEXT: Post-Dominator Tree Construction
44 ; CHECK-NEXT: Branch Probability Analysis
45 ; CHECK-NEXT: Block Frequency Analysis
46 ; CHECK-NEXT: FunctionPass Manager
47 ; CHECK-NEXT: Dominator Tree Construction
48 ; CHECK-NEXT: Promote Memory to Register
49 ; CHECK-NEXT: Dead Argument Elimination
50 ; CHECK-NEXT: FunctionPass Manager
51 ; CHECK-NEXT: Dominator Tree Construction
52 ; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
53 ; CHECK-NEXT: Function Alias Analysis Results
54 ; CHECK-NEXT: Natural Loop Information
55 ; CHECK-NEXT: Lazy Branch Probability Analysis
56 ; CHECK-NEXT: Lazy Block Frequency Analysis
57 ; CHECK-NEXT: Optimization Remark Emitter
58 ; CHECK-NEXT: Combine redundant instructions
59 ; CHECK-NEXT: Simplify the CFG
60 ; CHECK-NEXT: CallGraph Construction
61 ; CHECK-NEXT: Globals Alias Analysis
62 ; CHECK-NEXT: Call Graph SCC Pass Manager
63 ; CHECK-NEXT: Remove unused exception handling info
64 ; CHECK-NEXT: Function Integration/Inlining
65 ; CHECK-NEXT: OpenMP specific optimizations
66 ; CHECK-NEXT: Deduce function attributes
67 ; CHECK-NEXT: Promote 'by reference' arguments to scalars
68 ; CHECK-NEXT: FunctionPass Manager
69 ; CHECK-NEXT: Dominator Tree Construction
71 ; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
72 ; CHECK-NEXT: Function Alias Analysis Results
73 ; CHECK-NEXT: Memory SSA
74 ; CHECK-NEXT: Early CSE w/ MemorySSA
75 ; CHECK-NEXT: Speculatively execute instructions if target has divergent branches
76 ; CHECK-NEXT: Function Alias Analysis Results
77 ; CHECK-NEXT: Lazy Value Information Analysis
78 ; CHECK-NEXT: Jump Threading
79 ; CHECK-NEXT: Value Propagation
80 ; CHECK-NEXT: Simplify the CFG
81 ; CHECK-NEXT: Dominator Tree Construction
82 ; CHECK-NEXT: Combine pattern based expressions
83 ; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
84 ; CHECK-NEXT: Function Alias Analysis Results
85 ; CHECK-NEXT: Natural Loop Information
86 ; CHECK-NEXT: Lazy Branch Probability Analysis
87 ; CHECK-NEXT: Lazy Block Frequency Analysis
88 ; CHECK-NEXT: Optimization Remark Emitter
89 ; CHECK-NEXT: Combine redundant instructions
90 ; CHECK-NEXT: Conditionally eliminate dead library calls
91 ; CHECK-NEXT: Natural Loop Information
92 ; CHECK-NEXT: Post-Dominator Tree Construction
93 ; CHECK-NEXT: Branch Probability Analysis
94 ; CHECK-NEXT: Block Frequency Analysis
95 ; CHECK-NEXT: Lazy Branch Probability Analysis
96 ; CHECK-NEXT: Lazy Block Frequency Analysis
97 ; CHECK-NEXT: Optimization Remark Emitter
98 ; CHECK-NEXT: PGOMemOPSize
99 ; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
100 ; CHECK-NEXT: Function Alias Analysis Results
101 ; CHECK-NEXT: Natural Loop Information
102 ; CHECK-NEXT: Lazy Branch Probability Analysis
103 ; CHECK-NEXT: Lazy Block Frequency Analysis
104 ; CHECK-NEXT: Optimization Remark Emitter
105 ; CHECK-NEXT: Tail Call Elimination
106 ; CHECK-NEXT: Simplify the CFG
107 ; CHECK-NEXT: Reassociate expressions
108 ; CHECK-NEXT: Dominator Tree Construction
109 ; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
110 ; CHECK-NEXT: Function Alias Analysis Results
111 ; CHECK-NEXT: Memory SSA
112 ; CHECK-NEXT: Natural Loop Information
113 ; CHECK-NEXT: Canonicalize natural loops
114 ; CHECK-NEXT: LCSSA Verifier
115 ; CHECK-NEXT: Loop-Closed SSA Form Pass
116 ; CHECK-NEXT: Scalar Evolution Analysis
117 ; CHECK-NEXT: Lazy Branch Probability Analysis
118 ; CHECK-NEXT: Lazy Block Frequency Analysis
119 ; CHECK-NEXT: Loop Pass Manager
120 ; CHECK-NEXT: Loop Invariant Code Motion
121 ; CHECK-NEXT: Rotate Loops
122 ; CHECK-NEXT: Loop Invariant Code Motion
123 ; CHECK-NEXT: Unswitch loops
124 ; CHECK-NEXT: Simplify the CFG
125 ; CHECK-NEXT: Dominator Tree Construction
126 ; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
127 ; CHECK-NEXT: Function Alias Analysis Results
128 ; CHECK-NEXT: Natural Loop Information
129 ; CHECK-NEXT: Lazy Branch Probability Analysis
130 ; CHECK-NEXT: Lazy Block Frequency Analysis
131 ; CHECK-NEXT: Optimization Remark Emitter
132 ; CHECK-NEXT: Combine redundant instructions
133 ; CHECK-NEXT: Canonicalize natural loops
134 ; CHECK-NEXT: LCSSA Verifier
135 ; CHECK-NEXT: Loop-Closed SSA Form Pass
136 ; CHECK-NEXT: Scalar Evolution Analysis
137 ; CHECK-NEXT: Loop Pass Manager
138 ; CHECK-NEXT: Recognize loop idioms
139 ; CHECK-NEXT: Induction Variable Simplification
140 ; CHECK-NEXT: Delete dead loops
141 ; CHECK-NEXT: Unroll loops
143 ; CHECK-NEXT: Function Alias Analysis Results
144 ; CHECK-NEXT: MergedLoadStoreMotion
145 ; CHECK-NEXT: Phi Values Analysis
146 ; CHECK-NEXT: Function Alias Analysis Results
147 ; CHECK-NEXT: Memory Dependence Analysis
148 ; CHECK-NEXT: Lazy Branch Probability Analysis
149 ; CHECK-NEXT: Lazy Block Frequency Analysis
150 ; CHECK-NEXT: Optimization Remark Emitter
151 ; CHECK-NEXT: Global Value Numbering
152 ; CHECK-NEXT: Sparse Conditional Constant Propagation
153 ; CHECK-NEXT: Demanded bits analysis
154 ; CHECK-NEXT: Bit-Tracking Dead Code Elimination
155 ; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
156 ; CHECK-NEXT: Function Alias Analysis Results
157 ; CHECK-NEXT: Lazy Branch Probability Analysis
158 ; CHECK-NEXT: Lazy Block Frequency Analysis
159 ; CHECK-NEXT: Optimization Remark Emitter
160 ; CHECK-NEXT: Combine redundant instructions
161 ; CHECK-NEXT: Lazy Value Information Analysis
162 ; CHECK-NEXT: Jump Threading
163 ; CHECK-NEXT: Value Propagation
164 ; CHECK-NEXT: Post-Dominator Tree Construction
165 ; CHECK-NEXT: Aggressive Dead Code Elimination
166 ; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
167 ; CHECK-NEXT: Function Alias Analysis Results
168 ; CHECK-NEXT: Memory SSA
169 ; CHECK-NEXT: MemCpy Optimization
170 ; CHECK-NEXT: Natural Loop Information
171 ; CHECK-NEXT: Dead Store Elimination
172 ; CHECK-NEXT: Canonicalize natural loops
173 ; CHECK-NEXT: LCSSA Verifier
174 ; CHECK-NEXT: Loop-Closed SSA Form Pass
175 ; CHECK-NEXT: Function Alias Analysis Results
176 ; CHECK-NEXT: Scalar Evolution Analysis
177 ; CHECK-NEXT: Lazy Branch Probability Analysis
178 ; CHECK-NEXT: Lazy Block Frequency Analysis
179 ; CHECK-NEXT: Loop Pass Manager
180 ; CHECK-NEXT: Loop Invariant Code Motion
181 ; CHECK-NEXT: Simplify the CFG
182 ; CHECK-NEXT: Dominator Tree Construction
183 ; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
184 ; CHECK-NEXT: Function Alias Analysis Results
185 ; CHECK-NEXT: Natural Loop Information
186 ; CHECK-NEXT: Lazy Branch Probability Analysis
187 ; CHECK-NEXT: Lazy Block Frequency Analysis
188 ; CHECK-NEXT: Optimization Remark Emitter
189 ; CHECK-NEXT: Combine redundant instructions
190 ; CHECK-NEXT: A No-Op Barrier Pass
191 ; CHECK-NEXT: Eliminate Available Externally Globals
192 ; CHECK-NEXT: CallGraph Construction
193 ; CHECK-NEXT: Deduce function attributes in RPO
194 ; CHECK-NEXT: Global Variable Optimizer
195 ; CHECK-NEXT: FunctionPass Manager
196 ; CHECK-NEXT: Dominator Tree Construction
197 ; CHECK-NEXT: Natural Loop Information
198 ; CHECK-NEXT: Post-Dominator Tree Construction
199 ; CHECK-NEXT: Branch Probability Analysis
200 ; CHECK-NEXT: Block Frequency Analysis
201 ; CHECK-NEXT: Dead Global Elimination
202 ; CHECK-NEXT: CallGraph Construction
203 ; CHECK-NEXT: Globals Alias Analysis
204 ; CHECK-NEXT: FunctionPass Manager
205 ; CHECK-NEXT: Dominator Tree Construction
206 ; CHECK-NEXT: Float to int
207 ; CHECK-NEXT: Lower constant intrinsics
208 ; CHECK-NEXT: Natural Loop Information
209 ; CHECK-NEXT: Lazy Branch Probability Analysis
210 ; CHECK-NEXT: Lazy Block Frequency Analysis
211 ; CHECK-NEXT: Optimization Remark Emitter
212 ; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
213 ; CHECK-NEXT: Function Alias Analysis Results
214 ; CHECK-NEXT: Lower the matrix intrinsics
215 ; CHECK-NEXT: Early CSE
216 ; CHECK-NEXT: Canonicalize natural loops
217 ; CHECK-NEXT: LCSSA Verifier
218 ; CHECK-NEXT: Loop-Closed SSA Form Pass
219 ; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
220 ; CHECK-NEXT: Function Alias Analysis Results
221 ; CHECK-NEXT: Scalar Evolution Analysis
222 ; CHECK-NEXT: Loop Pass Manager
223 ; CHECK-NEXT: Rotate Loops
224 ; CHECK-NEXT: Loop Access Analysis
225 ; CHECK-NEXT: Lazy Branch Probability Analysis
226 ; CHECK-NEXT: Lazy Block Frequency Analysis
227 ; CHECK-NEXT: Optimization Remark Emitter
228 ; CHECK-NEXT: Loop Distribution
229 ; CHECK-NEXT: Post-Dominator Tree Construction
230 ; CHECK-NEXT: Branch Probability Analysis
231 ; CHECK-NEXT: Block Frequency Analysis
232 ; CHECK-NEXT: Scalar Evolution Analysis
233 ; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
234 ; CHECK-NEXT: Function Alias Analysis Results
235 ; CHECK-NEXT: Loop Access Analysis
236 ; CHECK-NEXT: Demanded bits analysis
237 ; CHECK-NEXT: Lazy Branch Probability Analysis
238 ; CHECK-NEXT: Lazy Block Frequency Analysis
239 ; CHECK-NEXT: Optimization Remark Emitter
240 ; CHECK-NEXT: Inject TLI Mappings
241 ; CHECK-NEXT: Loop Vectorization
242 ; CHECK-NEXT: Canonicalize natural loops
243 ; CHECK-NEXT: Scalar Evolution Analysis
244 ; CHECK-NEXT: Function Alias Analysis Results
245 ; CHECK-NEXT: Loop Access Analysis
246 ; CHECK-NEXT: Lazy Branch Probability Analysis
247 ; CHECK-NEXT: Lazy Block Frequency Analysis
248 ; CHECK-NEXT: Loop Load Elimination
249 ; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
250 ; CHECK-NEXT: Function Alias Analysis Results
251 ; CHECK-NEXT: Lazy Branch Probability Analysis
252 ; CHECK-NEXT: Lazy Block Frequency Analysis
253 ; CHECK-NEXT: Optimization Remark Emitter
254 ; CHECK-NEXT: Combine redundant instructions
255 ; CHECK-NEXT: Simplify the CFG
256 ; CHECK-NEXT: Dominator Tree Construction
257 ; CHECK-NEXT: Natural Loop Information
258 ; CHECK-NEXT: Scalar Evolution Analysis
259 ; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
260 ; CHECK-NEXT: Function Alias Analysis Results
261 ; CHECK-NEXT: Demanded bits analysis
262 ; CHECK-NEXT: Lazy Branch Probability Analysis
263 ; CHECK-NEXT: Lazy Block Frequency Analysis
264 ; CHECK-NEXT: Optimization Remark Emitter
265 ; CHECK-NEXT: Inject TLI Mappings
266 ; CHECK-NEXT: SLP Vectorizer
267 ; CHECK-NEXT: Optimize scalar/vector ops
268 ; CHECK-NEXT: Optimization Remark Emitter
269 ; CHECK-NEXT: Combine redundant instructions
270 ; CHECK-NEXT: Canonicalize natural loops
271 ; CHECK-NEXT: LCSSA Verifier
272 ; CHECK-NEXT: Loop-Closed SSA Form Pass
273 ; CHECK-NEXT: Scalar Evolution Analysis
274 ; CHECK-NEXT: Loop Pass Manager
275 ; CHECK-NEXT: Unroll loops
276 ; CHECK-NEXT: Lazy Branch Probability Analysis
277 ; CHECK-NEXT: Lazy Block Frequency Analysis
278 ; CHECK-NEXT: Optimization Remark Emitter
279 ; CHECK-NEXT: Combine redundant instructions
280 ; CHECK-NEXT: Memory SSA
281 ; CHECK-NEXT: Canonicalize natural loops
282 ; CHECK-NEXT: LCSSA Verifier
283 ; CHECK-NEXT: Loop-Closed SSA Form Pass
284 ; CHECK-NEXT: Scalar Evolution Analysis
285 ; CHECK-NEXT: Lazy Branch Probability Analysis
286 ; CHECK-NEXT: Lazy Block Frequency Analysis
287 ; CHECK-NEXT: Loop Pass Manager
288 ; CHECK-NEXT: Loop Invariant Code Motion
289 ; CHECK-NEXT: Optimization Remark Emitter
290 ; CHECK-NEXT: Warn about non-applied transformations
291 ; CHECK-NEXT: Alignment from assumptions
292 ; CHECK-NEXT: Strip Unused Function Prototypes
293 ; CHECK-NEXT: Dead Global Elimination
294 ; CHECK-NEXT: Merge Duplicate Global Constants
295 ; CHECK-NEXT: Call Graph Profile
296 ; CHECK-NEXT: FunctionPass Manager
297 ; CHECK-NEXT: Dominator Tree Construction
298 ; CHECK-NEXT: Natural Loop Information
299 ; CHECK-NEXT: Lazy Branch Probability Analysis
300 ; CHECK-NEXT: Lazy Block Frequency Analysis
301 ; CHECK-NEXT: FunctionPass Manager
302 ; CHECK-NEXT: Dominator Tree Construction
303 ; CHECK-NEXT: Natural Loop Information
304 ; CHECK-NEXT: Post-Dominator Tree Construction
305 ; CHECK-NEXT: Branch Probability Analysis
306 ; CHECK-NEXT: Block Frequency Analysis
307 ; CHECK-NEXT: Canonicalize natural loops
308 ; CHECK-NEXT: LCSSA Verifier
309 ; CHECK-NEXT: Loop-Closed SSA Form Pass
310 ; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
311 ; CHECK-NEXT: Function Alias Analysis Results
312 ; CHECK-NEXT: Scalar Evolution Analysis
313 ; CHECK-NEXT: Block Frequency Analysis
314 ; CHECK-NEXT: Loop Pass Manager
315 ; CHECK-NEXT: Loop Sink
316 ; CHECK-NEXT: Lazy Branch Probability Analysis
317 ; CHECK-NEXT: Lazy Block Frequency Analysis
318 ; CHECK-NEXT: Optimization Remark Emitter
319 ; CHECK-NEXT: Remove redundant instructions
320 ; CHECK-NEXT: Hoist/decompose integer division and remainder
321 ; CHECK-NEXT: Simplify the CFG
322 ; CHECK-NEXT: Annotation Remarks
323 ; CHECK-NEXT: Module Verifier
324 ; CHECK-NEXT: Pass Arguments:
325 ; CHECK-NEXT: FunctionPass Manager
326 ; CHECK-NEXT: Dominator Tree Construction
327 ; CHECK-NEXT: Pass Arguments:
328 ; CHECK-NEXT: Target Library Information
329 ; CHECK-NEXT: FunctionPass Manager
330 ; CHECK-NEXT: Dominator Tree Construction
331 ; CHECK-NEXT: Natural Loop Information
332 ; CHECK-NEXT: Post-Dominator Tree Construction
333 ; CHECK-NEXT: Branch Probability Analysis
334 ; CHECK-NEXT: Block Frequency Analysis
335 ; CHECK-NEXT: Pass Arguments:
336 ; CHECK-NEXT: Target Library Information
337 ; CHECK-NEXT: FunctionPass Manager
338 ; CHECK-NEXT: Dominator Tree Construction
339 ; CHECK-NEXT: Natural Loop Information
340 ; CHECK-NEXT: Post-Dominator Tree Construction
341 ; CHECK-NEXT: Branch Probability Analysis
342 ; CHECK-NEXT: Block Frequency Analysis