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