1; RUN: opt -O0 -mtriple=amdgcn--amdhsa -disable-output -disable-verify -debug-pass=Structure -enable-new-pm=0 %s 2>&1 | FileCheck -check-prefix=GCN-O0 %s
2; RUN: opt -O1 -mtriple=amdgcn--amdhsa -disable-output -disable-verify -debug-pass=Structure -enable-new-pm=0 %s 2>&1 | FileCheck -check-prefix=GCN-O1 %s
3; RUN: opt -O2 -mtriple=amdgcn--amdhsa -disable-output -disable-verify -debug-pass=Structure -enable-new-pm=0 %s 2>&1 | FileCheck -check-prefix=GCN-O2 %s
4; RUN: opt -O3 -mtriple=amdgcn--amdhsa -disable-output -disable-verify -debug-pass=Structure -enable-new-pm=0 %s 2>&1 | FileCheck -check-prefix=GCN-O3 %s
5
6; REQUIRES: asserts
7
8; GCN-O0:      Pass Arguments:
9; GCN-O0-NEXT: Target Transform Information
10; GCN-O0-NEXT:   FunctionPass Manager
11; GCN-O0-NEXT:     Early propagate attributes from kernels to functions
12; GCN-O0-NEXT:     Replace builtin math calls with that native versions.
13; GCN-O0-NEXT:     Instrument function entry/exit with calls to e.g. mcount() (pre inlining)
14
15; GCN-O0-NEXT: Pass Arguments:
16; GCN-O0-NEXT: Target Library Information
17; GCN-O0-NEXT: Target Transform Information
18; GCN-O0-NEXT: Target Pass Configuration
19; GCN-O0-NEXT: Assumption Cache Tracker
20; GCN-O0-NEXT: Profile summary info
21; GCN-O0-NEXT:   ModulePass Manager
22; GCN-O0-NEXT:     Annotation2Metadata
23; GCN-O0-NEXT:     Force set function attributes
24; GCN-O0-NEXT:     CallGraph Construction
25; GCN-O0-NEXT:     Call Graph SCC Pass Manager
26; GCN-O0-NEXT:       Function Integration/Inlining
27; GCN-O0-NEXT:     A No-Op Barrier Pass
28
29
30; GCN-O1:      Pass Arguments:
31; GCN-O1-NEXT: Target Transform Information
32; GCN-O1-NEXT: AMDGPU Address space based Alias Analysis
33; GCN-O1-NEXT: External Alias Analysis
34; GCN-O1-NEXT: Assumption Cache Tracker
35; GCN-O1-NEXT: Target Library Information
36; GCN-O1-NEXT: Type-Based Alias Analysis
37; GCN-O1-NEXT: Scoped NoAlias Alias Analysis
38; GCN-O1-NEXT:   FunctionPass Manager
39; GCN-O1-NEXT:     Early propagate attributes from kernels to functions
40; GCN-O1-NEXT:     Replace builtin math calls with that native versions.
41; GCN-O1-NEXT:     Dominator Tree Construction
42; GCN-O1-NEXT:     Basic Alias Analysis (stateless AA impl)
43; GCN-O1-NEXT:     Function Alias Analysis Results
44; GCN-O1-NEXT:     Simplify well-known AMD library calls
45; GCN-O1-NEXT:     Instrument function entry/exit with calls to e.g. mcount() (pre inlining)
46; GCN-O1-NEXT:     Simplify the CFG
47; GCN-O1-NEXT:     Dominator Tree Construction
48; GCN-O1-NEXT:     SROA
49; GCN-O1-NEXT:     Early CSE
50; GCN-O1-NEXT:     Lower 'expect' Intrinsics
51
52; GCN-O1-NEXT: Pass Arguments:
53; GCN-O1-NEXT: Target Library Information
54; GCN-O1-NEXT: Target Transform Information
55; GCN-O1-NEXT: Target Pass Configuration
56; GCN-O1-NEXT: Type-Based Alias Analysis
57; GCN-O1-NEXT: Scoped NoAlias Alias Analysis
58; GCN-O1-NEXT: AMDGPU Address space based Alias Analysis
59; GCN-O1-NEXT: External Alias Analysis
60; GCN-O1-NEXT: Assumption Cache Tracker
61; GCN-O1-NEXT: Profile summary info
62; GCN-O1-NEXT:   ModulePass Manager
63; GCN-O1-NEXT:     Annotation2Metadata
64; GCN-O1-NEXT:     Force set function attributes
65; GCN-O1-NEXT:     Infer set function attributes
66; GCN-O1-NEXT:     Unify multiple OpenCL metadata due to linking
67; GCN-O1-NEXT:     AMDGPU Printf lowering
68; GCN-O1-NEXT:       FunctionPass Manager
69; GCN-O1-NEXT:         Dominator Tree Construction
70; GCN-O1-NEXT:     Late propagate attributes from kernels to functions
71; GCN-O1-NEXT:     Interprocedural Sparse Conditional Constant Propagation
72; GCN-O1-NEXT:       FunctionPass Manager
73; GCN-O1-NEXT:         Dominator Tree Construction
74; GCN-O1-NEXT:     Called Value Propagation
75; GCN-O1-NEXT:     Global Variable Optimizer
76; GCN-O1-NEXT:       FunctionPass Manager
77; GCN-O1-NEXT:         Dominator Tree Construction
78; GCN-O1-NEXT:         Natural Loop Information
79; GCN-O1-NEXT:         Post-Dominator Tree Construction
80; GCN-O1-NEXT:         Branch Probability Analysis
81; GCN-O1-NEXT:         Block Frequency Analysis
82; GCN-O1-NEXT:     FunctionPass Manager
83; GCN-O1-NEXT:       Dominator Tree Construction
84; GCN-O1-NEXT:       Promote Memory to Register
85; GCN-O1-NEXT:     Dead Argument Elimination
86; GCN-O1-NEXT:     FunctionPass Manager
87; GCN-O1-NEXT:       Dominator Tree Construction
88; GCN-O1-NEXT:       Basic Alias Analysis (stateless AA impl)
89; GCN-O1-NEXT:       Function Alias Analysis Results
90; GCN-O1-NEXT:       Natural Loop Information
91; GCN-O1-NEXT:       Lazy Branch Probability Analysis
92; GCN-O1-NEXT:       Lazy Block Frequency Analysis
93; GCN-O1-NEXT:       Optimization Remark Emitter
94; GCN-O1-NEXT:       Combine redundant instructions
95; GCN-O1-NEXT:       Simplify the CFG
96; GCN-O1-NEXT:     CallGraph Construction
97; GCN-O1-NEXT:     Globals Alias Analysis
98; GCN-O1-NEXT:     Call Graph SCC Pass Manager
99; GCN-O1-NEXT:       Remove unused exception handling info
100; GCN-O1-NEXT:       Function Integration/Inlining
101; GCN-O1-NEXT:       Deduce function attributes
102; GCN-O1-NEXT:       FunctionPass Manager
103; GCN-O1-NEXT:         Infer address spaces
104; GCN-O1-NEXT:     AMDGPU Kernel Attributes
105; GCN-O1-NEXT:     FunctionPass Manager
106; GCN-O1-NEXT:       AMDGPU Promote Alloca to vector
107; GCN-O1-NEXT:       Dominator Tree Construction
108; GCN-O1-NEXT:       SROA
109; GCN-O1-NEXT:       Basic Alias Analysis (stateless AA impl)
110; GCN-O1-NEXT:       Function Alias Analysis Results
111; GCN-O1-NEXT:       Memory SSA
112; GCN-O1-NEXT:       Early CSE w/ MemorySSA
113; GCN-O1-NEXT:       Simplify the CFG
114; GCN-O1-NEXT:       Dominator Tree Construction
115; GCN-O1-NEXT:       Basic Alias Analysis (stateless AA impl)
116; GCN-O1-NEXT:       Function Alias Analysis Results
117; GCN-O1-NEXT:       Natural Loop Information
118; GCN-O1-NEXT:       Lazy Branch Probability Analysis
119; GCN-O1-NEXT:       Lazy Block Frequency Analysis
120; GCN-O1-NEXT:       Optimization Remark Emitter
121; GCN-O1-NEXT:       Combine redundant instructions
122; GCN-O1-NEXT:       Conditionally eliminate dead library calls
123; GCN-O1-NEXT:       Natural Loop Information
124; GCN-O1-NEXT:       Post-Dominator Tree Construction
125; GCN-O1-NEXT:       Branch Probability Analysis
126; GCN-O1-NEXT:       Block Frequency Analysis
127; GCN-O1-NEXT:       Lazy Branch Probability Analysis
128; GCN-O1-NEXT:       Lazy Block Frequency Analysis
129; GCN-O1-NEXT:       Optimization Remark Emitter
130; GCN-O1-NEXT:       PGOMemOPSize
131; GCN-O1-NEXT:       Simplify the CFG
132; GCN-O1-NEXT:       Reassociate expressions
133; GCN-O1-NEXT:       Dominator Tree Construction
134; GCN-O1-NEXT:       Natural Loop Information
135; GCN-O1-NEXT:       Canonicalize natural loops
136; GCN-O1-NEXT:       LCSSA Verifier
137; GCN-O1-NEXT:       Loop-Closed SSA Form Pass
138; GCN-O1-NEXT:       Basic Alias Analysis (stateless AA impl)
139; GCN-O1-NEXT:       Function Alias Analysis Results
140; GCN-O1-NEXT:       Scalar Evolution Analysis
141; GCN-O1-NEXT:       Loop Pass Manager
142; GCN-O1-NEXT:         Rotate Loops
143; GCN-O1-NEXT:       Memory SSA
144; GCN-O1-NEXT:       Lazy Branch Probability Analysis
145; GCN-O1-NEXT:       Lazy Block Frequency Analysis
146; GCN-O1-NEXT:       Loop Pass Manager
147; GCN-O1-NEXT:         Loop Invariant Code Motion
148; GCN-O1-NEXT:       Post-Dominator Tree Construction
149; GCN-O1-NEXT:       Legacy Divergence Analysis
150; GCN-O1-NEXT:       Loop Pass Manager
151; GCN-O1-NEXT:         Unswitch loops
152; GCN-O1-NEXT:       Simplify the CFG
153; GCN-O1-NEXT:       Dominator Tree Construction
154; GCN-O1-NEXT:       Basic Alias Analysis (stateless AA impl)
155; GCN-O1-NEXT:       Function Alias Analysis Results
156; GCN-O1-NEXT:       Natural Loop Information
157; GCN-O1-NEXT:       Lazy Branch Probability Analysis
158; GCN-O1-NEXT:       Lazy Block Frequency Analysis
159; GCN-O1-NEXT:       Optimization Remark Emitter
160; GCN-O1-NEXT:       Combine redundant instructions
161; GCN-O1-NEXT:       Canonicalize natural loops
162; GCN-O1-NEXT:       LCSSA Verifier
163; GCN-O1-NEXT:       Loop-Closed SSA Form Pass
164; GCN-O1-NEXT:       Scalar Evolution Analysis
165; GCN-O1-NEXT:       Loop Pass Manager
166; GCN-O1-NEXT:         Recognize loop idioms
167; GCN-O1-NEXT:         Induction Variable Simplification
168; GCN-O1-NEXT:         Delete dead loops
169; GCN-O1-NEXT:         Unroll loops
170; GCN-O1-NEXT:       SROA
171; GCN-O1-NEXT:       Phi Values Analysis
172; GCN-O1-NEXT:       Function Alias Analysis Results
173; GCN-O1-NEXT:       Memory Dependence Analysis
174; GCN-O1-NEXT:       MemCpy Optimization
175; GCN-O1-NEXT:       Sparse Conditional Constant Propagation
176; GCN-O1-NEXT:       Demanded bits analysis
177; GCN-O1-NEXT:       Bit-Tracking Dead Code Elimination
178; GCN-O1-NEXT:       Function Alias Analysis Results
179; GCN-O1-NEXT:       Lazy Branch Probability Analysis
180; GCN-O1-NEXT:       Lazy Block Frequency Analysis
181; GCN-O1-NEXT:       Optimization Remark Emitter
182; GCN-O1-NEXT:       Combine redundant instructions
183; GCN-O1-NEXT:       Post-Dominator Tree Construction
184; GCN-O1-NEXT:       Aggressive Dead Code Elimination
185; GCN-O1-NEXT:       Simplify the CFG
186; GCN-O1-NEXT:       Dominator Tree Construction
187; GCN-O1-NEXT:       Basic Alias Analysis (stateless AA impl)
188; GCN-O1-NEXT:       Function Alias Analysis Results
189; GCN-O1-NEXT:       Natural Loop Information
190; GCN-O1-NEXT:       Lazy Branch Probability Analysis
191; GCN-O1-NEXT:       Lazy Block Frequency Analysis
192; GCN-O1-NEXT:       Optimization Remark Emitter
193; GCN-O1-NEXT:       Combine redundant instructions
194; GCN-O1-NEXT:     A No-Op Barrier Pass
195; GCN-O1-NEXT:     CallGraph Construction
196; GCN-O1-NEXT:     Deduce function attributes in RPO
197; GCN-O1-NEXT:     Global Variable Optimizer
198; GCN-O1-NEXT:       FunctionPass Manager
199; GCN-O1-NEXT:         Dominator Tree Construction
200; GCN-O1-NEXT:         Natural Loop Information
201; GCN-O1-NEXT:         Post-Dominator Tree Construction
202; GCN-O1-NEXT:         Branch Probability Analysis
203; GCN-O1-NEXT:         Block Frequency Analysis
204; GCN-O1-NEXT:     Dead Global Elimination
205; GCN-O1-NEXT:     CallGraph Construction
206; GCN-O1-NEXT:     Globals Alias Analysis
207; GCN-O1-NEXT:     FunctionPass Manager
208; GCN-O1-NEXT:       Dominator Tree Construction
209; GCN-O1-NEXT:       Float to int
210; GCN-O1-NEXT:       Lower constant intrinsics
211; GCN-O1-NEXT:       Dominator Tree Construction
212; GCN-O1-NEXT:       Natural Loop Information
213; GCN-O1-NEXT:       Canonicalize natural loops
214; GCN-O1-NEXT:       LCSSA Verifier
215; GCN-O1-NEXT:       Loop-Closed SSA Form Pass
216; GCN-O1-NEXT:       Basic Alias Analysis (stateless AA impl)
217; GCN-O1-NEXT:       Function Alias Analysis Results
218; GCN-O1-NEXT:       Scalar Evolution Analysis
219; GCN-O1-NEXT:       Loop Pass Manager
220; GCN-O1-NEXT:         Rotate Loops
221; GCN-O1-NEXT:       Loop Access Analysis
222; GCN-O1-NEXT:       Lazy Branch Probability Analysis
223; GCN-O1-NEXT:       Lazy Block Frequency Analysis
224; GCN-O1-NEXT:       Optimization Remark Emitter
225; GCN-O1-NEXT:       Loop Distribution
226; GCN-O1-NEXT:       Post-Dominator Tree Construction
227; GCN-O1-NEXT:       Branch Probability Analysis
228; GCN-O1-NEXT:       Block Frequency Analysis
229; GCN-O1-NEXT:       Scalar Evolution Analysis
230; GCN-O1-NEXT:       Basic Alias Analysis (stateless AA impl)
231; GCN-O1-NEXT:       Function Alias Analysis Results
232; GCN-O1-NEXT:       Loop Access Analysis
233; GCN-O1-NEXT:       Demanded bits analysis
234; GCN-O1-NEXT:       Lazy Branch Probability Analysis
235; GCN-O1-NEXT:       Lazy Block Frequency Analysis
236; GCN-O1-NEXT:       Optimization Remark Emitter
237; GCN-O1-NEXT:       Inject TLI Mappings
238; GCN-O1-NEXT:       Loop Vectorization
239; GCN-O1-NEXT:       Canonicalize natural loops
240; GCN-O1-NEXT:       Scalar Evolution Analysis
241; GCN-O1-NEXT:       Function Alias Analysis Results
242; GCN-O1-NEXT:       Loop Access Analysis
243; GCN-O1-NEXT:       Lazy Branch Probability Analysis
244; GCN-O1-NEXT:       Lazy Block Frequency Analysis
245; GCN-O1-NEXT:       Loop Load Elimination
246; GCN-O1-NEXT:       Basic Alias Analysis (stateless AA impl)
247; GCN-O1-NEXT:       Function Alias Analysis Results
248; GCN-O1-NEXT:       Lazy Branch Probability Analysis
249; GCN-O1-NEXT:       Lazy Block Frequency Analysis
250; GCN-O1-NEXT:       Optimization Remark Emitter
251; GCN-O1-NEXT:       Combine redundant instructions
252; GCN-O1-NEXT:       Simplify the CFG
253; GCN-O1-NEXT:       Dominator Tree Construction
254; GCN-O1-NEXT:       Optimize scalar/vector ops
255; GCN-O1-NEXT:       Basic Alias Analysis (stateless AA impl)
256; GCN-O1-NEXT:       Function Alias Analysis Results
257; GCN-O1-NEXT:       Natural Loop Information
258; GCN-O1-NEXT:       Lazy Branch Probability Analysis
259; GCN-O1-NEXT:       Lazy Block Frequency Analysis
260; GCN-O1-NEXT:       Optimization Remark Emitter
261; GCN-O1-NEXT:       Combine redundant instructions
262; GCN-O1-NEXT:       Canonicalize natural loops
263; GCN-O1-NEXT:       LCSSA Verifier
264; GCN-O1-NEXT:       Loop-Closed SSA Form Pass
265; GCN-O1-NEXT:       Scalar Evolution Analysis
266; GCN-O1-NEXT:       Loop Pass Manager
267; GCN-O1-NEXT:         Unroll loops
268; GCN-O1-NEXT:       Lazy Branch Probability Analysis
269; GCN-O1-NEXT:       Lazy Block Frequency Analysis
270; GCN-O1-NEXT:       Optimization Remark Emitter
271; GCN-O1-NEXT:       Combine redundant instructions
272; GCN-O1-NEXT:       Memory SSA
273; GCN-O1-NEXT:       Canonicalize natural loops
274; GCN-O1-NEXT:       LCSSA Verifier
275; GCN-O1-NEXT:       Loop-Closed SSA Form Pass
276; GCN-O1-NEXT:       Scalar Evolution Analysis
277; GCN-O1-NEXT:       Lazy Branch Probability Analysis
278; GCN-O1-NEXT:       Lazy Block Frequency Analysis
279; GCN-O1-NEXT:       Loop Pass Manager
280; GCN-O1-NEXT:         Loop Invariant Code Motion
281; GCN-O1-NEXT:       Optimization Remark Emitter
282; GCN-O1-NEXT:       Warn about non-applied transformations
283; GCN-O1-NEXT:       Alignment from assumptions
284; GCN-O1-NEXT:     Strip Unused Function Prototypes
285; GCN-O1-NEXT:     Call Graph Profile
286; GCN-O1-NEXT:       FunctionPass Manager
287; GCN-O1-NEXT:         Dominator Tree Construction
288; GCN-O1-NEXT:         Natural Loop Information
289; GCN-O1-NEXT:         Lazy Branch Probability Analysis
290; GCN-O1-NEXT:         Lazy Block Frequency Analysis
291; GCN-O1-NEXT:     FunctionPass Manager
292; GCN-O1-NEXT:       Dominator Tree Construction
293; GCN-O1-NEXT:       Natural Loop Information
294; GCN-O1-NEXT:       Post-Dominator Tree Construction
295; GCN-O1-NEXT:       Branch Probability Analysis
296; GCN-O1-NEXT:       Block Frequency Analysis
297; GCN-O1-NEXT:       Canonicalize natural loops
298; GCN-O1-NEXT:       LCSSA Verifier
299; GCN-O1-NEXT:       Loop-Closed SSA Form Pass
300; GCN-O1-NEXT:       Basic Alias Analysis (stateless AA impl)
301; GCN-O1-NEXT:       Function Alias Analysis Results
302; GCN-O1-NEXT:       Scalar Evolution Analysis
303; GCN-O1-NEXT:       Block Frequency Analysis
304; GCN-O1-NEXT:       Loop Pass Manager
305; GCN-O1-NEXT:         Loop Sink
306; GCN-O1-NEXT:       Lazy Branch Probability Analysis
307; GCN-O1-NEXT:       Lazy Block Frequency Analysis
308; GCN-O1-NEXT:       Optimization Remark Emitter
309; GCN-O1-NEXT:       Remove redundant instructions
310; GCN-O1-NEXT:       Hoist/decompose integer division and remainder
311; GCN-O1-NEXT:       Simplify the CFG
312; GCN-O1-NEXT:       Annotation Remarks
313
314; GCN-O1-NEXT: Pass Arguments:
315; GCN-O1-NEXT:   FunctionPass Manager
316; GCN-O1-NEXT:     Dominator Tree Construction
317
318; GCN-O1-NEXT: Pass Arguments:
319; GCN-O1-NEXT:   FunctionPass Manager
320; GCN-O1-NEXT:     Dominator Tree Construction
321
322; GCN-O1-NEXT: Pass Arguments:
323; GCN-O1-NEXT: Target Library Information
324; GCN-O1-NEXT:   FunctionPass Manager
325; GCN-O1-NEXT:     Dominator Tree Construction
326; GCN-O1-NEXT:     Natural Loop Information
327; GCN-O1-NEXT:     Post-Dominator Tree Construction
328; GCN-O1-NEXT:     Branch Probability Analysis
329; GCN-O1-NEXT:     Block Frequency Analysis
330
331; GCN-O1-NEXT: Pass Arguments:
332; GCN-O1-NEXT: Target Library Information
333; GCN-O1-NEXT:   FunctionPass Manager
334; GCN-O1-NEXT:     Dominator Tree Construction
335; GCN-O1-NEXT:     Natural Loop Information
336; GCN-O1-NEXT:     Post-Dominator Tree Construction
337; GCN-O1-NEXT:     Branch Probability Analysis
338; GCN-O1-NEXT:     Block Frequency Analysis
339
340
341; GCN-O2:      Pass Arguments:
342; GCN-O2-NEXT: Target Transform Information
343; GCN-O2-NEXT: AMDGPU Address space based Alias Analysis
344; GCN-O2-NEXT: External Alias Analysis
345; GCN-O2-NEXT: Assumption Cache Tracker
346; GCN-O2-NEXT: Target Library Information
347; GCN-O2-NEXT: Type-Based Alias Analysis
348; GCN-O2-NEXT: Scoped NoAlias Alias Analysis
349; GCN-O2-NEXT:   FunctionPass Manager
350; GCN-O2-NEXT:     Early propagate attributes from kernels to functions
351; GCN-O2-NEXT:     Replace builtin math calls with that native versions.
352; GCN-O2-NEXT:     Dominator Tree Construction
353; GCN-O2-NEXT:     Basic Alias Analysis (stateless AA impl)
354; GCN-O2-NEXT:     Function Alias Analysis Results
355; GCN-O2-NEXT:     Simplify well-known AMD library calls
356; GCN-O2-NEXT:     Instrument function entry/exit with calls to e.g. mcount() (pre inlining)
357; GCN-O2-NEXT:     Simplify the CFG
358; GCN-O2-NEXT:     Dominator Tree Construction
359; GCN-O2-NEXT:     SROA
360; GCN-O2-NEXT:     Early CSE
361; GCN-O2-NEXT:     Lower 'expect' Intrinsics
362
363; GCN-O2-NEXT: Pass Arguments:
364; GCN-O2-NEXT: Target Library Information
365; GCN-O2-NEXT: Target Transform Information
366; GCN-O2-NEXT: Target Pass Configuration
367; GCN-O2-NEXT: Type-Based Alias Analysis
368; GCN-O2-NEXT: Scoped NoAlias Alias Analysis
369; GCN-O2-NEXT: AMDGPU Address space based Alias Analysis
370; GCN-O2-NEXT: External Alias Analysis
371; GCN-O2-NEXT: Assumption Cache Tracker
372; GCN-O2-NEXT: Profile summary info
373; GCN-O2-NEXT:   ModulePass Manager
374; GCN-O2-NEXT:     Annotation2Metadata
375; GCN-O2-NEXT:     Force set function attributes
376; GCN-O2-NEXT:     Infer set function attributes
377; GCN-O2-NEXT:     Unify multiple OpenCL metadata due to linking
378; GCN-O2-NEXT:     AMDGPU Printf lowering
379; GCN-O2-NEXT:       FunctionPass Manager
380; GCN-O2-NEXT:         Dominator Tree Construction
381; GCN-O2-NEXT:     Late propagate attributes from kernels to functions
382; GCN-O2-NEXT:     Interprocedural Sparse Conditional Constant Propagation
383; GCN-O2-NEXT:       FunctionPass Manager
384; GCN-O2-NEXT:         Dominator Tree Construction
385; GCN-O2-NEXT:     Called Value Propagation
386; GCN-O2-NEXT:     Global Variable Optimizer
387; GCN-O2-NEXT:       FunctionPass Manager
388; GCN-O2-NEXT:         Dominator Tree Construction
389; GCN-O2-NEXT:         Natural Loop Information
390; GCN-O2-NEXT:         Post-Dominator Tree Construction
391; GCN-O2-NEXT:         Branch Probability Analysis
392; GCN-O2-NEXT:         Block Frequency Analysis
393; GCN-O2-NEXT:     FunctionPass Manager
394; GCN-O2-NEXT:       Dominator Tree Construction
395; GCN-O2-NEXT:       Promote Memory to Register
396; GCN-O2-NEXT:     Dead Argument Elimination
397; GCN-O2-NEXT:     FunctionPass Manager
398; GCN-O2-NEXT:       Dominator Tree Construction
399; GCN-O2-NEXT:       Basic Alias Analysis (stateless AA impl)
400; GCN-O2-NEXT:       Function Alias Analysis Results
401; GCN-O2-NEXT:       Natural Loop Information
402; GCN-O2-NEXT:       Lazy Branch Probability Analysis
403; GCN-O2-NEXT:       Lazy Block Frequency Analysis
404; GCN-O2-NEXT:       Optimization Remark Emitter
405; GCN-O2-NEXT:       Combine redundant instructions
406; GCN-O2-NEXT:       Simplify the CFG
407; GCN-O2-NEXT:     CallGraph Construction
408; GCN-O2-NEXT:     Globals Alias Analysis
409; GCN-O2-NEXT:     Call Graph SCC Pass Manager
410; GCN-O2-NEXT:       Remove unused exception handling info
411; GCN-O2-NEXT:       Function Integration/Inlining
412; GCN-O2-NEXT:       OpenMP specific optimizations
413; GCN-O2-NEXT:       Deduce function attributes
414; GCN-O2-NEXT:       FunctionPass Manager
415; GCN-O2-NEXT:         Infer address spaces
416; GCN-O2-NEXT:     AMDGPU Kernel Attributes
417; GCN-O2-NEXT:     FunctionPass Manager
418; GCN-O2-NEXT:       AMDGPU Promote Alloca to vector
419; GCN-O2-NEXT:       Dominator Tree Construction
420; GCN-O2-NEXT:       SROA
421; GCN-O2-NEXT:       Basic Alias Analysis (stateless AA impl)
422; GCN-O2-NEXT:       Function Alias Analysis Results
423; GCN-O2-NEXT:       Memory SSA
424; GCN-O2-NEXT:       Early CSE w/ MemorySSA
425; GCN-O2-NEXT:       Speculatively execute instructions if target has divergent branches
426; GCN-O2-NEXT:       Function Alias Analysis Results
427; GCN-O2-NEXT:       Lazy Value Information Analysis
428; GCN-O2-NEXT:       Jump Threading
429; GCN-O2-NEXT:       Value Propagation
430; GCN-O2-NEXT:       Simplify the CFG
431; GCN-O2-NEXT:       Dominator Tree Construction
432; GCN-O2-NEXT:       Basic Alias Analysis (stateless AA impl)
433; GCN-O2-NEXT:       Function Alias Analysis Results
434; GCN-O2-NEXT:       Natural Loop Information
435; GCN-O2-NEXT:       Lazy Branch Probability Analysis
436; GCN-O2-NEXT:       Lazy Block Frequency Analysis
437; GCN-O2-NEXT:       Optimization Remark Emitter
438; GCN-O2-NEXT:       Combine redundant instructions
439; GCN-O2-NEXT:       Conditionally eliminate dead library calls
440; GCN-O2-NEXT:       Natural Loop Information
441; GCN-O2-NEXT:       Post-Dominator Tree Construction
442; GCN-O2-NEXT:       Branch Probability Analysis
443; GCN-O2-NEXT:       Block Frequency Analysis
444; GCN-O2-NEXT:       Lazy Branch Probability Analysis
445; GCN-O2-NEXT:       Lazy Block Frequency Analysis
446; GCN-O2-NEXT:       Optimization Remark Emitter
447; GCN-O2-NEXT:       PGOMemOPSize
448; GCN-O2-NEXT:       Basic Alias Analysis (stateless AA impl)
449; GCN-O2-NEXT:       Function Alias Analysis Results
450; GCN-O2-NEXT:       Natural Loop Information
451; GCN-O2-NEXT:       Lazy Branch Probability Analysis
452; GCN-O2-NEXT:       Lazy Block Frequency Analysis
453; GCN-O2-NEXT:       Optimization Remark Emitter
454; GCN-O2-NEXT:       Tail Call Elimination
455; GCN-O2-NEXT:       Simplify the CFG
456; GCN-O2-NEXT:       Reassociate expressions
457; GCN-O2-NEXT:       Dominator Tree Construction
458; GCN-O2-NEXT:       Natural Loop Information
459; GCN-O2-NEXT:       Canonicalize natural loops
460; GCN-O2-NEXT:       LCSSA Verifier
461; GCN-O2-NEXT:       Loop-Closed SSA Form Pass
462; GCN-O2-NEXT:       Basic Alias Analysis (stateless AA impl)
463; GCN-O2-NEXT:       Function Alias Analysis Results
464; GCN-O2-NEXT:       Scalar Evolution Analysis
465; GCN-O2-NEXT:       Loop Pass Manager
466; GCN-O2-NEXT:         Rotate Loops
467; GCN-O2-NEXT:       Memory SSA
468; GCN-O2-NEXT:       Lazy Branch Probability Analysis
469; GCN-O2-NEXT:       Lazy Block Frequency Analysis
470; GCN-O2-NEXT:       Loop Pass Manager
471; GCN-O2-NEXT:         Loop Invariant Code Motion
472; GCN-O2-NEXT:       Post-Dominator Tree Construction
473; GCN-O2-NEXT:       Legacy Divergence Analysis
474; GCN-O2-NEXT:       Loop Pass Manager
475; GCN-O2-NEXT:         Unswitch loops
476; GCN-O2-NEXT:       Simplify the CFG
477; GCN-O2-NEXT:       Dominator Tree Construction
478; GCN-O2-NEXT:       Basic Alias Analysis (stateless AA impl)
479; GCN-O2-NEXT:       Function Alias Analysis Results
480; GCN-O2-NEXT:       Natural Loop Information
481; GCN-O2-NEXT:       Lazy Branch Probability Analysis
482; GCN-O2-NEXT:       Lazy Block Frequency Analysis
483; GCN-O2-NEXT:       Optimization Remark Emitter
484; GCN-O2-NEXT:       Combine redundant instructions
485; GCN-O2-NEXT:       Canonicalize natural loops
486; GCN-O2-NEXT:       LCSSA Verifier
487; GCN-O2-NEXT:       Loop-Closed SSA Form Pass
488; GCN-O2-NEXT:       Scalar Evolution Analysis
489; GCN-O2-NEXT:       Loop Pass Manager
490; GCN-O2-NEXT:         Recognize loop idioms
491; GCN-O2-NEXT:         Induction Variable Simplification
492; GCN-O2-NEXT:         Delete dead loops
493; GCN-O2-NEXT:         Unroll loops
494; GCN-O2-NEXT:       SROA
495; GCN-O2-NEXT:       Function Alias Analysis Results
496; GCN-O2-NEXT:       MergedLoadStoreMotion
497; GCN-O2-NEXT:       Phi Values Analysis
498; GCN-O2-NEXT:       Function Alias Analysis Results
499; GCN-O2-NEXT:       Memory Dependence Analysis
500; GCN-O2-NEXT:       Lazy Branch Probability Analysis
501; GCN-O2-NEXT:       Lazy Block Frequency Analysis
502; GCN-O2-NEXT:       Optimization Remark Emitter
503; GCN-O2-NEXT:       Global Value Numbering
504; GCN-O2-NEXT:       Phi Values Analysis
505; GCN-O2-NEXT:       Basic Alias Analysis (stateless AA impl)
506; GCN-O2-NEXT:       Function Alias Analysis Results
507; GCN-O2-NEXT:       Memory Dependence Analysis
508; GCN-O2-NEXT:       MemCpy Optimization
509; GCN-O2-NEXT:       Sparse Conditional Constant Propagation
510; GCN-O2-NEXT:       Demanded bits analysis
511; GCN-O2-NEXT:       Bit-Tracking Dead Code Elimination
512; GCN-O2-NEXT:       Function Alias Analysis Results
513; GCN-O2-NEXT:       Lazy Branch Probability Analysis
514; GCN-O2-NEXT:       Lazy Block Frequency Analysis
515; GCN-O2-NEXT:       Optimization Remark Emitter
516; GCN-O2-NEXT:       Combine redundant instructions
517; GCN-O2-NEXT:       Lazy Value Information Analysis
518; GCN-O2-NEXT:       Jump Threading
519; GCN-O2-NEXT:       Value Propagation
520; GCN-O2-NEXT:       Post-Dominator Tree Construction
521; GCN-O2-NEXT:       Aggressive Dead Code Elimination
522; GCN-O2-NEXT:       Basic Alias Analysis (stateless AA impl)
523; GCN-O2-NEXT:       Function Alias Analysis Results
524; GCN-O2-NEXT:       Memory SSA
525; GCN-O2-NEXT:       Dead Store Elimination
526; GCN-O2-NEXT:       Natural Loop Information
527; GCN-O2-NEXT:       Canonicalize natural loops
528; GCN-O2-NEXT:       LCSSA Verifier
529; GCN-O2-NEXT:       Loop-Closed SSA Form Pass
530; GCN-O2-NEXT:       Function Alias Analysis Results
531; GCN-O2-NEXT:       Scalar Evolution Analysis
532; GCN-O2-NEXT:       Lazy Branch Probability Analysis
533; GCN-O2-NEXT:       Lazy Block Frequency Analysis
534; GCN-O2-NEXT:       Loop Pass Manager
535; GCN-O2-NEXT:         Loop Invariant Code Motion
536; GCN-O2-NEXT:       Simplify the CFG
537; GCN-O2-NEXT:       Dominator Tree Construction
538; GCN-O2-NEXT:       Basic Alias Analysis (stateless AA impl)
539; GCN-O2-NEXT:       Function Alias Analysis Results
540; GCN-O2-NEXT:       Natural Loop Information
541; GCN-O2-NEXT:       Lazy Branch Probability Analysis
542; GCN-O2-NEXT:       Lazy Block Frequency Analysis
543; GCN-O2-NEXT:       Optimization Remark Emitter
544; GCN-O2-NEXT:       Combine redundant instructions
545; GCN-O2-NEXT:     A No-Op Barrier Pass
546; GCN-O2-NEXT:     Eliminate Available Externally Globals
547; GCN-O2-NEXT:     CallGraph Construction
548; GCN-O2-NEXT:     Deduce function attributes in RPO
549; GCN-O2-NEXT:     Global Variable Optimizer
550; GCN-O2-NEXT:       FunctionPass Manager
551; GCN-O2-NEXT:         Dominator Tree Construction
552; GCN-O2-NEXT:         Natural Loop Information
553; GCN-O2-NEXT:         Post-Dominator Tree Construction
554; GCN-O2-NEXT:         Branch Probability Analysis
555; GCN-O2-NEXT:         Block Frequency Analysis
556; GCN-O2-NEXT:     Dead Global Elimination
557; GCN-O2-NEXT:     CallGraph Construction
558; GCN-O2-NEXT:     Globals Alias Analysis
559; GCN-O2-NEXT:     FunctionPass Manager
560; GCN-O2-NEXT:       Dominator Tree Construction
561; GCN-O2-NEXT:       Float to int
562; GCN-O2-NEXT:       Lower constant intrinsics
563; GCN-O2-NEXT:       Dominator Tree Construction
564; GCN-O2-NEXT:       Natural Loop Information
565; GCN-O2-NEXT:       Canonicalize natural loops
566; GCN-O2-NEXT:       LCSSA Verifier
567; GCN-O2-NEXT:       Loop-Closed SSA Form Pass
568; GCN-O2-NEXT:       Basic Alias Analysis (stateless AA impl)
569; GCN-O2-NEXT:       Function Alias Analysis Results
570; GCN-O2-NEXT:       Scalar Evolution Analysis
571; GCN-O2-NEXT:       Loop Pass Manager
572; GCN-O2-NEXT:         Rotate Loops
573; GCN-O2-NEXT:       Loop Access Analysis
574; GCN-O2-NEXT:       Lazy Branch Probability Analysis
575; GCN-O2-NEXT:       Lazy Block Frequency Analysis
576; GCN-O2-NEXT:       Optimization Remark Emitter
577; GCN-O2-NEXT:       Loop Distribution
578; GCN-O2-NEXT:       Post-Dominator Tree Construction
579; GCN-O2-NEXT:       Branch Probability Analysis
580; GCN-O2-NEXT:       Block Frequency Analysis
581; GCN-O2-NEXT:       Scalar Evolution Analysis
582; GCN-O2-NEXT:       Basic Alias Analysis (stateless AA impl)
583; GCN-O2-NEXT:       Function Alias Analysis Results
584; GCN-O2-NEXT:       Loop Access Analysis
585; GCN-O2-NEXT:       Demanded bits analysis
586; GCN-O2-NEXT:       Lazy Branch Probability Analysis
587; GCN-O2-NEXT:       Lazy Block Frequency Analysis
588; GCN-O2-NEXT:       Optimization Remark Emitter
589; GCN-O2-NEXT:       Inject TLI Mappings
590; GCN-O2-NEXT:       Loop Vectorization
591; GCN-O2-NEXT:       Canonicalize natural loops
592; GCN-O2-NEXT:       Scalar Evolution Analysis
593; GCN-O2-NEXT:       Function Alias Analysis Results
594; GCN-O2-NEXT:       Loop Access Analysis
595; GCN-O2-NEXT:       Lazy Branch Probability Analysis
596; GCN-O2-NEXT:       Lazy Block Frequency Analysis
597; GCN-O2-NEXT:       Loop Load Elimination
598; GCN-O2-NEXT:       Basic Alias Analysis (stateless AA impl)
599; GCN-O2-NEXT:       Function Alias Analysis Results
600; GCN-O2-NEXT:       Lazy Branch Probability Analysis
601; GCN-O2-NEXT:       Lazy Block Frequency Analysis
602; GCN-O2-NEXT:       Optimization Remark Emitter
603; GCN-O2-NEXT:       Combine redundant instructions
604; GCN-O2-NEXT:       Simplify the CFG
605; GCN-O2-NEXT:       Dominator Tree Construction
606; GCN-O2-NEXT:       Natural Loop Information
607; GCN-O2-NEXT:       Scalar Evolution Analysis
608; GCN-O2-NEXT:       Basic Alias Analysis (stateless AA impl)
609; GCN-O2-NEXT:       Function Alias Analysis Results
610; GCN-O2-NEXT:       Demanded bits analysis
611; GCN-O2-NEXT:       Lazy Branch Probability Analysis
612; GCN-O2-NEXT:       Lazy Block Frequency Analysis
613; GCN-O2-NEXT:       Optimization Remark Emitter
614; GCN-O2-NEXT:       Inject TLI Mappings
615; GCN-O2-NEXT:       SLP Vectorizer
616; GCN-O2-NEXT:       Optimize scalar/vector ops
617; GCN-O2-NEXT:       Optimization Remark Emitter
618; GCN-O2-NEXT:       Combine redundant instructions
619; GCN-O2-NEXT:       Canonicalize natural loops
620; GCN-O2-NEXT:       LCSSA Verifier
621; GCN-O2-NEXT:       Loop-Closed SSA Form Pass
622; GCN-O2-NEXT:       Scalar Evolution Analysis
623; GCN-O2-NEXT:       Loop Pass Manager
624; GCN-O2-NEXT:         Unroll loops
625; GCN-O2-NEXT:       Lazy Branch Probability Analysis
626; GCN-O2-NEXT:       Lazy Block Frequency Analysis
627; GCN-O2-NEXT:       Optimization Remark Emitter
628; GCN-O2-NEXT:       Combine redundant instructions
629; GCN-O2-NEXT:       Memory SSA
630; GCN-O2-NEXT:       Canonicalize natural loops
631; GCN-O2-NEXT:       LCSSA Verifier
632; GCN-O2-NEXT:       Loop-Closed SSA Form Pass
633; GCN-O2-NEXT:       Scalar Evolution Analysis
634; GCN-O2-NEXT:       Lazy Branch Probability Analysis
635; GCN-O2-NEXT:       Lazy Block Frequency Analysis
636; GCN-O2-NEXT:       Loop Pass Manager
637; GCN-O2-NEXT:         Loop Invariant Code Motion
638; GCN-O2-NEXT:       Optimization Remark Emitter
639; GCN-O2-NEXT:       Warn about non-applied transformations
640; GCN-O2-NEXT:       Alignment from assumptions
641; GCN-O2-NEXT:     Strip Unused Function Prototypes
642; GCN-O2-NEXT:     Dead Global Elimination
643; GCN-O2-NEXT:     Merge Duplicate Global Constants
644; GCN-O2-NEXT:     Call Graph Profile
645; GCN-O2-NEXT:       FunctionPass Manager
646; GCN-O2-NEXT:         Dominator Tree Construction
647; GCN-O2-NEXT:         Natural Loop Information
648; GCN-O2-NEXT:         Lazy Branch Probability Analysis
649; GCN-O2-NEXT:         Lazy Block Frequency Analysis
650; GCN-O2-NEXT:     FunctionPass Manager
651; GCN-O2-NEXT:       Dominator Tree Construction
652; GCN-O2-NEXT:       Natural Loop Information
653; GCN-O2-NEXT:       Post-Dominator Tree Construction
654; GCN-O2-NEXT:       Branch Probability Analysis
655; GCN-O2-NEXT:       Block Frequency Analysis
656; GCN-O2-NEXT:       Canonicalize natural loops
657; GCN-O2-NEXT:       LCSSA Verifier
658; GCN-O2-NEXT:       Loop-Closed SSA Form Pass
659; GCN-O2-NEXT:       Basic Alias Analysis (stateless AA impl)
660; GCN-O2-NEXT:       Function Alias Analysis Results
661; GCN-O2-NEXT:       Scalar Evolution Analysis
662; GCN-O2-NEXT:       Block Frequency Analysis
663; GCN-O2-NEXT:       Loop Pass Manager
664; GCN-O2-NEXT:         Loop Sink
665; GCN-O2-NEXT:       Lazy Branch Probability Analysis
666; GCN-O2-NEXT:       Lazy Block Frequency Analysis
667; GCN-O2-NEXT:       Optimization Remark Emitter
668; GCN-O2-NEXT:       Remove redundant instructions
669; GCN-O2-NEXT:       Hoist/decompose integer division and remainder
670; GCN-O2-NEXT:       Simplify the CFG
671; GCN-O2-NEXT:       Annotation Remarks
672
673; GCN-O2-NEXT: Pass Arguments:
674; GCN-O2-NEXT:   FunctionPass Manager
675; GCN-O2-NEXT:     Dominator Tree Construction
676
677; GCN-O2-NEXT: Pass Arguments:
678; GCN-O2-NEXT:   FunctionPass Manager
679; GCN-O2-NEXT:     Dominator Tree Construction
680
681; GCN-O2-NEXT: Pass Arguments:
682; GCN-O2-NEXT: Target Library Information
683; GCN-O2-NEXT:   FunctionPass Manager
684; GCN-O2-NEXT:     Dominator Tree Construction
685; GCN-O2-NEXT:     Natural Loop Information
686; GCN-O2-NEXT:     Post-Dominator Tree Construction
687; GCN-O2-NEXT:     Branch Probability Analysis
688; GCN-O2-NEXT:     Block Frequency Analysis
689
690; GCN-O2-NEXT: Pass Arguments:
691; GCN-O2-NEXT: Target Library Information
692; GCN-O2-NEXT:   FunctionPass Manager
693; GCN-O2-NEXT:     Dominator Tree Construction
694; GCN-O2-NEXT:     Natural Loop Information
695; GCN-O2-NEXT:     Post-Dominator Tree Construction
696; GCN-O2-NEXT:     Branch Probability Analysis
697; GCN-O2-NEXT:     Block Frequency Analysis
698
699
700; GCN-O3:      Pass Arguments:
701; GCN-O3-NEXT: Target Transform Information
702; GCN-O3-NEXT: AMDGPU Address space based Alias Analysis
703; GCN-O3-NEXT: External Alias Analysis
704; GCN-O3-NEXT: Assumption Cache Tracker
705; GCN-O3-NEXT: Target Library Information
706; GCN-O3-NEXT: Type-Based Alias Analysis
707; GCN-O3-NEXT: Scoped NoAlias Alias Analysis
708; GCN-O3-NEXT:   FunctionPass Manager
709; GCN-O3-NEXT:     Early propagate attributes from kernels to functions
710; GCN-O3-NEXT:     Replace builtin math calls with that native versions.
711; GCN-O3-NEXT:     Dominator Tree Construction
712; GCN-O3-NEXT:     Basic Alias Analysis (stateless AA impl)
713; GCN-O3-NEXT:     Function Alias Analysis Results
714; GCN-O3-NEXT:     Simplify well-known AMD library calls
715; GCN-O3-NEXT:     Instrument function entry/exit with calls to e.g. mcount() (pre inlining)
716; GCN-O3-NEXT:     Simplify the CFG
717; GCN-O3-NEXT:     Dominator Tree Construction
718; GCN-O3-NEXT:     SROA
719; GCN-O3-NEXT:     Early CSE
720; GCN-O3-NEXT:     Lower 'expect' Intrinsics
721
722; GCN-O3-NEXT: Pass Arguments:
723; GCN-O3-NEXT: Target Library Information
724; GCN-O3-NEXT: Target Transform Information
725; GCN-O3-NEXT: Target Pass Configuration
726; GCN-O3-NEXT: Type-Based Alias Analysis
727; GCN-O3-NEXT: Scoped NoAlias Alias Analysis
728; GCN-O3-NEXT: AMDGPU Address space based Alias Analysis
729; GCN-O3-NEXT: External Alias Analysis
730; GCN-O3-NEXT: Assumption Cache Tracker
731; GCN-O3-NEXT: Profile summary info
732; GCN-O3-NEXT:   ModulePass Manager
733; GCN-O3-NEXT:     Annotation2Metadata
734; GCN-O3-NEXT:     Force set function attributes
735; GCN-O3-NEXT:     Infer set function attributes
736; GCN-O3-NEXT:     Unify multiple OpenCL metadata due to linking
737; GCN-O3-NEXT:     AMDGPU Printf lowering
738; GCN-O3-NEXT:       FunctionPass Manager
739; GCN-O3-NEXT:         Dominator Tree Construction
740; GCN-O3-NEXT:     Late propagate attributes from kernels to functions
741; GCN-O3-NEXT:     FunctionPass Manager
742; GCN-O3-NEXT:       Dominator Tree Construction
743; GCN-O3-NEXT:       Call-site splitting
744; GCN-O3-NEXT:     Interprocedural Sparse Conditional Constant Propagation
745; GCN-O3-NEXT:       FunctionPass Manager
746; GCN-O3-NEXT:         Dominator Tree Construction
747; GCN-O3-NEXT:     Called Value Propagation
748; GCN-O3-NEXT:     Global Variable Optimizer
749; GCN-O3-NEXT:       FunctionPass Manager
750; GCN-O3-NEXT:         Dominator Tree Construction
751; GCN-O3-NEXT:         Natural Loop Information
752; GCN-O3-NEXT:         Post-Dominator Tree Construction
753; GCN-O3-NEXT:         Branch Probability Analysis
754; GCN-O3-NEXT:         Block Frequency Analysis
755; GCN-O3-NEXT:     FunctionPass Manager
756; GCN-O3-NEXT:       Dominator Tree Construction
757; GCN-O3-NEXT:       Promote Memory to Register
758; GCN-O3-NEXT:     Dead Argument Elimination
759; GCN-O3-NEXT:     FunctionPass Manager
760; GCN-O3-NEXT:       Dominator Tree Construction
761; GCN-O3-NEXT:       Basic Alias Analysis (stateless AA impl)
762; GCN-O3-NEXT:       Function Alias Analysis Results
763; GCN-O3-NEXT:       Natural Loop Information
764; GCN-O3-NEXT:       Lazy Branch Probability Analysis
765; GCN-O3-NEXT:       Lazy Block Frequency Analysis
766; GCN-O3-NEXT:       Optimization Remark Emitter
767; GCN-O3-NEXT:       Combine redundant instructions
768; GCN-O3-NEXT:       Simplify the CFG
769; GCN-O3-NEXT:     CallGraph Construction
770; GCN-O3-NEXT:     Globals Alias Analysis
771; GCN-O3-NEXT:     Call Graph SCC Pass Manager
772; GCN-O3-NEXT:       Remove unused exception handling info
773; GCN-O3-NEXT:       Function Integration/Inlining
774; GCN-O3-NEXT:       OpenMP specific optimizations
775; GCN-O3-NEXT:       Deduce function attributes
776; GCN-O3-NEXT:       Promote 'by reference' arguments to scalars
777; GCN-O3-NEXT:       FunctionPass Manager
778; GCN-O3-NEXT:         Infer address spaces
779; GCN-O3-NEXT:     AMDGPU Kernel Attributes
780; GCN-O3-NEXT:     FunctionPass Manager
781; GCN-O3-NEXT:       AMDGPU Promote Alloca to vector
782; GCN-O3-NEXT:       Dominator Tree Construction
783; GCN-O3-NEXT:       SROA
784; GCN-O3-NEXT:       Basic Alias Analysis (stateless AA impl)
785; GCN-O3-NEXT:       Function Alias Analysis Results
786; GCN-O3-NEXT:       Memory SSA
787; GCN-O3-NEXT:       Early CSE w/ MemorySSA
788; GCN-O3-NEXT:       Speculatively execute instructions if target has divergent branches
789; GCN-O3-NEXT:       Function Alias Analysis Results
790; GCN-O3-NEXT:       Lazy Value Information Analysis
791; GCN-O3-NEXT:       Jump Threading
792; GCN-O3-NEXT:       Value Propagation
793; GCN-O3-NEXT:       Simplify the CFG
794; GCN-O3-NEXT:       Dominator Tree Construction
795; GCN-O3-NEXT:       Combine pattern based expressions
796; GCN-O3-NEXT:       Basic Alias Analysis (stateless AA impl)
797; GCN-O3-NEXT:       Function Alias Analysis Results
798; GCN-O3-NEXT:       Natural Loop Information
799; GCN-O3-NEXT:       Lazy Branch Probability Analysis
800; GCN-O3-NEXT:       Lazy Block Frequency Analysis
801; GCN-O3-NEXT:       Optimization Remark Emitter
802; GCN-O3-NEXT:       Combine redundant instructions
803; GCN-O3-NEXT:       Conditionally eliminate dead library calls
804; GCN-O3-NEXT:       Natural Loop Information
805; GCN-O3-NEXT:       Post-Dominator Tree Construction
806; GCN-O3-NEXT:       Branch Probability Analysis
807; GCN-O3-NEXT:       Block Frequency Analysis
808; GCN-O3-NEXT:       Lazy Branch Probability Analysis
809; GCN-O3-NEXT:       Lazy Block Frequency Analysis
810; GCN-O3-NEXT:       Optimization Remark Emitter
811; GCN-O3-NEXT:       PGOMemOPSize
812; GCN-O3-NEXT:       Basic Alias Analysis (stateless AA impl)
813; GCN-O3-NEXT:       Function Alias Analysis Results
814; GCN-O3-NEXT:       Natural Loop Information
815; GCN-O3-NEXT:       Lazy Branch Probability Analysis
816; GCN-O3-NEXT:       Lazy Block Frequency Analysis
817; GCN-O3-NEXT:       Optimization Remark Emitter
818; GCN-O3-NEXT:       Tail Call Elimination
819; GCN-O3-NEXT:       Simplify the CFG
820; GCN-O3-NEXT:       Reassociate expressions
821; GCN-O3-NEXT:       Dominator Tree Construction
822; GCN-O3-NEXT:       Natural Loop Information
823; GCN-O3-NEXT:       Canonicalize natural loops
824; GCN-O3-NEXT:       LCSSA Verifier
825; GCN-O3-NEXT:       Loop-Closed SSA Form Pass
826; GCN-O3-NEXT:       Basic Alias Analysis (stateless AA impl)
827; GCN-O3-NEXT:       Function Alias Analysis Results
828; GCN-O3-NEXT:       Scalar Evolution Analysis
829; GCN-O3-NEXT:       Loop Pass Manager
830; GCN-O3-NEXT:         Rotate Loops
831; GCN-O3-NEXT:       Memory SSA
832; GCN-O3-NEXT:       Lazy Branch Probability Analysis
833; GCN-O3-NEXT:       Lazy Block Frequency Analysis
834; GCN-O3-NEXT:       Loop Pass Manager
835; GCN-O3-NEXT:         Loop Invariant Code Motion
836; GCN-O3-NEXT:       Post-Dominator Tree Construction
837; GCN-O3-NEXT:       Legacy Divergence Analysis
838; GCN-O3-NEXT:       Loop Pass Manager
839; GCN-O3-NEXT:         Unswitch loops
840; GCN-O3-NEXT:       Simplify the CFG
841; GCN-O3-NEXT:       Dominator Tree Construction
842; GCN-O3-NEXT:       Basic Alias Analysis (stateless AA impl)
843; GCN-O3-NEXT:       Function Alias Analysis Results
844; GCN-O3-NEXT:       Natural Loop Information
845; GCN-O3-NEXT:       Lazy Branch Probability Analysis
846; GCN-O3-NEXT:       Lazy Block Frequency Analysis
847; GCN-O3-NEXT:       Optimization Remark Emitter
848; GCN-O3-NEXT:       Combine redundant instructions
849; GCN-O3-NEXT:       Canonicalize natural loops
850; GCN-O3-NEXT:       LCSSA Verifier
851; GCN-O3-NEXT:       Loop-Closed SSA Form Pass
852; GCN-O3-NEXT:       Scalar Evolution Analysis
853; GCN-O3-NEXT:       Loop Pass Manager
854; GCN-O3-NEXT:         Recognize loop idioms
855; GCN-O3-NEXT:         Induction Variable Simplification
856; GCN-O3-NEXT:         Delete dead loops
857; GCN-O3-NEXT:         Unroll loops
858; GCN-O3-NEXT:       SROA
859; GCN-O3-NEXT:       Function Alias Analysis Results
860; GCN-O3-NEXT:       MergedLoadStoreMotion
861; GCN-O3-NEXT:       Phi Values Analysis
862; GCN-O3-NEXT:       Function Alias Analysis Results
863; GCN-O3-NEXT:       Memory Dependence Analysis
864; GCN-O3-NEXT:       Lazy Branch Probability Analysis
865; GCN-O3-NEXT:       Lazy Block Frequency Analysis
866; GCN-O3-NEXT:       Optimization Remark Emitter
867; GCN-O3-NEXT:       Global Value Numbering
868; GCN-O3-NEXT:       Phi Values Analysis
869; GCN-O3-NEXT:       Basic Alias Analysis (stateless AA impl)
870; GCN-O3-NEXT:       Function Alias Analysis Results
871; GCN-O3-NEXT:       Memory Dependence Analysis
872; GCN-O3-NEXT:       MemCpy Optimization
873; GCN-O3-NEXT:       Sparse Conditional Constant Propagation
874; GCN-O3-NEXT:       Demanded bits analysis
875; GCN-O3-NEXT:       Bit-Tracking Dead Code Elimination
876; GCN-O3-NEXT:       Function Alias Analysis Results
877; GCN-O3-NEXT:       Lazy Branch Probability Analysis
878; GCN-O3-NEXT:       Lazy Block Frequency Analysis
879; GCN-O3-NEXT:       Optimization Remark Emitter
880; GCN-O3-NEXT:       Combine redundant instructions
881; GCN-O3-NEXT:       Lazy Value Information Analysis
882; GCN-O3-NEXT:       Jump Threading
883; GCN-O3-NEXT:       Value Propagation
884; GCN-O3-NEXT:       Post-Dominator Tree Construction
885; GCN-O3-NEXT:       Aggressive Dead Code Elimination
886; GCN-O3-NEXT:       Basic Alias Analysis (stateless AA impl)
887; GCN-O3-NEXT:       Function Alias Analysis Results
888; GCN-O3-NEXT:       Memory SSA
889; GCN-O3-NEXT:       Dead Store Elimination
890; GCN-O3-NEXT:       Natural Loop Information
891; GCN-O3-NEXT:       Canonicalize natural loops
892; GCN-O3-NEXT:       LCSSA Verifier
893; GCN-O3-NEXT:       Loop-Closed SSA Form Pass
894; GCN-O3-NEXT:       Function Alias Analysis Results
895; GCN-O3-NEXT:       Scalar Evolution Analysis
896; GCN-O3-NEXT:       Lazy Branch Probability Analysis
897; GCN-O3-NEXT:       Lazy Block Frequency Analysis
898; GCN-O3-NEXT:       Loop Pass Manager
899; GCN-O3-NEXT:         Loop Invariant Code Motion
900; GCN-O3-NEXT:       Simplify the CFG
901; GCN-O3-NEXT:       Dominator Tree Construction
902; GCN-O3-NEXT:       Basic Alias Analysis (stateless AA impl)
903; GCN-O3-NEXT:       Function Alias Analysis Results
904; GCN-O3-NEXT:       Natural Loop Information
905; GCN-O3-NEXT:       Lazy Branch Probability Analysis
906; GCN-O3-NEXT:       Lazy Block Frequency Analysis
907; GCN-O3-NEXT:       Optimization Remark Emitter
908; GCN-O3-NEXT:       Combine redundant instructions
909; GCN-O3-NEXT:     A No-Op Barrier Pass
910; GCN-O3-NEXT:     Eliminate Available Externally Globals
911; GCN-O3-NEXT:     CallGraph Construction
912; GCN-O3-NEXT:     Deduce function attributes in RPO
913; GCN-O3-NEXT:     Global Variable Optimizer
914; GCN-O3-NEXT:       FunctionPass Manager
915; GCN-O3-NEXT:         Dominator Tree Construction
916; GCN-O3-NEXT:         Natural Loop Information
917; GCN-O3-NEXT:         Post-Dominator Tree Construction
918; GCN-O3-NEXT:         Branch Probability Analysis
919; GCN-O3-NEXT:         Block Frequency Analysis
920; GCN-O3-NEXT:     Dead Global Elimination
921; GCN-O3-NEXT:     CallGraph Construction
922; GCN-O3-NEXT:     Globals Alias Analysis
923; GCN-O3-NEXT:     FunctionPass Manager
924; GCN-O3-NEXT:       Dominator Tree Construction
925; GCN-O3-NEXT:       Float to int
926; GCN-O3-NEXT:       Lower constant intrinsics
927; GCN-O3-NEXT:       Dominator Tree Construction
928; GCN-O3-NEXT:       Natural Loop Information
929; GCN-O3-NEXT:       Canonicalize natural loops
930; GCN-O3-NEXT:       LCSSA Verifier
931; GCN-O3-NEXT:       Loop-Closed SSA Form Pass
932; GCN-O3-NEXT:       Basic Alias Analysis (stateless AA impl)
933; GCN-O3-NEXT:       Function Alias Analysis Results
934; GCN-O3-NEXT:       Scalar Evolution Analysis
935; GCN-O3-NEXT:       Loop Pass Manager
936; GCN-O3-NEXT:         Rotate Loops
937; GCN-O3-NEXT:       Loop Access Analysis
938; GCN-O3-NEXT:       Lazy Branch Probability Analysis
939; GCN-O3-NEXT:       Lazy Block Frequency Analysis
940; GCN-O3-NEXT:       Optimization Remark Emitter
941; GCN-O3-NEXT:       Loop Distribution
942; GCN-O3-NEXT:       Post-Dominator Tree Construction
943; GCN-O3-NEXT:       Branch Probability Analysis
944; GCN-O3-NEXT:       Block Frequency Analysis
945; GCN-O3-NEXT:       Scalar Evolution Analysis
946; GCN-O3-NEXT:       Basic Alias Analysis (stateless AA impl)
947; GCN-O3-NEXT:       Function Alias Analysis Results
948; GCN-O3-NEXT:       Loop Access Analysis
949; GCN-O3-NEXT:       Demanded bits analysis
950; GCN-O3-NEXT:       Lazy Branch Probability Analysis
951; GCN-O3-NEXT:       Lazy Block Frequency Analysis
952; GCN-O3-NEXT:       Optimization Remark Emitter
953; GCN-O3-NEXT:       Inject TLI Mappings
954; GCN-O3-NEXT:       Loop Vectorization
955; GCN-O3-NEXT:       Canonicalize natural loops
956; GCN-O3-NEXT:       Scalar Evolution Analysis
957; GCN-O3-NEXT:       Function Alias Analysis Results
958; GCN-O3-NEXT:       Loop Access Analysis
959; GCN-O3-NEXT:       Lazy Branch Probability Analysis
960; GCN-O3-NEXT:       Lazy Block Frequency Analysis
961; GCN-O3-NEXT:       Loop Load Elimination
962; GCN-O3-NEXT:       Basic Alias Analysis (stateless AA impl)
963; GCN-O3-NEXT:       Function Alias Analysis Results
964; GCN-O3-NEXT:       Lazy Branch Probability Analysis
965; GCN-O3-NEXT:       Lazy Block Frequency Analysis
966; GCN-O3-NEXT:       Optimization Remark Emitter
967; GCN-O3-NEXT:       Combine redundant instructions
968; GCN-O3-NEXT:       Simplify the CFG
969; GCN-O3-NEXT:       Dominator Tree Construction
970; GCN-O3-NEXT:       Natural Loop Information
971; GCN-O3-NEXT:       Scalar Evolution Analysis
972; GCN-O3-NEXT:       Basic Alias Analysis (stateless AA impl)
973; GCN-O3-NEXT:       Function Alias Analysis Results
974; GCN-O3-NEXT:       Demanded bits analysis
975; GCN-O3-NEXT:       Lazy Branch Probability Analysis
976; GCN-O3-NEXT:       Lazy Block Frequency Analysis
977; GCN-O3-NEXT:       Optimization Remark Emitter
978; GCN-O3-NEXT:       Inject TLI Mappings
979; GCN-O3-NEXT:       SLP Vectorizer
980; GCN-O3-NEXT:       Optimize scalar/vector ops
981; GCN-O3-NEXT:       Optimization Remark Emitter
982; GCN-O3-NEXT:       Combine redundant instructions
983; GCN-O3-NEXT:       Canonicalize natural loops
984; GCN-O3-NEXT:       LCSSA Verifier
985; GCN-O3-NEXT:       Loop-Closed SSA Form Pass
986; GCN-O3-NEXT:       Scalar Evolution Analysis
987; GCN-O3-NEXT:       Loop Pass Manager
988; GCN-O3-NEXT:         Unroll loops
989; GCN-O3-NEXT:       Lazy Branch Probability Analysis
990; GCN-O3-NEXT:       Lazy Block Frequency Analysis
991; GCN-O3-NEXT:       Optimization Remark Emitter
992; GCN-O3-NEXT:       Combine redundant instructions
993; GCN-O3-NEXT:       Memory SSA
994; GCN-O3-NEXT:       Canonicalize natural loops
995; GCN-O3-NEXT:       LCSSA Verifier
996; GCN-O3-NEXT:       Loop-Closed SSA Form Pass
997; GCN-O3-NEXT:       Scalar Evolution Analysis
998; GCN-O3-NEXT:       Lazy Branch Probability Analysis
999; GCN-O3-NEXT:       Lazy Block Frequency Analysis
1000; GCN-O3-NEXT:       Loop Pass Manager
1001; GCN-O3-NEXT:         Loop Invariant Code Motion
1002; GCN-O3-NEXT:       Optimization Remark Emitter
1003; GCN-O3-NEXT:       Warn about non-applied transformations
1004; GCN-O3-NEXT:       Alignment from assumptions
1005; GCN-O3-NEXT:     Strip Unused Function Prototypes
1006; GCN-O3-NEXT:     Dead Global Elimination
1007; GCN-O3-NEXT:     Merge Duplicate Global Constants
1008; GCN-O3-NEXT:     Call Graph Profile
1009; GCN-O3-NEXT:       FunctionPass Manager
1010; GCN-O3-NEXT:         Dominator Tree Construction
1011; GCN-O3-NEXT:         Natural Loop Information
1012; GCN-O3-NEXT:         Lazy Branch Probability Analysis
1013; GCN-O3-NEXT:         Lazy Block Frequency Analysis
1014; GCN-O3-NEXT:     FunctionPass Manager
1015; GCN-O3-NEXT:       Dominator Tree Construction
1016; GCN-O3-NEXT:       Natural Loop Information
1017; GCN-O3-NEXT:       Post-Dominator Tree Construction
1018; GCN-O3-NEXT:       Branch Probability Analysis
1019; GCN-O3-NEXT:       Block Frequency Analysis
1020; GCN-O3-NEXT:       Canonicalize natural loops
1021; GCN-O3-NEXT:       LCSSA Verifier
1022; GCN-O3-NEXT:       Loop-Closed SSA Form Pass
1023; GCN-O3-NEXT:       Basic Alias Analysis (stateless AA impl)
1024; GCN-O3-NEXT:       Function Alias Analysis Results
1025; GCN-O3-NEXT:       Scalar Evolution Analysis
1026; GCN-O3-NEXT:       Block Frequency Analysis
1027; GCN-O3-NEXT:       Loop Pass Manager
1028; GCN-O3-NEXT:         Loop Sink
1029; GCN-O3-NEXT:       Lazy Branch Probability Analysis
1030; GCN-O3-NEXT:       Lazy Block Frequency Analysis
1031; GCN-O3-NEXT:       Optimization Remark Emitter
1032; GCN-O3-NEXT:       Remove redundant instructions
1033; GCN-O3-NEXT:       Hoist/decompose integer division and remainder
1034; GCN-O3-NEXT:       Simplify the CFG
1035; GCN-O3-NEXT:       Annotation Remarks
1036
1037; GCN-O3-NEXT: Pass Arguments:
1038; GCN-O3-NEXT:   FunctionPass Manager
1039; GCN-O3-NEXT:     Dominator Tree Construction
1040
1041; GCN-O3-NEXT: Pass Arguments:
1042; GCN-O3-NEXT:   FunctionPass Manager
1043; GCN-O3-NEXT:     Dominator Tree Construction
1044
1045; GCN-O3-NEXT: Pass Arguments:
1046; GCN-O3-NEXT: Target Library Information
1047; GCN-O3-NEXT:   FunctionPass Manager
1048; GCN-O3-NEXT:     Dominator Tree Construction
1049; GCN-O3-NEXT:     Natural Loop Information
1050; GCN-O3-NEXT:     Post-Dominator Tree Construction
1051; GCN-O3-NEXT:     Branch Probability Analysis
1052; GCN-O3-NEXT:     Block Frequency Analysis
1053
1054; GCN-O3-NEXT: Pass Arguments:
1055; GCN-O3-NEXT: Target Library Information
1056; GCN-O3-NEXT:   FunctionPass Manager
1057; GCN-O3-NEXT:     Dominator Tree Construction
1058; GCN-O3-NEXT:     Natural Loop Information
1059; GCN-O3-NEXT:     Post-Dominator Tree Construction
1060; GCN-O3-NEXT:     Branch Probability Analysis
1061; GCN-O3-NEXT:     Block Frequency Analysis
1062
1063define void @empty() {
1064  ret void
1065}
1066