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