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