1 ; UNSUPPORTED: expensive_checks
2 ; RUN: llc -O0 -mtriple=amdgcn--amdhsa -disable-verify -debug-pass=Structure < %s 2>&1 \
3 ; RUN: | FileCheck -match-full-lines -strict-whitespace -check-prefix=GCN-O0 %s
4 ; RUN: llc -O1 -mtriple=amdgcn--amdhsa -disable-verify -debug-pass=Structure < %s 2>&1 \
5 ; RUN: | FileCheck -match-full-lines -strict-whitespace -check-prefix=GCN-O1 %s
6 ; RUN: llc -O1 -mtriple=amdgcn--amdhsa -disable-verify -amdgpu-scalar-ir-passes -amdgpu-sdwa-peephole \
7 ; RUN: -amdgpu-load-store-vectorizer -amdgpu-enable-pre-ra-optimizations -debug-pass=Structure < %s 2>&1 \
8 ; RUN: | FileCheck -match-full-lines -strict-whitespace -check-prefix=GCN-O1-OPTS %s
9 ; RUN: llc -O2 -mtriple=amdgcn--amdhsa -disable-verify -debug-pass=Structure < %s 2>&1 \
10 ; RUN: | FileCheck -match-full-lines -strict-whitespace -check-prefix=GCN-O2 %s
11 ; RUN: llc -O3 -mtriple=amdgcn--amdhsa -disable-verify -debug-pass=Structure < %s 2>&1 \
12 ; RUN: | FileCheck -match-full-lines -strict-whitespace -check-prefix=GCN-O3 %s
16 ; GCN-O0:Target Library Information
17 ; GCN-O0-NEXT:Target Pass Configuration
18 ; GCN-O0-NEXT:Machine Module Information
19 ; GCN-O0-NEXT:Target Transform Information
20 ; GCN-O0-NEXT:Assumption Cache Tracker
21 ; GCN-O0-NEXT:Profile summary info
22 ; GCN-O0-NEXT:Argument Register Usage Information Storage
23 ; GCN-O0-NEXT:Create Garbage Collector Module Metadata
24 ; GCN-O0-NEXT:Register Usage Information Storage
25 ; GCN-O0-NEXT:Machine Branch Probability Analysis
26 ; GCN-O0-NEXT: ModulePass Manager
27 ; GCN-O0-NEXT: Pre-ISel Intrinsic Lowering
28 ; GCN-O0-NEXT: FunctionPass Manager
29 ; GCN-O0-NEXT: Expand large div/rem
30 ; GCN-O0-NEXT: Expand large fp convert
31 ; GCN-O0-NEXT: AMDGPU Remove Incompatible Functions
32 ; GCN-O0-NEXT: AMDGPU Printf lowering
33 ; GCN-O0-NEXT: Lower ctors and dtors for AMDGPU
34 ; GCN-O0-NEXT: AMDGPU Inline All Functions
35 ; GCN-O0-NEXT: Inliner for always_inline functions
36 ; GCN-O0-NEXT: FunctionPass Manager
37 ; GCN-O0-NEXT: Dominator Tree Construction
38 ; GCN-O0-NEXT: Basic Alias Analysis (stateless AA impl)
39 ; GCN-O0-NEXT: Function Alias Analysis Results
40 ; GCN-O0-NEXT: Lower OpenCL enqueued blocks
41 ; GCN-O0-NEXT: Lower uses of LDS variables from non-kernel functions
42 ; GCN-O0-NEXT: FunctionPass Manager
43 ; GCN-O0-NEXT: Expand Atomic instructions
44 ; GCN-O0-NEXT: Lower constant intrinsics
45 ; GCN-O0-NEXT: Remove unreachable blocks from the CFG
46 ; GCN-O0-NEXT: Expand vector predication intrinsics
47 ; GCN-O0-NEXT: Scalarize Masked Memory Intrinsics
48 ; GCN-O0-NEXT: Expand reduction intrinsics
49 ; GCN-O0-NEXT: CallGraph Construction
50 ; GCN-O0-NEXT: Call Graph SCC Pass Manager
51 ; GCN-O0-NEXT: AMDGPU Annotate Kernel Features
52 ; GCN-O0-NEXT: FunctionPass Manager
53 ; GCN-O0-NEXT: AMDGPU Lower Kernel Arguments
54 ; GCN-O0-NEXT: Lazy Value Information Analysis
55 ; GCN-O0-NEXT: Lower SwitchInst's to branches
56 ; GCN-O0-NEXT: Lower invoke and unwind, for unwindless code generators
57 ; GCN-O0-NEXT: Remove unreachable blocks from the CFG
58 ; GCN-O0-NEXT: Post-Dominator Tree Construction
59 ; GCN-O0-NEXT: Dominator Tree Construction
60 ; GCN-O0-NEXT: Cycle Info Analysis
61 ; GCN-O0-NEXT: Uniformity Analysis
62 ; GCN-O0-NEXT: Unify divergent function exit nodes
63 ; GCN-O0-NEXT: Dominator Tree Construction
64 ; GCN-O0-NEXT: Natural Loop Information
65 ; GCN-O0-NEXT: Convert irreducible control-flow into natural loops
66 ; GCN-O0-NEXT: Fixup each natural loop to have a single exit block
67 ; GCN-O0-NEXT: Post-Dominator Tree Construction
68 ; GCN-O0-NEXT: Dominance Frontier Construction
69 ; GCN-O0-NEXT: Detect single entry single exit regions
70 ; GCN-O0-NEXT: Region Pass Manager
71 ; GCN-O0-NEXT: Structurize control flow
72 ; GCN-O0-NEXT: Cycle Info Analysis
73 ; GCN-O0-NEXT: Uniformity Analysis
74 ; GCN-O0-NEXT: Basic Alias Analysis (stateless AA impl)
75 ; GCN-O0-NEXT: Function Alias Analysis Results
76 ; GCN-O0-NEXT: Memory SSA
77 ; GCN-O0-NEXT: AMDGPU Annotate Uniform Values
78 ; GCN-O0-NEXT: Natural Loop Information
79 ; GCN-O0-NEXT: SI annotate control flow
80 ; GCN-O0-NEXT: Cycle Info Analysis
81 ; GCN-O0-NEXT: Uniformity Analysis
82 ; GCN-O0-NEXT: AMDGPU Rewrite Undef for PHI
83 ; GCN-O0-NEXT: LCSSA Verifier
84 ; GCN-O0-NEXT: Loop-Closed SSA Form Pass
85 ; GCN-O0-NEXT: DummyCGSCCPass
86 ; GCN-O0-NEXT: FunctionPass Manager
87 ; GCN-O0-NEXT: Prepare callbr
88 ; GCN-O0-NEXT: Safe Stack instrumentation pass
89 ; GCN-O0-NEXT: Insert stack protectors
90 ; GCN-O0-NEXT: Dominator Tree Construction
91 ; GCN-O0-NEXT: Cycle Info Analysis
92 ; GCN-O0-NEXT: Uniformity Analysis
93 ; GCN-O0-NEXT: Assignment Tracking Analysis
94 ; GCN-O0-NEXT: AMDGPU DAG->DAG Pattern Instruction Selection
95 ; GCN-O0-NEXT: MachineDominator Tree Construction
96 ; GCN-O0-NEXT: SI Fix SGPR copies
97 ; GCN-O0-NEXT: MachinePostDominator Tree Construction
98 ; GCN-O0-NEXT: SI Lower i1 Copies
99 ; GCN-O0-NEXT: Finalize ISel and expand pseudo-instructions
100 ; GCN-O0-NEXT: Local Stack Slot Allocation
101 ; GCN-O0-NEXT: Register Usage Information Propagation
102 ; GCN-O0-NEXT: Eliminate PHI nodes for register allocation
103 ; GCN-O0-NEXT: SI Lower control flow pseudo instructions
104 ; GCN-O0-NEXT: Two-Address instruction pass
105 ; GCN-O0-NEXT: MachineDominator Tree Construction
106 ; GCN-O0-NEXT: Slot index numbering
107 ; GCN-O0-NEXT: Live Interval Analysis
108 ; GCN-O0-NEXT: MachinePostDominator Tree Construction
109 ; GCN-O0-NEXT: SI Whole Quad Mode
110 ; GCN-O0-NEXT: Virtual Register Map
111 ; GCN-O0-NEXT: Live Register Matrix
112 ; GCN-O0-NEXT: SI Pre-allocate WWM Registers
113 ; GCN-O0-NEXT: AMDGPU Pre-RA Long Branch Reg
114 ; GCN-O0-NEXT: Fast Register Allocator
115 ; GCN-O0-NEXT: SI lower SGPR spill instructions
116 ; GCN-O0-NEXT: Fast Register Allocator
117 ; GCN-O0-NEXT: SI Lower WWM Copies
118 ; GCN-O0-NEXT: SI Fix VGPR copies
119 ; GCN-O0-NEXT: Remove Redundant DEBUG_VALUE analysis
120 ; GCN-O0-NEXT: Fixup Statepoint Caller Saved
121 ; GCN-O0-NEXT: Lazy Machine Block Frequency Analysis
122 ; GCN-O0-NEXT: Machine Optimization Remark Emitter
123 ; GCN-O0-NEXT: Prologue/Epilogue Insertion & Frame Finalization
124 ; GCN-O0-NEXT: Post-RA pseudo instruction expansion pass
125 ; GCN-O0-NEXT: SI post-RA bundler
126 ; GCN-O0-NEXT: Insert fentry calls
127 ; GCN-O0-NEXT: Insert XRay ops
128 ; GCN-O0-NEXT: SI Memory Legalizer
129 ; GCN-O0-NEXT: MachineDominator Tree Construction
130 ; GCN-O0-NEXT: Machine Natural Loop Construction
131 ; GCN-O0-NEXT: MachinePostDominator Tree Construction
132 ; GCN-O0-NEXT: SI insert wait instructions
133 ; GCN-O0-NEXT: Insert required mode register values
134 ; GCN-O0-NEXT: SI Final Branch Preparation
135 ; GCN-O0-NEXT: Post RA hazard recognizer
136 ; GCN-O0-NEXT: Branch relaxation pass
137 ; GCN-O0-NEXT: Register Usage Information Collector Pass
138 ; GCN-O0-NEXT: Live DEBUG_VALUE analysis
139 ; GCN-O0-NEXT: Machine Sanitizer Binary Metadata
140 ; GCN-O0-NEXT: Lazy Machine Block Frequency Analysis
141 ; GCN-O0-NEXT: Machine Optimization Remark Emitter
142 ; GCN-O0-NEXT: Stack Frame Layout Analysis
143 ; GCN-O0-NEXT: Function register usage analysis
144 ; GCN-O0-NEXT: FunctionPass Manager
145 ; GCN-O0-NEXT: Lazy Machine Block Frequency Analysis
146 ; GCN-O0-NEXT: Machine Optimization Remark Emitter
147 ; GCN-O0-NEXT: AMDGPU Assembly Printer
148 ; GCN-O0-NEXT: Free MachineFunction
150 ; GCN-O1:Target Library Information
151 ; GCN-O1-NEXT:Target Pass Configuration
152 ; GCN-O1-NEXT:Machine Module Information
153 ; GCN-O1-NEXT:Target Transform Information
154 ; GCN-O1-NEXT:Assumption Cache Tracker
155 ; GCN-O1-NEXT:Profile summary info
156 ; GCN-O1-NEXT:AMDGPU Address space based Alias Analysis
157 ; GCN-O1-NEXT:External Alias Analysis
158 ; GCN-O1-NEXT:Type-Based Alias Analysis
159 ; GCN-O1-NEXT:Scoped NoAlias Alias Analysis
160 ; GCN-O1-NEXT:Argument Register Usage Information Storage
161 ; GCN-O1-NEXT:Create Garbage Collector Module Metadata
162 ; GCN-O1-NEXT:Machine Branch Probability Analysis
163 ; GCN-O1-NEXT:Register Usage Information Storage
164 ; GCN-O1-NEXT:Default Regalloc Eviction Advisor
165 ; GCN-O1-NEXT:Default Regalloc Priority Advisor
166 ; GCN-O1-NEXT: ModulePass Manager
167 ; GCN-O1-NEXT: Pre-ISel Intrinsic Lowering
168 ; GCN-O1-NEXT: FunctionPass Manager
169 ; GCN-O1-NEXT: Expand large div/rem
170 ; GCN-O1-NEXT: Expand large fp convert
171 ; GCN-O1-NEXT: AMDGPU Remove Incompatible Functions
172 ; GCN-O1-NEXT: AMDGPU Printf lowering
173 ; GCN-O1-NEXT: Lower ctors and dtors for AMDGPU
174 ; GCN-O1-NEXT: AMDGPU Inline All Functions
175 ; GCN-O1-NEXT: Inliner for always_inline functions
176 ; GCN-O1-NEXT: FunctionPass Manager
177 ; GCN-O1-NEXT: Dominator Tree Construction
178 ; GCN-O1-NEXT: Basic Alias Analysis (stateless AA impl)
179 ; GCN-O1-NEXT: Function Alias Analysis Results
180 ; GCN-O1-NEXT: Lower OpenCL enqueued blocks
181 ; GCN-O1-NEXT: Lower uses of LDS variables from non-kernel functions
182 ; GCN-O1-NEXT: AMDGPU Attributor
183 ; GCN-O1-NEXT: FunctionPass Manager
184 ; GCN-O1-NEXT: Cycle Info Analysis
185 ; GCN-O1-NEXT: FunctionPass Manager
186 ; GCN-O1-NEXT: Infer address spaces
187 ; GCN-O1-NEXT: Dominator Tree Construction
188 ; GCN-O1-NEXT: Cycle Info Analysis
189 ; GCN-O1-NEXT: Uniformity Analysis
190 ; GCN-O1-NEXT: AMDGPU atomic optimizations
191 ; GCN-O1-NEXT: Expand Atomic instructions
192 ; GCN-O1-NEXT: AMDGPU Promote Alloca
193 ; GCN-O1-NEXT: Dominator Tree Construction
194 ; GCN-O1-NEXT: Cycle Info Analysis
195 ; GCN-O1-NEXT: Uniformity Analysis
196 ; GCN-O1-NEXT: AMDGPU IR optimizations
197 ; GCN-O1-NEXT: Basic Alias Analysis (stateless AA impl)
198 ; GCN-O1-NEXT: Natural Loop Information
199 ; GCN-O1-NEXT: Canonicalize natural loops
200 ; GCN-O1-NEXT: Scalar Evolution Analysis
201 ; GCN-O1-NEXT: Loop Pass Manager
202 ; GCN-O1-NEXT: Canonicalize Freeze Instructions in Loops
203 ; GCN-O1-NEXT: Induction Variable Users
204 ; GCN-O1-NEXT: Loop Strength Reduction
205 ; GCN-O1-NEXT: Basic Alias Analysis (stateless AA impl)
206 ; GCN-O1-NEXT: Function Alias Analysis Results
207 ; GCN-O1-NEXT: Merge contiguous icmps into a memcmp
208 ; GCN-O1-NEXT: Natural Loop Information
209 ; GCN-O1-NEXT: Lazy Branch Probability Analysis
210 ; GCN-O1-NEXT: Lazy Block Frequency Analysis
211 ; GCN-O1-NEXT: Expand memcmp() to load/stores
212 ; GCN-O1-NEXT: Lower constant intrinsics
213 ; GCN-O1-NEXT: Remove unreachable blocks from the CFG
214 ; GCN-O1-NEXT: Natural Loop Information
215 ; GCN-O1-NEXT: Post-Dominator Tree Construction
216 ; GCN-O1-NEXT: Branch Probability Analysis
217 ; GCN-O1-NEXT: Block Frequency Analysis
218 ; GCN-O1-NEXT: Constant Hoisting
219 ; GCN-O1-NEXT: Replace intrinsics with calls to vector library
220 ; GCN-O1-NEXT: Partially inline calls to library functions
221 ; GCN-O1-NEXT: Expand vector predication intrinsics
222 ; GCN-O1-NEXT: Scalarize Masked Memory Intrinsics
223 ; GCN-O1-NEXT: Expand reduction intrinsics
224 ; GCN-O1-NEXT: Natural Loop Information
225 ; GCN-O1-NEXT: TLS Variable Hoist
226 ; GCN-O1-NEXT: CallGraph Construction
227 ; GCN-O1-NEXT: Call Graph SCC Pass Manager
228 ; GCN-O1-NEXT: AMDGPU Annotate Kernel Features
229 ; GCN-O1-NEXT: FunctionPass Manager
230 ; GCN-O1-NEXT: AMDGPU Lower Kernel Arguments
231 ; GCN-O1-NEXT: Dominator Tree Construction
232 ; GCN-O1-NEXT: Natural Loop Information
233 ; GCN-O1-NEXT: CodeGen Prepare
234 ; GCN-O1-NEXT: Lazy Value Information Analysis
235 ; GCN-O1-NEXT: Lower SwitchInst's to branches
236 ; GCN-O1-NEXT: Lower invoke and unwind, for unwindless code generators
237 ; GCN-O1-NEXT: Remove unreachable blocks from the CFG
238 ; GCN-O1-NEXT: Dominator Tree Construction
239 ; GCN-O1-NEXT: Basic Alias Analysis (stateless AA impl)
240 ; GCN-O1-NEXT: Function Alias Analysis Results
241 ; GCN-O1-NEXT: Flatten the CFG
242 ; GCN-O1-NEXT: Dominator Tree Construction
243 ; GCN-O1-NEXT: Cycle Info Analysis
244 ; GCN-O1-NEXT: Uniformity Analysis
245 ; GCN-O1-NEXT: AMDGPU IR late optimizations
246 ; GCN-O1-NEXT: Basic Alias Analysis (stateless AA impl)
247 ; GCN-O1-NEXT: Function Alias Analysis Results
248 ; GCN-O1-NEXT: Natural Loop Information
249 ; GCN-O1-NEXT: Code sinking
250 ; GCN-O1-NEXT: Post-Dominator Tree Construction
251 ; GCN-O1-NEXT: Unify divergent function exit nodes
252 ; GCN-O1-NEXT: Dominator Tree Construction
253 ; GCN-O1-NEXT: Natural Loop Information
254 ; GCN-O1-NEXT: Convert irreducible control-flow into natural loops
255 ; GCN-O1-NEXT: Fixup each natural loop to have a single exit block
256 ; GCN-O1-NEXT: Post-Dominator Tree Construction
257 ; GCN-O1-NEXT: Dominance Frontier Construction
258 ; GCN-O1-NEXT: Detect single entry single exit regions
259 ; GCN-O1-NEXT: Region Pass Manager
260 ; GCN-O1-NEXT: Structurize control flow
261 ; GCN-O1-NEXT: Cycle Info Analysis
262 ; GCN-O1-NEXT: Uniformity Analysis
263 ; GCN-O1-NEXT: Basic Alias Analysis (stateless AA impl)
264 ; GCN-O1-NEXT: Function Alias Analysis Results
265 ; GCN-O1-NEXT: Memory SSA
266 ; GCN-O1-NEXT: AMDGPU Annotate Uniform Values
267 ; GCN-O1-NEXT: Natural Loop Information
268 ; GCN-O1-NEXT: SI annotate control flow
269 ; GCN-O1-NEXT: Cycle Info Analysis
270 ; GCN-O1-NEXT: Uniformity Analysis
271 ; GCN-O1-NEXT: AMDGPU Rewrite Undef for PHI
272 ; GCN-O1-NEXT: LCSSA Verifier
273 ; GCN-O1-NEXT: Loop-Closed SSA Form Pass
274 ; GCN-O1-NEXT: DummyCGSCCPass
275 ; GCN-O1-NEXT: FunctionPass Manager
276 ; GCN-O1-NEXT: Prepare callbr
277 ; GCN-O1-NEXT: Safe Stack instrumentation pass
278 ; GCN-O1-NEXT: Insert stack protectors
279 ; GCN-O1-NEXT: Dominator Tree Construction
280 ; GCN-O1-NEXT: Cycle Info Analysis
281 ; GCN-O1-NEXT: Uniformity Analysis
282 ; GCN-O1-NEXT: Basic Alias Analysis (stateless AA impl)
283 ; GCN-O1-NEXT: Function Alias Analysis Results
284 ; GCN-O1-NEXT: Natural Loop Information
285 ; GCN-O1-NEXT: Post-Dominator Tree Construction
286 ; GCN-O1-NEXT: Branch Probability Analysis
287 ; GCN-O1-NEXT: Assignment Tracking Analysis
288 ; GCN-O1-NEXT: Lazy Branch Probability Analysis
289 ; GCN-O1-NEXT: Lazy Block Frequency Analysis
290 ; GCN-O1-NEXT: AMDGPU DAG->DAG Pattern Instruction Selection
291 ; GCN-O1-NEXT: MachineDominator Tree Construction
292 ; GCN-O1-NEXT: SI Fix SGPR copies
293 ; GCN-O1-NEXT: MachinePostDominator Tree Construction
294 ; GCN-O1-NEXT: SI Lower i1 Copies
295 ; GCN-O1-NEXT: Finalize ISel and expand pseudo-instructions
296 ; GCN-O1-NEXT: Lazy Machine Block Frequency Analysis
297 ; GCN-O1-NEXT: Early Tail Duplication
298 ; GCN-O1-NEXT: Optimize machine instruction PHIs
299 ; GCN-O1-NEXT: Slot index numbering
300 ; GCN-O1-NEXT: Merge disjoint stack slots
301 ; GCN-O1-NEXT: Local Stack Slot Allocation
302 ; GCN-O1-NEXT: Remove dead machine instructions
303 ; GCN-O1-NEXT: MachineDominator Tree Construction
304 ; GCN-O1-NEXT: Machine Natural Loop Construction
305 ; GCN-O1-NEXT: Machine Block Frequency Analysis
306 ; GCN-O1-NEXT: Early Machine Loop Invariant Code Motion
307 ; GCN-O1-NEXT: MachineDominator Tree Construction
308 ; GCN-O1-NEXT: Machine Block Frequency Analysis
309 ; GCN-O1-NEXT: Machine Common Subexpression Elimination
310 ; GCN-O1-NEXT: MachinePostDominator Tree Construction
311 ; GCN-O1-NEXT: Machine Cycle Info Analysis
312 ; GCN-O1-NEXT: Machine code sinking
313 ; GCN-O1-NEXT: Peephole Optimizations
314 ; GCN-O1-NEXT: Remove dead machine instructions
315 ; GCN-O1-NEXT: SI Fold Operands
316 ; GCN-O1-NEXT: GCN DPP Combine
317 ; GCN-O1-NEXT: SI Load Store Optimizer
318 ; GCN-O1-NEXT: Remove dead machine instructions
319 ; GCN-O1-NEXT: SI Shrink Instructions
320 ; GCN-O1-NEXT: Register Usage Information Propagation
321 ; GCN-O1-NEXT: Detect Dead Lanes
322 ; GCN-O1-NEXT: Remove dead machine instructions
323 ; GCN-O1-NEXT: Process Implicit Definitions
324 ; GCN-O1-NEXT: Remove unreachable machine basic blocks
325 ; GCN-O1-NEXT: Live Variable Analysis
326 ; GCN-O1-NEXT: MachineDominator Tree Construction
327 ; GCN-O1-NEXT: SI Optimize VGPR LiveRange
328 ; GCN-O1-NEXT: Eliminate PHI nodes for register allocation
329 ; GCN-O1-NEXT: SI Lower control flow pseudo instructions
330 ; GCN-O1-NEXT: Two-Address instruction pass
331 ; GCN-O1-NEXT: Slot index numbering
332 ; GCN-O1-NEXT: Live Interval Analysis
333 ; GCN-O1-NEXT: Machine Natural Loop Construction
334 ; GCN-O1-NEXT: Register Coalescer
335 ; GCN-O1-NEXT: Rename Disconnected Subregister Components
336 ; GCN-O1-NEXT: Machine Instruction Scheduler
337 ; GCN-O1-NEXT: MachinePostDominator Tree Construction
338 ; GCN-O1-NEXT: SI Whole Quad Mode
339 ; GCN-O1-NEXT: Virtual Register Map
340 ; GCN-O1-NEXT: Live Register Matrix
341 ; GCN-O1-NEXT: SI Pre-allocate WWM Registers
342 ; GCN-O1-NEXT: SI optimize exec mask operations pre-RA
343 ; GCN-O1-NEXT: AMDGPU Pre-RA Long Branch Reg
344 ; GCN-O1-NEXT: Machine Natural Loop Construction
345 ; GCN-O1-NEXT: Machine Block Frequency Analysis
346 ; GCN-O1-NEXT: Debug Variable Analysis
347 ; GCN-O1-NEXT: Live Stack Slot Analysis
348 ; GCN-O1-NEXT: Virtual Register Map
349 ; GCN-O1-NEXT: Live Register Matrix
350 ; GCN-O1-NEXT: Bundle Machine CFG Edges
351 ; GCN-O1-NEXT: Spill Code Placement Analysis
352 ; GCN-O1-NEXT: Lazy Machine Block Frequency Analysis
353 ; GCN-O1-NEXT: Machine Optimization Remark Emitter
354 ; GCN-O1-NEXT: Greedy Register Allocator
355 ; GCN-O1-NEXT: Virtual Register Rewriter
356 ; GCN-O1-NEXT: SI lower SGPR spill instructions
357 ; GCN-O1-NEXT: Virtual Register Map
358 ; GCN-O1-NEXT: Live Register Matrix
359 ; GCN-O1-NEXT: Greedy Register Allocator
360 ; GCN-O1-NEXT: SI Lower WWM Copies
361 ; GCN-O1-NEXT: GCN NSA Reassign
362 ; GCN-O1-NEXT: Virtual Register Rewriter
363 ; GCN-O1-NEXT: Stack Slot Coloring
364 ; GCN-O1-NEXT: Machine Copy Propagation Pass
365 ; GCN-O1-NEXT: Machine Loop Invariant Code Motion
366 ; GCN-O1-NEXT: SI Fix VGPR copies
367 ; GCN-O1-NEXT: SI optimize exec mask operations
368 ; GCN-O1-NEXT: Remove Redundant DEBUG_VALUE analysis
369 ; GCN-O1-NEXT: Fixup Statepoint Caller Saved
370 ; GCN-O1-NEXT: PostRA Machine Sink
371 ; GCN-O1-NEXT: Machine Block Frequency Analysis
372 ; GCN-O1-NEXT: MachineDominator Tree Construction
373 ; GCN-O1-NEXT: MachinePostDominator Tree Construction
374 ; GCN-O1-NEXT: Lazy Machine Block Frequency Analysis
375 ; GCN-O1-NEXT: Machine Optimization Remark Emitter
376 ; GCN-O1-NEXT: Shrink Wrapping analysis
377 ; GCN-O1-NEXT: Prologue/Epilogue Insertion & Frame Finalization
378 ; GCN-O1-NEXT: Machine Late Instructions Cleanup Pass
379 ; GCN-O1-NEXT: Control Flow Optimizer
380 ; GCN-O1-NEXT: Lazy Machine Block Frequency Analysis
381 ; GCN-O1-NEXT: Tail Duplication
382 ; GCN-O1-NEXT: Machine Copy Propagation Pass
383 ; GCN-O1-NEXT: Post-RA pseudo instruction expansion pass
384 ; GCN-O1-NEXT: SI Shrink Instructions
385 ; GCN-O1-NEXT: SI post-RA bundler
386 ; GCN-O1-NEXT: MachineDominator Tree Construction
387 ; GCN-O1-NEXT: Machine Natural Loop Construction
388 ; GCN-O1-NEXT: PostRA Machine Instruction Scheduler
389 ; GCN-O1-NEXT: Machine Block Frequency Analysis
390 ; GCN-O1-NEXT: MachinePostDominator Tree Construction
391 ; GCN-O1-NEXT: Branch Probability Basic Block Placement
392 ; GCN-O1-NEXT: Insert fentry calls
393 ; GCN-O1-NEXT: Insert XRay ops
394 ; GCN-O1-NEXT: GCN Create VOPD Instructions
395 ; GCN-O1-NEXT: SI Memory Legalizer
396 ; GCN-O1-NEXT: MachineDominator Tree Construction
397 ; GCN-O1-NEXT: Machine Natural Loop Construction
398 ; GCN-O1-NEXT: MachinePostDominator Tree Construction
399 ; GCN-O1-NEXT: SI insert wait instructions
400 ; GCN-O1-NEXT: Insert required mode register values
401 ; GCN-O1-NEXT: SI Insert Hard Clauses
402 ; GCN-O1-NEXT: SI Final Branch Preparation
403 ; GCN-O1-NEXT: SI peephole optimizations
404 ; GCN-O1-NEXT: Post RA hazard recognizer
405 ; GCN-O1-NEXT: AMDGPU Insert Delay ALU
406 ; GCN-O1-NEXT: Branch relaxation pass
407 ; GCN-O1-NEXT: Register Usage Information Collector Pass
408 ; GCN-O1-NEXT: Live DEBUG_VALUE analysis
409 ; GCN-O1-NEXT: Machine Sanitizer Binary Metadata
410 ; GCN-O1-NEXT: Lazy Machine Block Frequency Analysis
411 ; GCN-O1-NEXT: Machine Optimization Remark Emitter
412 ; GCN-O1-NEXT: Stack Frame Layout Analysis
413 ; GCN-O1-NEXT: Function register usage analysis
414 ; GCN-O1-NEXT: FunctionPass Manager
415 ; GCN-O1-NEXT: Lazy Machine Block Frequency Analysis
416 ; GCN-O1-NEXT: Machine Optimization Remark Emitter
417 ; GCN-O1-NEXT: AMDGPU Assembly Printer
418 ; GCN-O1-NEXT: Free MachineFunction
420 ; GCN-O1-OPTS:Target Library Information
421 ; GCN-O1-OPTS-NEXT:Target Pass Configuration
422 ; GCN-O1-OPTS-NEXT:Machine Module Information
423 ; GCN-O1-OPTS-NEXT:Target Transform Information
424 ; GCN-O1-OPTS-NEXT:Assumption Cache Tracker
425 ; GCN-O1-OPTS-NEXT:Profile summary info
426 ; GCN-O1-OPTS-NEXT:AMDGPU Address space based Alias Analysis
427 ; GCN-O1-OPTS-NEXT:External Alias Analysis
428 ; GCN-O1-OPTS-NEXT:Type-Based Alias Analysis
429 ; GCN-O1-OPTS-NEXT:Scoped NoAlias Alias Analysis
430 ; GCN-O1-OPTS-NEXT:Argument Register Usage Information Storage
431 ; GCN-O1-OPTS-NEXT:Create Garbage Collector Module Metadata
432 ; GCN-O1-OPTS-NEXT:Machine Branch Probability Analysis
433 ; GCN-O1-OPTS-NEXT:Register Usage Information Storage
434 ; GCN-O1-OPTS-NEXT:Default Regalloc Eviction Advisor
435 ; GCN-O1-OPTS-NEXT:Default Regalloc Priority Advisor
436 ; GCN-O1-OPTS-NEXT: ModulePass Manager
437 ; GCN-O1-OPTS-NEXT: Pre-ISel Intrinsic Lowering
438 ; GCN-O1-OPTS-NEXT: FunctionPass Manager
439 ; GCN-O1-OPTS-NEXT: Expand large div/rem
440 ; GCN-O1-OPTS-NEXT: Expand large fp convert
441 ; GCN-O1-OPTS-NEXT: AMDGPU Remove Incompatible Functions
442 ; GCN-O1-OPTS-NEXT: AMDGPU Printf lowering
443 ; GCN-O1-OPTS-NEXT: Lower ctors and dtors for AMDGPU
444 ; GCN-O1-OPTS-NEXT: AMDGPU Inline All Functions
445 ; GCN-O1-OPTS-NEXT: Inliner for always_inline functions
446 ; GCN-O1-OPTS-NEXT: FunctionPass Manager
447 ; GCN-O1-OPTS-NEXT: Dominator Tree Construction
448 ; GCN-O1-OPTS-NEXT: Basic Alias Analysis (stateless AA impl)
449 ; GCN-O1-OPTS-NEXT: Function Alias Analysis Results
450 ; GCN-O1-OPTS-NEXT: Lower OpenCL enqueued blocks
451 ; GCN-O1-OPTS-NEXT: Lower uses of LDS variables from non-kernel functions
452 ; GCN-O1-OPTS-NEXT: AMDGPU Attributor
453 ; GCN-O1-OPTS-NEXT: FunctionPass Manager
454 ; GCN-O1-OPTS-NEXT: Cycle Info Analysis
455 ; GCN-O1-OPTS-NEXT: FunctionPass Manager
456 ; GCN-O1-OPTS-NEXT: Infer address spaces
457 ; GCN-O1-OPTS-NEXT: Dominator Tree Construction
458 ; GCN-O1-OPTS-NEXT: Cycle Info Analysis
459 ; GCN-O1-OPTS-NEXT: Uniformity Analysis
460 ; GCN-O1-OPTS-NEXT: AMDGPU atomic optimizations
461 ; GCN-O1-OPTS-NEXT: Expand Atomic instructions
462 ; GCN-O1-OPTS-NEXT: AMDGPU Promote Alloca
463 ; GCN-O1-OPTS-NEXT: Dominator Tree Construction
464 ; GCN-O1-OPTS-NEXT: Natural Loop Information
465 ; GCN-O1-OPTS-NEXT: Split GEPs to a variadic base and a constant offset for better CSE
466 ; GCN-O1-OPTS-NEXT: Scalar Evolution Analysis
467 ; GCN-O1-OPTS-NEXT: Straight line strength reduction
468 ; GCN-O1-OPTS-NEXT: Early CSE
469 ; GCN-O1-OPTS-NEXT: Scalar Evolution Analysis
470 ; GCN-O1-OPTS-NEXT: Nary reassociation
471 ; GCN-O1-OPTS-NEXT: Early CSE
472 ; GCN-O1-OPTS-NEXT: Cycle Info Analysis
473 ; GCN-O1-OPTS-NEXT: Uniformity Analysis
474 ; GCN-O1-OPTS-NEXT: AMDGPU IR optimizations
475 ; GCN-O1-OPTS-NEXT: Basic Alias Analysis (stateless AA impl)
476 ; GCN-O1-OPTS-NEXT: Canonicalize natural loops
477 ; GCN-O1-OPTS-NEXT: Scalar Evolution Analysis
478 ; GCN-O1-OPTS-NEXT: Loop Pass Manager
479 ; GCN-O1-OPTS-NEXT: Canonicalize Freeze Instructions in Loops
480 ; GCN-O1-OPTS-NEXT: Induction Variable Users
481 ; GCN-O1-OPTS-NEXT: Loop Strength Reduction
482 ; GCN-O1-OPTS-NEXT: Basic Alias Analysis (stateless AA impl)
483 ; GCN-O1-OPTS-NEXT: Function Alias Analysis Results
484 ; GCN-O1-OPTS-NEXT: Merge contiguous icmps into a memcmp
485 ; GCN-O1-OPTS-NEXT: Natural Loop Information
486 ; GCN-O1-OPTS-NEXT: Lazy Branch Probability Analysis
487 ; GCN-O1-OPTS-NEXT: Lazy Block Frequency Analysis
488 ; GCN-O1-OPTS-NEXT: Expand memcmp() to load/stores
489 ; GCN-O1-OPTS-NEXT: Lower constant intrinsics
490 ; GCN-O1-OPTS-NEXT: Remove unreachable blocks from the CFG
491 ; GCN-O1-OPTS-NEXT: Natural Loop Information
492 ; GCN-O1-OPTS-NEXT: Post-Dominator Tree Construction
493 ; GCN-O1-OPTS-NEXT: Branch Probability Analysis
494 ; GCN-O1-OPTS-NEXT: Block Frequency Analysis
495 ; GCN-O1-OPTS-NEXT: Constant Hoisting
496 ; GCN-O1-OPTS-NEXT: Replace intrinsics with calls to vector library
497 ; GCN-O1-OPTS-NEXT: Partially inline calls to library functions
498 ; GCN-O1-OPTS-NEXT: Expand vector predication intrinsics
499 ; GCN-O1-OPTS-NEXT: Scalarize Masked Memory Intrinsics
500 ; GCN-O1-OPTS-NEXT: Expand reduction intrinsics
501 ; GCN-O1-OPTS-NEXT: Natural Loop Information
502 ; GCN-O1-OPTS-NEXT: TLS Variable Hoist
503 ; GCN-O1-OPTS-NEXT: Early CSE
504 ; GCN-O1-OPTS-NEXT: CallGraph Construction
505 ; GCN-O1-OPTS-NEXT: Call Graph SCC Pass Manager
506 ; GCN-O1-OPTS-NEXT: AMDGPU Annotate Kernel Features
507 ; GCN-O1-OPTS-NEXT: FunctionPass Manager
508 ; GCN-O1-OPTS-NEXT: AMDGPU Lower Kernel Arguments
509 ; GCN-O1-OPTS-NEXT: Dominator Tree Construction
510 ; GCN-O1-OPTS-NEXT: Natural Loop Information
511 ; GCN-O1-OPTS-NEXT: CodeGen Prepare
512 ; GCN-O1-OPTS-NEXT: Dominator Tree Construction
513 ; GCN-O1-OPTS-NEXT: Basic Alias Analysis (stateless AA impl)
514 ; GCN-O1-OPTS-NEXT: Function Alias Analysis Results
515 ; GCN-O1-OPTS-NEXT: Natural Loop Information
516 ; GCN-O1-OPTS-NEXT: Scalar Evolution Analysis
517 ; GCN-O1-OPTS-NEXT: GPU Load and Store Vectorizer
518 ; GCN-O1-OPTS-NEXT: Lazy Value Information Analysis
519 ; GCN-O1-OPTS-NEXT: Lower SwitchInst's to branches
520 ; GCN-O1-OPTS-NEXT: Lower invoke and unwind, for unwindless code generators
521 ; GCN-O1-OPTS-NEXT: Remove unreachable blocks from the CFG
522 ; GCN-O1-OPTS-NEXT: Dominator Tree Construction
523 ; GCN-O1-OPTS-NEXT: Basic Alias Analysis (stateless AA impl)
524 ; GCN-O1-OPTS-NEXT: Function Alias Analysis Results
525 ; GCN-O1-OPTS-NEXT: Flatten the CFG
526 ; GCN-O1-OPTS-NEXT: Dominator Tree Construction
527 ; GCN-O1-OPTS-NEXT: Cycle Info Analysis
528 ; GCN-O1-OPTS-NEXT: Uniformity Analysis
529 ; GCN-O1-OPTS-NEXT: AMDGPU IR late optimizations
530 ; GCN-O1-OPTS-NEXT: Basic Alias Analysis (stateless AA impl)
531 ; GCN-O1-OPTS-NEXT: Function Alias Analysis Results
532 ; GCN-O1-OPTS-NEXT: Natural Loop Information
533 ; GCN-O1-OPTS-NEXT: Code sinking
534 ; GCN-O1-OPTS-NEXT: Post-Dominator Tree Construction
535 ; GCN-O1-OPTS-NEXT: Unify divergent function exit nodes
536 ; GCN-O1-OPTS-NEXT: Dominator Tree Construction
537 ; GCN-O1-OPTS-NEXT: Natural Loop Information
538 ; GCN-O1-OPTS-NEXT: Convert irreducible control-flow into natural loops
539 ; GCN-O1-OPTS-NEXT: Fixup each natural loop to have a single exit block
540 ; GCN-O1-OPTS-NEXT: Post-Dominator Tree Construction
541 ; GCN-O1-OPTS-NEXT: Dominance Frontier Construction
542 ; GCN-O1-OPTS-NEXT: Detect single entry single exit regions
543 ; GCN-O1-OPTS-NEXT: Region Pass Manager
544 ; GCN-O1-OPTS-NEXT: Structurize control flow
545 ; GCN-O1-OPTS-NEXT: Cycle Info Analysis
546 ; GCN-O1-OPTS-NEXT: Uniformity Analysis
547 ; GCN-O1-OPTS-NEXT: Basic Alias Analysis (stateless AA impl)
548 ; GCN-O1-OPTS-NEXT: Function Alias Analysis Results
549 ; GCN-O1-OPTS-NEXT: Memory SSA
550 ; GCN-O1-OPTS-NEXT: AMDGPU Annotate Uniform Values
551 ; GCN-O1-OPTS-NEXT: Natural Loop Information
552 ; GCN-O1-OPTS-NEXT: SI annotate control flow
553 ; GCN-O1-OPTS-NEXT: Cycle Info Analysis
554 ; GCN-O1-OPTS-NEXT: Uniformity Analysis
555 ; GCN-O1-OPTS-NEXT: AMDGPU Rewrite Undef for PHI
556 ; GCN-O1-OPTS-NEXT: LCSSA Verifier
557 ; GCN-O1-OPTS-NEXT: Loop-Closed SSA Form Pass
558 ; GCN-O1-OPTS-NEXT: DummyCGSCCPass
559 ; GCN-O1-OPTS-NEXT: FunctionPass Manager
560 ; GCN-O1-OPTS-NEXT: Prepare callbr
561 ; GCN-O1-OPTS-NEXT: Safe Stack instrumentation pass
562 ; GCN-O1-OPTS-NEXT: Insert stack protectors
563 ; GCN-O1-OPTS-NEXT: Dominator Tree Construction
564 ; GCN-O1-OPTS-NEXT: Cycle Info Analysis
565 ; GCN-O1-OPTS-NEXT: Uniformity Analysis
566 ; GCN-O1-OPTS-NEXT: Basic Alias Analysis (stateless AA impl)
567 ; GCN-O1-OPTS-NEXT: Function Alias Analysis Results
568 ; GCN-O1-OPTS-NEXT: Natural Loop Information
569 ; GCN-O1-OPTS-NEXT: Post-Dominator Tree Construction
570 ; GCN-O1-OPTS-NEXT: Branch Probability Analysis
571 ; GCN-O1-OPTS-NEXT: Assignment Tracking Analysis
572 ; GCN-O1-OPTS-NEXT: Lazy Branch Probability Analysis
573 ; GCN-O1-OPTS-NEXT: Lazy Block Frequency Analysis
574 ; GCN-O1-OPTS-NEXT: AMDGPU DAG->DAG Pattern Instruction Selection
575 ; GCN-O1-OPTS-NEXT: MachineDominator Tree Construction
576 ; GCN-O1-OPTS-NEXT: SI Fix SGPR copies
577 ; GCN-O1-OPTS-NEXT: MachinePostDominator Tree Construction
578 ; GCN-O1-OPTS-NEXT: SI Lower i1 Copies
579 ; GCN-O1-OPTS-NEXT: Finalize ISel and expand pseudo-instructions
580 ; GCN-O1-OPTS-NEXT: Lazy Machine Block Frequency Analysis
581 ; GCN-O1-OPTS-NEXT: Early Tail Duplication
582 ; GCN-O1-OPTS-NEXT: Optimize machine instruction PHIs
583 ; GCN-O1-OPTS-NEXT: Slot index numbering
584 ; GCN-O1-OPTS-NEXT: Merge disjoint stack slots
585 ; GCN-O1-OPTS-NEXT: Local Stack Slot Allocation
586 ; GCN-O1-OPTS-NEXT: Remove dead machine instructions
587 ; GCN-O1-OPTS-NEXT: MachineDominator Tree Construction
588 ; GCN-O1-OPTS-NEXT: Machine Natural Loop Construction
589 ; GCN-O1-OPTS-NEXT: Machine Block Frequency Analysis
590 ; GCN-O1-OPTS-NEXT: Early Machine Loop Invariant Code Motion
591 ; GCN-O1-OPTS-NEXT: MachineDominator Tree Construction
592 ; GCN-O1-OPTS-NEXT: Machine Block Frequency Analysis
593 ; GCN-O1-OPTS-NEXT: Machine Common Subexpression Elimination
594 ; GCN-O1-OPTS-NEXT: MachinePostDominator Tree Construction
595 ; GCN-O1-OPTS-NEXT: Machine Cycle Info Analysis
596 ; GCN-O1-OPTS-NEXT: Machine code sinking
597 ; GCN-O1-OPTS-NEXT: Peephole Optimizations
598 ; GCN-O1-OPTS-NEXT: Remove dead machine instructions
599 ; GCN-O1-OPTS-NEXT: SI Fold Operands
600 ; GCN-O1-OPTS-NEXT: GCN DPP Combine
601 ; GCN-O1-OPTS-NEXT: SI Load Store Optimizer
602 ; GCN-O1-OPTS-NEXT: SI Peephole SDWA
603 ; GCN-O1-OPTS-NEXT: Machine Block Frequency Analysis
604 ; GCN-O1-OPTS-NEXT: MachineDominator Tree Construction
605 ; GCN-O1-OPTS-NEXT: Early Machine Loop Invariant Code Motion
606 ; GCN-O1-OPTS-NEXT: MachineDominator Tree Construction
607 ; GCN-O1-OPTS-NEXT: Machine Block Frequency Analysis
608 ; GCN-O1-OPTS-NEXT: Machine Common Subexpression Elimination
609 ; GCN-O1-OPTS-NEXT: SI Fold Operands
610 ; GCN-O1-OPTS-NEXT: Remove dead machine instructions
611 ; GCN-O1-OPTS-NEXT: SI Shrink Instructions
612 ; GCN-O1-OPTS-NEXT: Register Usage Information Propagation
613 ; GCN-O1-OPTS-NEXT: Detect Dead Lanes
614 ; GCN-O1-OPTS-NEXT: Remove dead machine instructions
615 ; GCN-O1-OPTS-NEXT: Process Implicit Definitions
616 ; GCN-O1-OPTS-NEXT: Remove unreachable machine basic blocks
617 ; GCN-O1-OPTS-NEXT: Live Variable Analysis
618 ; GCN-O1-OPTS-NEXT: SI Optimize VGPR LiveRange
619 ; GCN-O1-OPTS-NEXT: Eliminate PHI nodes for register allocation
620 ; GCN-O1-OPTS-NEXT: SI Lower control flow pseudo instructions
621 ; GCN-O1-OPTS-NEXT: Two-Address instruction pass
622 ; GCN-O1-OPTS-NEXT: Slot index numbering
623 ; GCN-O1-OPTS-NEXT: Live Interval Analysis
624 ; GCN-O1-OPTS-NEXT: Machine Natural Loop Construction
625 ; GCN-O1-OPTS-NEXT: Register Coalescer
626 ; GCN-O1-OPTS-NEXT: Rename Disconnected Subregister Components
627 ; GCN-O1-OPTS-NEXT: AMDGPU Pre-RA optimizations
628 ; GCN-O1-OPTS-NEXT: Machine Instruction Scheduler
629 ; GCN-O1-OPTS-NEXT: MachinePostDominator Tree Construction
630 ; GCN-O1-OPTS-NEXT: SI Whole Quad Mode
631 ; GCN-O1-OPTS-NEXT: Virtual Register Map
632 ; GCN-O1-OPTS-NEXT: Live Register Matrix
633 ; GCN-O1-OPTS-NEXT: SI Pre-allocate WWM Registers
634 ; GCN-O1-OPTS-NEXT: SI optimize exec mask operations pre-RA
635 ; GCN-O1-OPTS-NEXT: AMDGPU Pre-RA Long Branch Reg
636 ; GCN-O1-OPTS-NEXT: Machine Natural Loop Construction
637 ; GCN-O1-OPTS-NEXT: Machine Block Frequency Analysis
638 ; GCN-O1-OPTS-NEXT: Debug Variable Analysis
639 ; GCN-O1-OPTS-NEXT: Live Stack Slot Analysis
640 ; GCN-O1-OPTS-NEXT: Virtual Register Map
641 ; GCN-O1-OPTS-NEXT: Live Register Matrix
642 ; GCN-O1-OPTS-NEXT: Bundle Machine CFG Edges
643 ; GCN-O1-OPTS-NEXT: Spill Code Placement Analysis
644 ; GCN-O1-OPTS-NEXT: Lazy Machine Block Frequency Analysis
645 ; GCN-O1-OPTS-NEXT: Machine Optimization Remark Emitter
646 ; GCN-O1-OPTS-NEXT: Greedy Register Allocator
647 ; GCN-O1-OPTS-NEXT: Virtual Register Rewriter
648 ; GCN-O1-OPTS-NEXT: SI lower SGPR spill instructions
649 ; GCN-O1-OPTS-NEXT: Virtual Register Map
650 ; GCN-O1-OPTS-NEXT: Live Register Matrix
651 ; GCN-O1-OPTS-NEXT: Greedy Register Allocator
652 ; GCN-O1-OPTS-NEXT: SI Lower WWM Copies
653 ; GCN-O1-OPTS-NEXT: GCN NSA Reassign
654 ; GCN-O1-OPTS-NEXT: Virtual Register Rewriter
655 ; GCN-O1-OPTS-NEXT: Stack Slot Coloring
656 ; GCN-O1-OPTS-NEXT: Machine Copy Propagation Pass
657 ; GCN-O1-OPTS-NEXT: Machine Loop Invariant Code Motion
658 ; GCN-O1-OPTS-NEXT: SI Fix VGPR copies
659 ; GCN-O1-OPTS-NEXT: SI optimize exec mask operations
660 ; GCN-O1-OPTS-NEXT: Remove Redundant DEBUG_VALUE analysis
661 ; GCN-O1-OPTS-NEXT: Fixup Statepoint Caller Saved
662 ; GCN-O1-OPTS-NEXT: PostRA Machine Sink
663 ; GCN-O1-OPTS-NEXT: Machine Block Frequency Analysis
664 ; GCN-O1-OPTS-NEXT: MachineDominator Tree Construction
665 ; GCN-O1-OPTS-NEXT: MachinePostDominator Tree Construction
666 ; GCN-O1-OPTS-NEXT: Lazy Machine Block Frequency Analysis
667 ; GCN-O1-OPTS-NEXT: Machine Optimization Remark Emitter
668 ; GCN-O1-OPTS-NEXT: Shrink Wrapping analysis
669 ; GCN-O1-OPTS-NEXT: Prologue/Epilogue Insertion & Frame Finalization
670 ; GCN-O1-OPTS-NEXT: Machine Late Instructions Cleanup Pass
671 ; GCN-O1-OPTS-NEXT: Control Flow Optimizer
672 ; GCN-O1-OPTS-NEXT: Lazy Machine Block Frequency Analysis
673 ; GCN-O1-OPTS-NEXT: Tail Duplication
674 ; GCN-O1-OPTS-NEXT: Machine Copy Propagation Pass
675 ; GCN-O1-OPTS-NEXT: Post-RA pseudo instruction expansion pass
676 ; GCN-O1-OPTS-NEXT: SI Shrink Instructions
677 ; GCN-O1-OPTS-NEXT: SI post-RA bundler
678 ; GCN-O1-OPTS-NEXT: MachineDominator Tree Construction
679 ; GCN-O1-OPTS-NEXT: Machine Natural Loop Construction
680 ; GCN-O1-OPTS-NEXT: PostRA Machine Instruction Scheduler
681 ; GCN-O1-OPTS-NEXT: Machine Block Frequency Analysis
682 ; GCN-O1-OPTS-NEXT: MachinePostDominator Tree Construction
683 ; GCN-O1-OPTS-NEXT: Branch Probability Basic Block Placement
684 ; GCN-O1-OPTS-NEXT: Insert fentry calls
685 ; GCN-O1-OPTS-NEXT: Insert XRay ops
686 ; GCN-O1-OPTS-NEXT: GCN Create VOPD Instructions
687 ; GCN-O1-OPTS-NEXT: SI Memory Legalizer
688 ; GCN-O1-OPTS-NEXT: MachineDominator Tree Construction
689 ; GCN-O1-OPTS-NEXT: Machine Natural Loop Construction
690 ; GCN-O1-OPTS-NEXT: MachinePostDominator Tree Construction
691 ; GCN-O1-OPTS-NEXT: SI insert wait instructions
692 ; GCN-O1-OPTS-NEXT: Insert required mode register values
693 ; GCN-O1-OPTS-NEXT: SI Insert Hard Clauses
694 ; GCN-O1-OPTS-NEXT: SI Final Branch Preparation
695 ; GCN-O1-OPTS-NEXT: SI peephole optimizations
696 ; GCN-O1-OPTS-NEXT: Post RA hazard recognizer
697 ; GCN-O1-OPTS-NEXT: AMDGPU Insert Delay ALU
698 ; GCN-O1-OPTS-NEXT: Branch relaxation pass
699 ; GCN-O1-OPTS-NEXT: Register Usage Information Collector Pass
700 ; GCN-O1-OPTS-NEXT: Live DEBUG_VALUE analysis
701 ; GCN-O1-OPTS-NEXT: Machine Sanitizer Binary Metadata
702 ; GCN-O1-OPTS-NEXT: Lazy Machine Block Frequency Analysis
703 ; GCN-O1-OPTS-NEXT: Machine Optimization Remark Emitter
704 ; GCN-O1-OPTS-NEXT: Stack Frame Layout Analysis
705 ; GCN-O1-OPTS-NEXT: Function register usage analysis
706 ; GCN-O1-OPTS-NEXT: FunctionPass Manager
707 ; GCN-O1-OPTS-NEXT: Lazy Machine Block Frequency Analysis
708 ; GCN-O1-OPTS-NEXT: Machine Optimization Remark Emitter
709 ; GCN-O1-OPTS-NEXT: AMDGPU Assembly Printer
710 ; GCN-O1-OPTS-NEXT: Free MachineFunction
712 ; GCN-O2:Target Library Information
713 ; GCN-O2-NEXT:Target Pass Configuration
714 ; GCN-O2-NEXT:Machine Module Information
715 ; GCN-O2-NEXT:Target Transform Information
716 ; GCN-O2-NEXT:Assumption Cache Tracker
717 ; GCN-O2-NEXT:Profile summary info
718 ; GCN-O2-NEXT:AMDGPU Address space based Alias Analysis
719 ; GCN-O2-NEXT:External Alias Analysis
720 ; GCN-O2-NEXT:Type-Based Alias Analysis
721 ; GCN-O2-NEXT:Scoped NoAlias Alias Analysis
722 ; GCN-O2-NEXT:Argument Register Usage Information Storage
723 ; GCN-O2-NEXT:Create Garbage Collector Module Metadata
724 ; GCN-O2-NEXT:Machine Branch Probability Analysis
725 ; GCN-O2-NEXT:Register Usage Information Storage
726 ; GCN-O2-NEXT:Default Regalloc Eviction Advisor
727 ; GCN-O2-NEXT:Default Regalloc Priority Advisor
728 ; GCN-O2-NEXT: ModulePass Manager
729 ; GCN-O2-NEXT: Pre-ISel Intrinsic Lowering
730 ; GCN-O2-NEXT: FunctionPass Manager
731 ; GCN-O2-NEXT: Expand large div/rem
732 ; GCN-O2-NEXT: Expand large fp convert
733 ; GCN-O2-NEXT: AMDGPU Remove Incompatible Functions
734 ; GCN-O2-NEXT: AMDGPU Printf lowering
735 ; GCN-O2-NEXT: Lower ctors and dtors for AMDGPU
736 ; GCN-O2-NEXT: FunctionPass Manager
737 ; GCN-O2-NEXT: AMDGPU Image Intrinsic Optimizer
738 ; GCN-O2-NEXT: AMDGPU Inline All Functions
739 ; GCN-O2-NEXT: Inliner for always_inline functions
740 ; GCN-O2-NEXT: FunctionPass Manager
741 ; GCN-O2-NEXT: Dominator Tree Construction
742 ; GCN-O2-NEXT: Basic Alias Analysis (stateless AA impl)
743 ; GCN-O2-NEXT: Function Alias Analysis Results
744 ; GCN-O2-NEXT: Lower OpenCL enqueued blocks
745 ; GCN-O2-NEXT: Lower uses of LDS variables from non-kernel functions
746 ; GCN-O2-NEXT: AMDGPU Attributor
747 ; GCN-O2-NEXT: FunctionPass Manager
748 ; GCN-O2-NEXT: Cycle Info Analysis
749 ; GCN-O2-NEXT: FunctionPass Manager
750 ; GCN-O2-NEXT: Infer address spaces
751 ; GCN-O2-NEXT: Dominator Tree Construction
752 ; GCN-O2-NEXT: Cycle Info Analysis
753 ; GCN-O2-NEXT: Uniformity Analysis
754 ; GCN-O2-NEXT: AMDGPU atomic optimizations
755 ; GCN-O2-NEXT: Expand Atomic instructions
756 ; GCN-O2-NEXT: AMDGPU Promote Alloca
757 ; GCN-O2-NEXT: Dominator Tree Construction
758 ; GCN-O2-NEXT: Natural Loop Information
759 ; GCN-O2-NEXT: Split GEPs to a variadic base and a constant offset for better CSE
760 ; GCN-O2-NEXT: Scalar Evolution Analysis
761 ; GCN-O2-NEXT: Straight line strength reduction
762 ; GCN-O2-NEXT: Early CSE
763 ; GCN-O2-NEXT: Scalar Evolution Analysis
764 ; GCN-O2-NEXT: Nary reassociation
765 ; GCN-O2-NEXT: Early CSE
766 ; GCN-O2-NEXT: Cycle Info Analysis
767 ; GCN-O2-NEXT: Uniformity Analysis
768 ; GCN-O2-NEXT: AMDGPU IR optimizations
769 ; GCN-O2-NEXT: Basic Alias Analysis (stateless AA impl)
770 ; GCN-O2-NEXT: Function Alias Analysis Results
771 ; GCN-O2-NEXT: Memory SSA
772 ; GCN-O2-NEXT: Canonicalize natural loops
773 ; GCN-O2-NEXT: LCSSA Verifier
774 ; GCN-O2-NEXT: Loop-Closed SSA Form Pass
775 ; GCN-O2-NEXT: Scalar Evolution Analysis
776 ; GCN-O2-NEXT: Lazy Branch Probability Analysis
777 ; GCN-O2-NEXT: Lazy Block Frequency Analysis
778 ; GCN-O2-NEXT: Loop Pass Manager
779 ; GCN-O2-NEXT: Loop Invariant Code Motion
780 ; GCN-O2-NEXT: Loop Pass Manager
781 ; GCN-O2-NEXT: Canonicalize Freeze Instructions in Loops
782 ; GCN-O2-NEXT: Induction Variable Users
783 ; GCN-O2-NEXT: Loop Strength Reduction
784 ; GCN-O2-NEXT: Basic Alias Analysis (stateless AA impl)
785 ; GCN-O2-NEXT: Function Alias Analysis Results
786 ; GCN-O2-NEXT: Merge contiguous icmps into a memcmp
787 ; GCN-O2-NEXT: Natural Loop Information
788 ; GCN-O2-NEXT: Lazy Branch Probability Analysis
789 ; GCN-O2-NEXT: Lazy Block Frequency Analysis
790 ; GCN-O2-NEXT: Expand memcmp() to load/stores
791 ; GCN-O2-NEXT: Lower constant intrinsics
792 ; GCN-O2-NEXT: Remove unreachable blocks from the CFG
793 ; GCN-O2-NEXT: Natural Loop Information
794 ; GCN-O2-NEXT: Post-Dominator Tree Construction
795 ; GCN-O2-NEXT: Branch Probability Analysis
796 ; GCN-O2-NEXT: Block Frequency Analysis
797 ; GCN-O2-NEXT: Constant Hoisting
798 ; GCN-O2-NEXT: Replace intrinsics with calls to vector library
799 ; GCN-O2-NEXT: Partially inline calls to library functions
800 ; GCN-O2-NEXT: Expand vector predication intrinsics
801 ; GCN-O2-NEXT: Scalarize Masked Memory Intrinsics
802 ; GCN-O2-NEXT: Expand reduction intrinsics
803 ; GCN-O2-NEXT: Natural Loop Information
804 ; GCN-O2-NEXT: TLS Variable Hoist
805 ; GCN-O2-NEXT: Early CSE
806 ; GCN-O2-NEXT: CallGraph Construction
807 ; GCN-O2-NEXT: Call Graph SCC Pass Manager
808 ; GCN-O2-NEXT: AMDGPU Annotate Kernel Features
809 ; GCN-O2-NEXT: FunctionPass Manager
810 ; GCN-O2-NEXT: AMDGPU Lower Kernel Arguments
811 ; GCN-O2-NEXT: Dominator Tree Construction
812 ; GCN-O2-NEXT: Natural Loop Information
813 ; GCN-O2-NEXT: CodeGen Prepare
814 ; GCN-O2-NEXT: Dominator Tree Construction
815 ; GCN-O2-NEXT: Basic Alias Analysis (stateless AA impl)
816 ; GCN-O2-NEXT: Function Alias Analysis Results
817 ; GCN-O2-NEXT: Natural Loop Information
818 ; GCN-O2-NEXT: Scalar Evolution Analysis
819 ; GCN-O2-NEXT: GPU Load and Store Vectorizer
820 ; GCN-O2-NEXT: Lazy Value Information Analysis
821 ; GCN-O2-NEXT: Lower SwitchInst's to branches
822 ; GCN-O2-NEXT: Lower invoke and unwind, for unwindless code generators
823 ; GCN-O2-NEXT: Remove unreachable blocks from the CFG
824 ; GCN-O2-NEXT: Dominator Tree Construction
825 ; GCN-O2-NEXT: Basic Alias Analysis (stateless AA impl)
826 ; GCN-O2-NEXT: Function Alias Analysis Results
827 ; GCN-O2-NEXT: Flatten the CFG
828 ; GCN-O2-NEXT: Dominator Tree Construction
829 ; GCN-O2-NEXT: Cycle Info Analysis
830 ; GCN-O2-NEXT: Uniformity Analysis
831 ; GCN-O2-NEXT: AMDGPU IR late optimizations
832 ; GCN-O2-NEXT: Basic Alias Analysis (stateless AA impl)
833 ; GCN-O2-NEXT: Function Alias Analysis Results
834 ; GCN-O2-NEXT: Natural Loop Information
835 ; GCN-O2-NEXT: Code sinking
836 ; GCN-O2-NEXT: Post-Dominator Tree Construction
837 ; GCN-O2-NEXT: Unify divergent function exit nodes
838 ; GCN-O2-NEXT: Dominator Tree Construction
839 ; GCN-O2-NEXT: Natural Loop Information
840 ; GCN-O2-NEXT: Convert irreducible control-flow into natural loops
841 ; GCN-O2-NEXT: Fixup each natural loop to have a single exit block
842 ; GCN-O2-NEXT: Post-Dominator Tree Construction
843 ; GCN-O2-NEXT: Dominance Frontier Construction
844 ; GCN-O2-NEXT: Detect single entry single exit regions
845 ; GCN-O2-NEXT: Region Pass Manager
846 ; GCN-O2-NEXT: Structurize control flow
847 ; GCN-O2-NEXT: Cycle Info Analysis
848 ; GCN-O2-NEXT: Uniformity Analysis
849 ; GCN-O2-NEXT: Basic Alias Analysis (stateless AA impl)
850 ; GCN-O2-NEXT: Function Alias Analysis Results
851 ; GCN-O2-NEXT: Memory SSA
852 ; GCN-O2-NEXT: AMDGPU Annotate Uniform Values
853 ; GCN-O2-NEXT: Natural Loop Information
854 ; GCN-O2-NEXT: SI annotate control flow
855 ; GCN-O2-NEXT: Cycle Info Analysis
856 ; GCN-O2-NEXT: Uniformity Analysis
857 ; GCN-O2-NEXT: AMDGPU Rewrite Undef for PHI
858 ; GCN-O2-NEXT: LCSSA Verifier
859 ; GCN-O2-NEXT: Loop-Closed SSA Form Pass
860 ; GCN-O2-NEXT: Analysis if a function is memory bound
861 ; GCN-O2-NEXT: DummyCGSCCPass
862 ; GCN-O2-NEXT: FunctionPass Manager
863 ; GCN-O2-NEXT: Prepare callbr
864 ; GCN-O2-NEXT: Safe Stack instrumentation pass
865 ; GCN-O2-NEXT: Insert stack protectors
866 ; GCN-O2-NEXT: Dominator Tree Construction
867 ; GCN-O2-NEXT: Cycle Info Analysis
868 ; GCN-O2-NEXT: Uniformity Analysis
869 ; GCN-O2-NEXT: Basic Alias Analysis (stateless AA impl)
870 ; GCN-O2-NEXT: Function Alias Analysis Results
871 ; GCN-O2-NEXT: Natural Loop Information
872 ; GCN-O2-NEXT: Post-Dominator Tree Construction
873 ; GCN-O2-NEXT: Branch Probability Analysis
874 ; GCN-O2-NEXT: Assignment Tracking Analysis
875 ; GCN-O2-NEXT: Lazy Branch Probability Analysis
876 ; GCN-O2-NEXT: Lazy Block Frequency Analysis
877 ; GCN-O2-NEXT: AMDGPU DAG->DAG Pattern Instruction Selection
878 ; GCN-O2-NEXT: MachineDominator Tree Construction
879 ; GCN-O2-NEXT: SI Fix SGPR copies
880 ; GCN-O2-NEXT: MachinePostDominator Tree Construction
881 ; GCN-O2-NEXT: SI Lower i1 Copies
882 ; GCN-O2-NEXT: Finalize ISel and expand pseudo-instructions
883 ; GCN-O2-NEXT: Lazy Machine Block Frequency Analysis
884 ; GCN-O2-NEXT: Early Tail Duplication
885 ; GCN-O2-NEXT: Optimize machine instruction PHIs
886 ; GCN-O2-NEXT: Slot index numbering
887 ; GCN-O2-NEXT: Merge disjoint stack slots
888 ; GCN-O2-NEXT: Local Stack Slot Allocation
889 ; GCN-O2-NEXT: Remove dead machine instructions
890 ; GCN-O2-NEXT: MachineDominator Tree Construction
891 ; GCN-O2-NEXT: Machine Natural Loop Construction
892 ; GCN-O2-NEXT: Machine Block Frequency Analysis
893 ; GCN-O2-NEXT: Early Machine Loop Invariant Code Motion
894 ; GCN-O2-NEXT: MachineDominator Tree Construction
895 ; GCN-O2-NEXT: Machine Block Frequency Analysis
896 ; GCN-O2-NEXT: Machine Common Subexpression Elimination
897 ; GCN-O2-NEXT: MachinePostDominator Tree Construction
898 ; GCN-O2-NEXT: Machine Cycle Info Analysis
899 ; GCN-O2-NEXT: Machine code sinking
900 ; GCN-O2-NEXT: Peephole Optimizations
901 ; GCN-O2-NEXT: Remove dead machine instructions
902 ; GCN-O2-NEXT: SI Fold Operands
903 ; GCN-O2-NEXT: GCN DPP Combine
904 ; GCN-O2-NEXT: SI Load Store Optimizer
905 ; GCN-O2-NEXT: SI Peephole SDWA
906 ; GCN-O2-NEXT: Machine Block Frequency Analysis
907 ; GCN-O2-NEXT: MachineDominator Tree Construction
908 ; GCN-O2-NEXT: Early Machine Loop Invariant Code Motion
909 ; GCN-O2-NEXT: MachineDominator Tree Construction
910 ; GCN-O2-NEXT: Machine Block Frequency Analysis
911 ; GCN-O2-NEXT: Machine Common Subexpression Elimination
912 ; GCN-O2-NEXT: SI Fold Operands
913 ; GCN-O2-NEXT: Remove dead machine instructions
914 ; GCN-O2-NEXT: SI Shrink Instructions
915 ; GCN-O2-NEXT: Register Usage Information Propagation
916 ; GCN-O2-NEXT: Detect Dead Lanes
917 ; GCN-O2-NEXT: Remove dead machine instructions
918 ; GCN-O2-NEXT: Process Implicit Definitions
919 ; GCN-O2-NEXT: Remove unreachable machine basic blocks
920 ; GCN-O2-NEXT: Live Variable Analysis
921 ; GCN-O2-NEXT: SI Optimize VGPR LiveRange
922 ; GCN-O2-NEXT: Eliminate PHI nodes for register allocation
923 ; GCN-O2-NEXT: SI Lower control flow pseudo instructions
924 ; GCN-O2-NEXT: Two-Address instruction pass
925 ; GCN-O2-NEXT: Slot index numbering
926 ; GCN-O2-NEXT: Live Interval Analysis
927 ; GCN-O2-NEXT: Machine Natural Loop Construction
928 ; GCN-O2-NEXT: Register Coalescer
929 ; GCN-O2-NEXT: Rename Disconnected Subregister Components
930 ; GCN-O2-NEXT: AMDGPU Pre-RA optimizations
931 ; GCN-O2-NEXT: Machine Instruction Scheduler
932 ; GCN-O2-NEXT: MachinePostDominator Tree Construction
933 ; GCN-O2-NEXT: SI Whole Quad Mode
934 ; GCN-O2-NEXT: Virtual Register Map
935 ; GCN-O2-NEXT: Live Register Matrix
936 ; GCN-O2-NEXT: SI Pre-allocate WWM Registers
937 ; GCN-O2-NEXT: SI optimize exec mask operations pre-RA
938 ; GCN-O2-NEXT: SI Form memory clauses
939 ; GCN-O2-NEXT: AMDGPU Pre-RA Long Branch Reg
940 ; GCN-O2-NEXT: Machine Natural Loop Construction
941 ; GCN-O2-NEXT: Machine Block Frequency Analysis
942 ; GCN-O2-NEXT: Debug Variable Analysis
943 ; GCN-O2-NEXT: Live Stack Slot Analysis
944 ; GCN-O2-NEXT: Virtual Register Map
945 ; GCN-O2-NEXT: Live Register Matrix
946 ; GCN-O2-NEXT: Bundle Machine CFG Edges
947 ; GCN-O2-NEXT: Spill Code Placement Analysis
948 ; GCN-O2-NEXT: Lazy Machine Block Frequency Analysis
949 ; GCN-O2-NEXT: Machine Optimization Remark Emitter
950 ; GCN-O2-NEXT: Greedy Register Allocator
951 ; GCN-O2-NEXT: Virtual Register Rewriter
952 ; GCN-O2-NEXT: SI lower SGPR spill instructions
953 ; GCN-O2-NEXT: Virtual Register Map
954 ; GCN-O2-NEXT: Live Register Matrix
955 ; GCN-O2-NEXT: Greedy Register Allocator
956 ; GCN-O2-NEXT: SI Lower WWM Copies
957 ; GCN-O2-NEXT: GCN NSA Reassign
958 ; GCN-O2-NEXT: Virtual Register Rewriter
959 ; GCN-O2-NEXT: Stack Slot Coloring
960 ; GCN-O2-NEXT: Machine Copy Propagation Pass
961 ; GCN-O2-NEXT: Machine Loop Invariant Code Motion
962 ; GCN-O2-NEXT: SI Fix VGPR copies
963 ; GCN-O2-NEXT: SI optimize exec mask operations
964 ; GCN-O2-NEXT: Remove Redundant DEBUG_VALUE analysis
965 ; GCN-O2-NEXT: Fixup Statepoint Caller Saved
966 ; GCN-O2-NEXT: PostRA Machine Sink
967 ; GCN-O2-NEXT: Machine Block Frequency Analysis
968 ; GCN-O2-NEXT: MachineDominator Tree Construction
969 ; GCN-O2-NEXT: MachinePostDominator Tree Construction
970 ; GCN-O2-NEXT: Lazy Machine Block Frequency Analysis
971 ; GCN-O2-NEXT: Machine Optimization Remark Emitter
972 ; GCN-O2-NEXT: Shrink Wrapping analysis
973 ; GCN-O2-NEXT: Prologue/Epilogue Insertion & Frame Finalization
974 ; GCN-O2-NEXT: Machine Late Instructions Cleanup Pass
975 ; GCN-O2-NEXT: Control Flow Optimizer
976 ; GCN-O2-NEXT: Lazy Machine Block Frequency Analysis
977 ; GCN-O2-NEXT: Tail Duplication
978 ; GCN-O2-NEXT: Machine Copy Propagation Pass
979 ; GCN-O2-NEXT: Post-RA pseudo instruction expansion pass
980 ; GCN-O2-NEXT: SI Shrink Instructions
981 ; GCN-O2-NEXT: SI post-RA bundler
982 ; GCN-O2-NEXT: MachineDominator Tree Construction
983 ; GCN-O2-NEXT: Machine Natural Loop Construction
984 ; GCN-O2-NEXT: PostRA Machine Instruction Scheduler
985 ; GCN-O2-NEXT: Machine Block Frequency Analysis
986 ; GCN-O2-NEXT: MachinePostDominator Tree Construction
987 ; GCN-O2-NEXT: Branch Probability Basic Block Placement
988 ; GCN-O2-NEXT: Insert fentry calls
989 ; GCN-O2-NEXT: Insert XRay ops
990 ; GCN-O2-NEXT: GCN Create VOPD Instructions
991 ; GCN-O2-NEXT: SI Memory Legalizer
992 ; GCN-O2-NEXT: MachineDominator Tree Construction
993 ; GCN-O2-NEXT: Machine Natural Loop Construction
994 ; GCN-O2-NEXT: MachinePostDominator Tree Construction
995 ; GCN-O2-NEXT: SI insert wait instructions
996 ; GCN-O2-NEXT: Insert required mode register values
997 ; GCN-O2-NEXT: SI Insert Hard Clauses
998 ; GCN-O2-NEXT: SI Final Branch Preparation
999 ; GCN-O2-NEXT: SI peephole optimizations
1000 ; GCN-O2-NEXT: Post RA hazard recognizer
1001 ; GCN-O2-NEXT: AMDGPU Insert Delay ALU
1002 ; GCN-O2-NEXT: Branch relaxation pass
1003 ; GCN-O2-NEXT: Register Usage Information Collector Pass
1004 ; GCN-O2-NEXT: Live DEBUG_VALUE analysis
1005 ; GCN-O2-NEXT: Machine Sanitizer Binary Metadata
1006 ; GCN-O2-NEXT: Lazy Machine Block Frequency Analysis
1007 ; GCN-O2-NEXT: Machine Optimization Remark Emitter
1008 ; GCN-O2-NEXT: Stack Frame Layout Analysis
1009 ; GCN-O2-NEXT: Function register usage analysis
1010 ; GCN-O2-NEXT: FunctionPass Manager
1011 ; GCN-O2-NEXT: Lazy Machine Block Frequency Analysis
1012 ; GCN-O2-NEXT: Machine Optimization Remark Emitter
1013 ; GCN-O2-NEXT: AMDGPU Assembly Printer
1014 ; GCN-O2-NEXT: Free MachineFunction
1016 ; GCN-O3:Target Library Information
1017 ; GCN-O3-NEXT:Target Pass Configuration
1018 ; GCN-O3-NEXT:Machine Module Information
1019 ; GCN-O3-NEXT:Target Transform Information
1020 ; GCN-O3-NEXT:Assumption Cache Tracker
1021 ; GCN-O3-NEXT:Profile summary info
1022 ; GCN-O3-NEXT:AMDGPU Address space based Alias Analysis
1023 ; GCN-O3-NEXT:External Alias Analysis
1024 ; GCN-O3-NEXT:Type-Based Alias Analysis
1025 ; GCN-O3-NEXT:Scoped NoAlias Alias Analysis
1026 ; GCN-O3-NEXT:Argument Register Usage Information Storage
1027 ; GCN-O3-NEXT:Create Garbage Collector Module Metadata
1028 ; GCN-O3-NEXT:Machine Branch Probability Analysis
1029 ; GCN-O3-NEXT:Register Usage Information Storage
1030 ; GCN-O3-NEXT:Default Regalloc Eviction Advisor
1031 ; GCN-O3-NEXT:Default Regalloc Priority Advisor
1032 ; GCN-O3-NEXT: ModulePass Manager
1033 ; GCN-O3-NEXT: Pre-ISel Intrinsic Lowering
1034 ; GCN-O3-NEXT: FunctionPass Manager
1035 ; GCN-O3-NEXT: Expand large div/rem
1036 ; GCN-O3-NEXT: Expand large fp convert
1037 ; GCN-O3-NEXT: AMDGPU Remove Incompatible Functions
1038 ; GCN-O3-NEXT: AMDGPU Printf lowering
1039 ; GCN-O3-NEXT: Lower ctors and dtors for AMDGPU
1040 ; GCN-O3-NEXT: FunctionPass Manager
1041 ; GCN-O3-NEXT: AMDGPU Image Intrinsic Optimizer
1042 ; GCN-O3-NEXT: AMDGPU Inline All Functions
1043 ; GCN-O3-NEXT: Inliner for always_inline functions
1044 ; GCN-O3-NEXT: FunctionPass Manager
1045 ; GCN-O3-NEXT: Dominator Tree Construction
1046 ; GCN-O3-NEXT: Basic Alias Analysis (stateless AA impl)
1047 ; GCN-O3-NEXT: Function Alias Analysis Results
1048 ; GCN-O3-NEXT: Lower OpenCL enqueued blocks
1049 ; GCN-O3-NEXT: Lower uses of LDS variables from non-kernel functions
1050 ; GCN-O3-NEXT: AMDGPU Attributor
1051 ; GCN-O3-NEXT: FunctionPass Manager
1052 ; GCN-O3-NEXT: Cycle Info Analysis
1053 ; GCN-O3-NEXT: FunctionPass Manager
1054 ; GCN-O3-NEXT: Infer address spaces
1055 ; GCN-O3-NEXT: Dominator Tree Construction
1056 ; GCN-O3-NEXT: Cycle Info Analysis
1057 ; GCN-O3-NEXT: Uniformity Analysis
1058 ; GCN-O3-NEXT: AMDGPU atomic optimizations
1059 ; GCN-O3-NEXT: Expand Atomic instructions
1060 ; GCN-O3-NEXT: AMDGPU Promote Alloca
1061 ; GCN-O3-NEXT: Dominator Tree Construction
1062 ; GCN-O3-NEXT: Natural Loop Information
1063 ; GCN-O3-NEXT: Split GEPs to a variadic base and a constant offset for better CSE
1064 ; GCN-O3-NEXT: Scalar Evolution Analysis
1065 ; GCN-O3-NEXT: Straight line strength reduction
1066 ; GCN-O3-NEXT: Basic Alias Analysis (stateless AA impl)
1067 ; GCN-O3-NEXT: Function Alias Analysis Results
1068 ; GCN-O3-NEXT: Memory Dependence Analysis
1069 ; GCN-O3-NEXT: Lazy Branch Probability Analysis
1070 ; GCN-O3-NEXT: Lazy Block Frequency Analysis
1071 ; GCN-O3-NEXT: Optimization Remark Emitter
1072 ; GCN-O3-NEXT: Global Value Numbering
1073 ; GCN-O3-NEXT: Scalar Evolution Analysis
1074 ; GCN-O3-NEXT: Nary reassociation
1075 ; GCN-O3-NEXT: Early CSE
1076 ; GCN-O3-NEXT: Cycle Info Analysis
1077 ; GCN-O3-NEXT: Uniformity Analysis
1078 ; GCN-O3-NEXT: AMDGPU IR optimizations
1079 ; GCN-O3-NEXT: Basic Alias Analysis (stateless AA impl)
1080 ; GCN-O3-NEXT: Function Alias Analysis Results
1081 ; GCN-O3-NEXT: Memory SSA
1082 ; GCN-O3-NEXT: Canonicalize natural loops
1083 ; GCN-O3-NEXT: LCSSA Verifier
1084 ; GCN-O3-NEXT: Loop-Closed SSA Form Pass
1085 ; GCN-O3-NEXT: Scalar Evolution Analysis
1086 ; GCN-O3-NEXT: Lazy Branch Probability Analysis
1087 ; GCN-O3-NEXT: Lazy Block Frequency Analysis
1088 ; GCN-O3-NEXT: Loop Pass Manager
1089 ; GCN-O3-NEXT: Loop Invariant Code Motion
1090 ; GCN-O3-NEXT: Loop Pass Manager
1091 ; GCN-O3-NEXT: Canonicalize Freeze Instructions in Loops
1092 ; GCN-O3-NEXT: Induction Variable Users
1093 ; GCN-O3-NEXT: Loop Strength Reduction
1094 ; GCN-O3-NEXT: Basic Alias Analysis (stateless AA impl)
1095 ; GCN-O3-NEXT: Function Alias Analysis Results
1096 ; GCN-O3-NEXT: Merge contiguous icmps into a memcmp
1097 ; GCN-O3-NEXT: Natural Loop Information
1098 ; GCN-O3-NEXT: Lazy Branch Probability Analysis
1099 ; GCN-O3-NEXT: Lazy Block Frequency Analysis
1100 ; GCN-O3-NEXT: Expand memcmp() to load/stores
1101 ; GCN-O3-NEXT: Lower constant intrinsics
1102 ; GCN-O3-NEXT: Remove unreachable blocks from the CFG
1103 ; GCN-O3-NEXT: Natural Loop Information
1104 ; GCN-O3-NEXT: Post-Dominator Tree Construction
1105 ; GCN-O3-NEXT: Branch Probability Analysis
1106 ; GCN-O3-NEXT: Block Frequency Analysis
1107 ; GCN-O3-NEXT: Constant Hoisting
1108 ; GCN-O3-NEXT: Replace intrinsics with calls to vector library
1109 ; GCN-O3-NEXT: Partially inline calls to library functions
1110 ; GCN-O3-NEXT: Expand vector predication intrinsics
1111 ; GCN-O3-NEXT: Scalarize Masked Memory Intrinsics
1112 ; GCN-O3-NEXT: Expand reduction intrinsics
1113 ; GCN-O3-NEXT: Natural Loop Information
1114 ; GCN-O3-NEXT: TLS Variable Hoist
1115 ; GCN-O3-NEXT: Basic Alias Analysis (stateless AA impl)
1116 ; GCN-O3-NEXT: Function Alias Analysis Results
1117 ; GCN-O3-NEXT: Memory Dependence Analysis
1118 ; GCN-O3-NEXT: Lazy Branch Probability Analysis
1119 ; GCN-O3-NEXT: Lazy Block Frequency Analysis
1120 ; GCN-O3-NEXT: Optimization Remark Emitter
1121 ; GCN-O3-NEXT: Global Value Numbering
1122 ; GCN-O3-NEXT: CallGraph Construction
1123 ; GCN-O3-NEXT: Call Graph SCC Pass Manager
1124 ; GCN-O3-NEXT: AMDGPU Annotate Kernel Features
1125 ; GCN-O3-NEXT: FunctionPass Manager
1126 ; GCN-O3-NEXT: AMDGPU Lower Kernel Arguments
1127 ; GCN-O3-NEXT: Dominator Tree Construction
1128 ; GCN-O3-NEXT: Natural Loop Information
1129 ; GCN-O3-NEXT: CodeGen Prepare
1130 ; GCN-O3-NEXT: Dominator Tree Construction
1131 ; GCN-O3-NEXT: Basic Alias Analysis (stateless AA impl)
1132 ; GCN-O3-NEXT: Function Alias Analysis Results
1133 ; GCN-O3-NEXT: Natural Loop Information
1134 ; GCN-O3-NEXT: Scalar Evolution Analysis
1135 ; GCN-O3-NEXT: GPU Load and Store Vectorizer
1136 ; GCN-O3-NEXT: Lazy Value Information Analysis
1137 ; GCN-O3-NEXT: Lower SwitchInst's to branches
1138 ; GCN-O3-NEXT: Lower invoke and unwind, for unwindless code generators
1139 ; GCN-O3-NEXT: Remove unreachable blocks from the CFG
1140 ; GCN-O3-NEXT: Dominator Tree Construction
1141 ; GCN-O3-NEXT: Basic Alias Analysis (stateless AA impl)
1142 ; GCN-O3-NEXT: Function Alias Analysis Results
1143 ; GCN-O3-NEXT: Flatten the CFG
1144 ; GCN-O3-NEXT: Dominator Tree Construction
1145 ; GCN-O3-NEXT: Cycle Info Analysis
1146 ; GCN-O3-NEXT: Uniformity Analysis
1147 ; GCN-O3-NEXT: AMDGPU IR late optimizations
1148 ; GCN-O3-NEXT: Basic Alias Analysis (stateless AA impl)
1149 ; GCN-O3-NEXT: Function Alias Analysis Results
1150 ; GCN-O3-NEXT: Natural Loop Information
1151 ; GCN-O3-NEXT: Code sinking
1152 ; GCN-O3-NEXT: Post-Dominator Tree Construction
1153 ; GCN-O3-NEXT: Unify divergent function exit nodes
1154 ; GCN-O3-NEXT: Dominator Tree Construction
1155 ; GCN-O3-NEXT: Natural Loop Information
1156 ; GCN-O3-NEXT: Convert irreducible control-flow into natural loops
1157 ; GCN-O3-NEXT: Fixup each natural loop to have a single exit block
1158 ; GCN-O3-NEXT: Post-Dominator Tree Construction
1159 ; GCN-O3-NEXT: Dominance Frontier Construction
1160 ; GCN-O3-NEXT: Detect single entry single exit regions
1161 ; GCN-O3-NEXT: Region Pass Manager
1162 ; GCN-O3-NEXT: Structurize control flow
1163 ; GCN-O3-NEXT: Cycle Info Analysis
1164 ; GCN-O3-NEXT: Uniformity Analysis
1165 ; GCN-O3-NEXT: Basic Alias Analysis (stateless AA impl)
1166 ; GCN-O3-NEXT: Function Alias Analysis Results
1167 ; GCN-O3-NEXT: Memory SSA
1168 ; GCN-O3-NEXT: AMDGPU Annotate Uniform Values
1169 ; GCN-O3-NEXT: Natural Loop Information
1170 ; GCN-O3-NEXT: SI annotate control flow
1171 ; GCN-O3-NEXT: Cycle Info Analysis
1172 ; GCN-O3-NEXT: Uniformity Analysis
1173 ; GCN-O3-NEXT: AMDGPU Rewrite Undef for PHI
1174 ; GCN-O3-NEXT: LCSSA Verifier
1175 ; GCN-O3-NEXT: Loop-Closed SSA Form Pass
1176 ; GCN-O3-NEXT: Analysis if a function is memory bound
1177 ; GCN-O3-NEXT: DummyCGSCCPass
1178 ; GCN-O3-NEXT: FunctionPass Manager
1179 ; GCN-O3-NEXT: Prepare callbr
1180 ; GCN-O3-NEXT: Safe Stack instrumentation pass
1181 ; GCN-O3-NEXT: Insert stack protectors
1182 ; GCN-O3-NEXT: Dominator Tree Construction
1183 ; GCN-O3-NEXT: Cycle Info Analysis
1184 ; GCN-O3-NEXT: Uniformity Analysis
1185 ; GCN-O3-NEXT: Basic Alias Analysis (stateless AA impl)
1186 ; GCN-O3-NEXT: Function Alias Analysis Results
1187 ; GCN-O3-NEXT: Natural Loop Information
1188 ; GCN-O3-NEXT: Post-Dominator Tree Construction
1189 ; GCN-O3-NEXT: Branch Probability Analysis
1190 ; GCN-O3-NEXT: Assignment Tracking Analysis
1191 ; GCN-O3-NEXT: Lazy Branch Probability Analysis
1192 ; GCN-O3-NEXT: Lazy Block Frequency Analysis
1193 ; GCN-O3-NEXT: AMDGPU DAG->DAG Pattern Instruction Selection
1194 ; GCN-O3-NEXT: MachineDominator Tree Construction
1195 ; GCN-O3-NEXT: SI Fix SGPR copies
1196 ; GCN-O3-NEXT: MachinePostDominator Tree Construction
1197 ; GCN-O3-NEXT: SI Lower i1 Copies
1198 ; GCN-O3-NEXT: Finalize ISel and expand pseudo-instructions
1199 ; GCN-O3-NEXT: Lazy Machine Block Frequency Analysis
1200 ; GCN-O3-NEXT: Early Tail Duplication
1201 ; GCN-O3-NEXT: Optimize machine instruction PHIs
1202 ; GCN-O3-NEXT: Slot index numbering
1203 ; GCN-O3-NEXT: Merge disjoint stack slots
1204 ; GCN-O3-NEXT: Local Stack Slot Allocation
1205 ; GCN-O3-NEXT: Remove dead machine instructions
1206 ; GCN-O3-NEXT: MachineDominator Tree Construction
1207 ; GCN-O3-NEXT: Machine Natural Loop Construction
1208 ; GCN-O3-NEXT: Machine Block Frequency Analysis
1209 ; GCN-O3-NEXT: Early Machine Loop Invariant Code Motion
1210 ; GCN-O3-NEXT: MachineDominator Tree Construction
1211 ; GCN-O3-NEXT: Machine Block Frequency Analysis
1212 ; GCN-O3-NEXT: Machine Common Subexpression Elimination
1213 ; GCN-O3-NEXT: MachinePostDominator Tree Construction
1214 ; GCN-O3-NEXT: Machine Cycle Info Analysis
1215 ; GCN-O3-NEXT: Machine code sinking
1216 ; GCN-O3-NEXT: Peephole Optimizations
1217 ; GCN-O3-NEXT: Remove dead machine instructions
1218 ; GCN-O3-NEXT: SI Fold Operands
1219 ; GCN-O3-NEXT: GCN DPP Combine
1220 ; GCN-O3-NEXT: SI Load Store Optimizer
1221 ; GCN-O3-NEXT: SI Peephole SDWA
1222 ; GCN-O3-NEXT: Machine Block Frequency Analysis
1223 ; GCN-O3-NEXT: MachineDominator Tree Construction
1224 ; GCN-O3-NEXT: Early Machine Loop Invariant Code Motion
1225 ; GCN-O3-NEXT: MachineDominator Tree Construction
1226 ; GCN-O3-NEXT: Machine Block Frequency Analysis
1227 ; GCN-O3-NEXT: Machine Common Subexpression Elimination
1228 ; GCN-O3-NEXT: SI Fold Operands
1229 ; GCN-O3-NEXT: Remove dead machine instructions
1230 ; GCN-O3-NEXT: SI Shrink Instructions
1231 ; GCN-O3-NEXT: Register Usage Information Propagation
1232 ; GCN-O3-NEXT: Detect Dead Lanes
1233 ; GCN-O3-NEXT: Remove dead machine instructions
1234 ; GCN-O3-NEXT: Process Implicit Definitions
1235 ; GCN-O3-NEXT: Remove unreachable machine basic blocks
1236 ; GCN-O3-NEXT: Live Variable Analysis
1237 ; GCN-O3-NEXT: SI Optimize VGPR LiveRange
1238 ; GCN-O3-NEXT: Eliminate PHI nodes for register allocation
1239 ; GCN-O3-NEXT: SI Lower control flow pseudo instructions
1240 ; GCN-O3-NEXT: Two-Address instruction pass
1241 ; GCN-O3-NEXT: Slot index numbering
1242 ; GCN-O3-NEXT: Live Interval Analysis
1243 ; GCN-O3-NEXT: Machine Natural Loop Construction
1244 ; GCN-O3-NEXT: Register Coalescer
1245 ; GCN-O3-NEXT: Rename Disconnected Subregister Components
1246 ; GCN-O3-NEXT: AMDGPU Pre-RA optimizations
1247 ; GCN-O3-NEXT: Machine Instruction Scheduler
1248 ; GCN-O3-NEXT: MachinePostDominator Tree Construction
1249 ; GCN-O3-NEXT: SI Whole Quad Mode
1250 ; GCN-O3-NEXT: Virtual Register Map
1251 ; GCN-O3-NEXT: Live Register Matrix
1252 ; GCN-O3-NEXT: SI Pre-allocate WWM Registers
1253 ; GCN-O3-NEXT: SI optimize exec mask operations pre-RA
1254 ; GCN-O3-NEXT: SI Form memory clauses
1255 ; GCN-O3-NEXT: AMDGPU Pre-RA Long Branch Reg
1256 ; GCN-O3-NEXT: Machine Natural Loop Construction
1257 ; GCN-O3-NEXT: Machine Block Frequency Analysis
1258 ; GCN-O3-NEXT: Debug Variable Analysis
1259 ; GCN-O3-NEXT: Live Stack Slot Analysis
1260 ; GCN-O3-NEXT: Virtual Register Map
1261 ; GCN-O3-NEXT: Live Register Matrix
1262 ; GCN-O3-NEXT: Bundle Machine CFG Edges
1263 ; GCN-O3-NEXT: Spill Code Placement Analysis
1264 ; GCN-O3-NEXT: Lazy Machine Block Frequency Analysis
1265 ; GCN-O3-NEXT: Machine Optimization Remark Emitter
1266 ; GCN-O3-NEXT: Greedy Register Allocator
1267 ; GCN-O3-NEXT: Virtual Register Rewriter
1268 ; GCN-O3-NEXT: SI lower SGPR spill instructions
1269 ; GCN-O3-NEXT: Virtual Register Map
1270 ; GCN-O3-NEXT: Live Register Matrix
1271 ; GCN-O3-NEXT: Greedy Register Allocator
1272 ; GCN-O3-NEXT: SI Lower WWM Copies
1273 ; GCN-O3-NEXT: GCN NSA Reassign
1274 ; GCN-O3-NEXT: Virtual Register Rewriter
1275 ; GCN-O3-NEXT: Stack Slot Coloring
1276 ; GCN-O3-NEXT: Machine Copy Propagation Pass
1277 ; GCN-O3-NEXT: Machine Loop Invariant Code Motion
1278 ; GCN-O3-NEXT: SI Fix VGPR copies
1279 ; GCN-O3-NEXT: SI optimize exec mask operations
1280 ; GCN-O3-NEXT: Remove Redundant DEBUG_VALUE analysis
1281 ; GCN-O3-NEXT: Fixup Statepoint Caller Saved
1282 ; GCN-O3-NEXT: PostRA Machine Sink
1283 ; GCN-O3-NEXT: Machine Block Frequency Analysis
1284 ; GCN-O3-NEXT: MachineDominator Tree Construction
1285 ; GCN-O3-NEXT: MachinePostDominator Tree Construction
1286 ; GCN-O3-NEXT: Lazy Machine Block Frequency Analysis
1287 ; GCN-O3-NEXT: Machine Optimization Remark Emitter
1288 ; GCN-O3-NEXT: Shrink Wrapping analysis
1289 ; GCN-O3-NEXT: Prologue/Epilogue Insertion & Frame Finalization
1290 ; GCN-O3-NEXT: Machine Late Instructions Cleanup Pass
1291 ; GCN-O3-NEXT: Control Flow Optimizer
1292 ; GCN-O3-NEXT: Lazy Machine Block Frequency Analysis
1293 ; GCN-O3-NEXT: Tail Duplication
1294 ; GCN-O3-NEXT: Machine Copy Propagation Pass
1295 ; GCN-O3-NEXT: Post-RA pseudo instruction expansion pass
1296 ; GCN-O3-NEXT: SI Shrink Instructions
1297 ; GCN-O3-NEXT: SI post-RA bundler
1298 ; GCN-O3-NEXT: MachineDominator Tree Construction
1299 ; GCN-O3-NEXT: Machine Natural Loop Construction
1300 ; GCN-O3-NEXT: PostRA Machine Instruction Scheduler
1301 ; GCN-O3-NEXT: Machine Block Frequency Analysis
1302 ; GCN-O3-NEXT: MachinePostDominator Tree Construction
1303 ; GCN-O3-NEXT: Branch Probability Basic Block Placement
1304 ; GCN-O3-NEXT: Insert fentry calls
1305 ; GCN-O3-NEXT: Insert XRay ops
1306 ; GCN-O3-NEXT: GCN Create VOPD Instructions
1307 ; GCN-O3-NEXT: SI Memory Legalizer
1308 ; GCN-O3-NEXT: MachineDominator Tree Construction
1309 ; GCN-O3-NEXT: Machine Natural Loop Construction
1310 ; GCN-O3-NEXT: MachinePostDominator Tree Construction
1311 ; GCN-O3-NEXT: SI insert wait instructions
1312 ; GCN-O3-NEXT: Insert required mode register values
1313 ; GCN-O3-NEXT: SI Insert Hard Clauses
1314 ; GCN-O3-NEXT: SI Final Branch Preparation
1315 ; GCN-O3-NEXT: SI peephole optimizations
1316 ; GCN-O3-NEXT: Post RA hazard recognizer
1317 ; GCN-O3-NEXT: AMDGPU Insert Delay ALU
1318 ; GCN-O3-NEXT: Branch relaxation pass
1319 ; GCN-O3-NEXT: Register Usage Information Collector Pass
1320 ; GCN-O3-NEXT: Live DEBUG_VALUE analysis
1321 ; GCN-O3-NEXT: Machine Sanitizer Binary Metadata
1322 ; GCN-O3-NEXT: Lazy Machine Block Frequency Analysis
1323 ; GCN-O3-NEXT: Machine Optimization Remark Emitter
1324 ; GCN-O3-NEXT: Stack Frame Layout Analysis
1325 ; GCN-O3-NEXT: Function register usage analysis
1326 ; GCN-O3-NEXT: FunctionPass Manager
1327 ; GCN-O3-NEXT: Lazy Machine Block Frequency Analysis
1328 ; GCN-O3-NEXT: Machine Optimization Remark Emitter
1329 ; GCN-O3-NEXT: AMDGPU Assembly Printer
1330 ; GCN-O3-NEXT: Free MachineFunction
1332 define void @empty() {