blob: 7c05ce0454788bd5cba69d96df0c8de142ba11d8 [file] [log] [blame]
Michael Zolotukhin1dce44e2018-03-21 22:17:31 +00001; 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
Michael Zolotukhincc839942018-03-21 22:57:33 +000022; Target Pass Configuration
23; CHECK: Type-Based Alias Analysis
Michael Zolotukhin1dce44e2018-03-21 22:17:31 +000024; 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
Alexandros Lamprineasde3ca962018-07-30 10:50:18 +000064; CHECK-NEXT: Post-Dominator Tree Construction
65; CHECK-NEXT: Function Alias Analysis Results
66; CHECK-NEXT: Memory Dependence Analysis
67; CHECK-NEXT: Early GVN Hoist
Michael Zolotukhin1dce44e2018-03-21 22:17:31 +000068; CHECK-NEXT: Speculatively execute instructions if target has divergent branches
Alexandros Lamprineasde3ca962018-07-30 10:50:18 +000069; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
Michael Zolotukhin1dce44e2018-03-21 22:17:31 +000070; CHECK-NEXT: Function Alias Analysis Results
71; CHECK-NEXT: Lazy Value Information Analysis
72; CHECK-NEXT: Jump Threading
73; CHECK-NEXT: Value Propagation
74; CHECK-NEXT: Simplify the CFG
75; CHECK-NEXT: Dominator Tree Construction
76; CHECK-NEXT: Combine pattern based expressions
77; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
78; CHECK-NEXT: Function Alias Analysis Results
79; CHECK-NEXT: Natural Loop Information
80; CHECK-NEXT: Lazy Branch Probability Analysis
81; CHECK-NEXT: Lazy Block Frequency Analysis
82; CHECK-NEXT: Optimization Remark Emitter
83; CHECK-NEXT: Combine redundant instructions
84; CHECK-NEXT: Conditionally eliminate dead library calls
85; CHECK-NEXT: Natural Loop Information
86; CHECK-NEXT: Branch Probability Analysis
87; CHECK-NEXT: Block Frequency Analysis
88; CHECK-NEXT: Lazy Branch Probability Analysis
89; CHECK-NEXT: Lazy Block Frequency Analysis
90; CHECK-NEXT: Optimization Remark Emitter
91; CHECK-NEXT: PGOMemOPSize
Michael Zolotukhin1dce44e2018-03-21 22:17:31 +000092; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
93; CHECK-NEXT: Function Alias Analysis Results
94; CHECK-NEXT: Natural Loop Information
95; CHECK-NEXT: Lazy Branch Probability Analysis
96; CHECK-NEXT: Lazy Block Frequency Analysis
97; CHECK-NEXT: Optimization Remark Emitter
98; CHECK-NEXT: Tail Call Elimination
99; CHECK-NEXT: Simplify the CFG
100; CHECK-NEXT: Reassociate expressions
101; CHECK-NEXT: Dominator Tree Construction
102; CHECK-NEXT: Natural Loop Information
103; CHECK-NEXT: Canonicalize natural loops
104; CHECK-NEXT: LCSSA Verifier
105; CHECK-NEXT: Loop-Closed SSA Form Pass
106; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
107; CHECK-NEXT: Function Alias Analysis Results
108; CHECK-NEXT: Scalar Evolution Analysis
109; CHECK-NEXT: Loop Pass Manager
110; CHECK-NEXT: Rotate Loops
111; CHECK-NEXT: Loop Invariant Code Motion
112; CHECK-NEXT: Unswitch loops
113; CHECK-NEXT: Simplify the CFG
114; CHECK-NEXT: Dominator Tree Construction
115; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
116; CHECK-NEXT: Function Alias Analysis Results
117; CHECK-NEXT: Natural Loop Information
118; CHECK-NEXT: Lazy Branch Probability Analysis
119; CHECK-NEXT: Lazy Block Frequency Analysis
120; CHECK-NEXT: Optimization Remark Emitter
121; CHECK-NEXT: Combine redundant instructions
122; CHECK-NEXT: Canonicalize natural loops
123; CHECK-NEXT: LCSSA Verifier
124; CHECK-NEXT: Loop-Closed SSA Form Pass
125; CHECK-NEXT: Scalar Evolution Analysis
126; CHECK-NEXT: Loop Pass Manager
127; CHECK-NEXT: Induction Variable Simplification
128; CHECK-NEXT: Recognize loop idioms
129; CHECK-NEXT: Delete dead loops
130; CHECK-NEXT: Unroll loops
131; CHECK-NEXT: MergedLoadStoreMotion
132; CHECK-NEXT: Function Alias Analysis Results
133; CHECK-NEXT: Memory Dependence Analysis
134; CHECK-NEXT: Lazy Branch Probability Analysis
135; CHECK-NEXT: Lazy Block Frequency Analysis
136; CHECK-NEXT: Optimization Remark Emitter
137; CHECK-NEXT: Global Value Numbering
138; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
139; CHECK-NEXT: Function Alias Analysis Results
140; CHECK-NEXT: Memory Dependence Analysis
141; CHECK-NEXT: MemCpy Optimization
142; CHECK-NEXT: Sparse Conditional Constant Propagation
Michael Zolotukhin1dce44e2018-03-21 22:17:31 +0000143; CHECK-NEXT: Demanded bits analysis
144; CHECK-NEXT: Bit-Tracking Dead Code Elimination
Michael Zolotukhin1dce44e2018-03-21 22:17:31 +0000145; 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
Michael Zolotukhin1dce44e2018-03-21 22:17:31 +0000154; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
155; CHECK-NEXT: Function Alias Analysis Results
156; CHECK-NEXT: Memory Dependence Analysis
157; CHECK-NEXT: Dead Store Elimination
158; CHECK-NEXT: Natural Loop Information
159; CHECK-NEXT: Canonicalize natural loops
160; CHECK-NEXT: LCSSA Verifier
161; CHECK-NEXT: Loop-Closed SSA Form Pass
162; CHECK-NEXT: Function Alias Analysis Results
163; CHECK-NEXT: Scalar Evolution Analysis
164; CHECK-NEXT: Loop Pass Manager
165; CHECK-NEXT: Loop Invariant Code Motion
166; CHECK-NEXT: Post-Dominator Tree Construction
167; CHECK-NEXT: Aggressive Dead Code Elimination
168; CHECK-NEXT: Simplify the CFG
169; CHECK-NEXT: Dominator Tree Construction
170; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
171; CHECK-NEXT: Function Alias Analysis Results
172; CHECK-NEXT: Natural Loop Information
173; CHECK-NEXT: Lazy Branch Probability Analysis
174; CHECK-NEXT: Lazy Block Frequency Analysis
175; CHECK-NEXT: Optimization Remark Emitter
176; CHECK-NEXT: Combine redundant instructions
177; CHECK-NEXT: A No-Op Barrier Pass
178; CHECK-NEXT: Eliminate Available Externally Globals
179; CHECK-NEXT: CallGraph Construction
180; CHECK-NEXT: Deduce function attributes in RPO
181; CHECK-NEXT: Global Variable Optimizer
182; CHECK-NEXT: Unnamed pass: implement Pass::getPassName()
183; CHECK-NEXT: Dead Global Elimination
184; CHECK-NEXT: CallGraph Construction
185; CHECK-NEXT: Globals Alias Analysis
186; CHECK-NEXT: FunctionPass Manager
187; CHECK-NEXT: Float to int
188; CHECK-NEXT: Dominator Tree Construction
189; CHECK-NEXT: Natural Loop Information
190; CHECK-NEXT: Canonicalize natural loops
191; CHECK-NEXT: LCSSA Verifier
192; CHECK-NEXT: Loop-Closed SSA Form Pass
193; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
194; CHECK-NEXT: Function Alias Analysis Results
195; CHECK-NEXT: Scalar Evolution Analysis
196; CHECK-NEXT: Loop Pass Manager
197; CHECK-NEXT: Rotate Loops
198; CHECK-NEXT: Loop Access Analysis
199; CHECK-NEXT: Lazy Branch Probability Analysis
200; CHECK-NEXT: Lazy Block Frequency Analysis
201; CHECK-NEXT: Optimization Remark Emitter
202; CHECK-NEXT: Loop Distribution
203; CHECK-NEXT: Branch Probability Analysis
204; CHECK-NEXT: Block Frequency Analysis
205; CHECK-NEXT: Scalar Evolution Analysis
206; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
207; CHECK-NEXT: Function Alias Analysis Results
208; CHECK-NEXT: Loop Access Analysis
209; CHECK-NEXT: Demanded bits analysis
210; CHECK-NEXT: Lazy Branch Probability Analysis
211; CHECK-NEXT: Lazy Block Frequency Analysis
212; CHECK-NEXT: Optimization Remark Emitter
213; CHECK-NEXT: Loop Vectorization
214; CHECK-NEXT: Canonicalize natural loops
215; CHECK-NEXT: Scalar Evolution Analysis
216; CHECK-NEXT: Function Alias Analysis Results
217; CHECK-NEXT: Loop Access Analysis
218; CHECK-NEXT: Loop Load Elimination
219; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
220; CHECK-NEXT: Function Alias Analysis Results
221; CHECK-NEXT: Lazy Branch Probability Analysis
222; CHECK-NEXT: Lazy Block Frequency Analysis
223; CHECK-NEXT: Optimization Remark Emitter
224; CHECK-NEXT: Combine redundant instructions
225; CHECK-NEXT: Simplify the CFG
226; CHECK-NEXT: Dominator Tree Construction
227; CHECK-NEXT: Natural Loop Information
228; CHECK-NEXT: Scalar Evolution Analysis
229; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
230; CHECK-NEXT: Function Alias Analysis Results
231; CHECK-NEXT: Demanded bits analysis
232; CHECK-NEXT: Lazy Branch Probability Analysis
233; CHECK-NEXT: Lazy Block Frequency Analysis
234; CHECK-NEXT: Optimization Remark Emitter
235; CHECK-NEXT: SLP Vectorizer
236; CHECK-NEXT: Optimization Remark Emitter
237; CHECK-NEXT: Combine redundant instructions
238; CHECK-NEXT: Canonicalize natural loops
239; CHECK-NEXT: LCSSA Verifier
240; CHECK-NEXT: Loop-Closed SSA Form Pass
241; CHECK-NEXT: Scalar Evolution Analysis
242; CHECK-NEXT: Loop Pass Manager
243; CHECK-NEXT: Unroll loops
244; CHECK-NEXT: Lazy Branch Probability Analysis
245; CHECK-NEXT: Lazy Block Frequency Analysis
246; CHECK-NEXT: Optimization Remark Emitter
247; CHECK-NEXT: Combine redundant instructions
248; CHECK-NEXT: Canonicalize natural loops
249; CHECK-NEXT: LCSSA Verifier
250; CHECK-NEXT: Loop-Closed SSA Form Pass
251; CHECK-NEXT: Scalar Evolution Analysis
252; CHECK-NEXT: Loop Pass Manager
253; CHECK-NEXT: Loop Invariant Code Motion
254; CHECK-NEXT: Alignment from assumptions
255; CHECK-NEXT: Strip Unused Function Prototypes
256; CHECK-NEXT: Dead Global Elimination
257; CHECK-NEXT: Merge Duplicate Global Constants
258; CHECK-NEXT: FunctionPass Manager
259; CHECK-NEXT: Dominator Tree Construction
260; CHECK-NEXT: Natural Loop Information
261; CHECK-NEXT: Branch Probability Analysis
262; CHECK-NEXT: Block Frequency Analysis
263; CHECK-NEXT: Canonicalize natural loops
264; CHECK-NEXT: LCSSA Verifier
265; CHECK-NEXT: Loop-Closed SSA Form Pass
266; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
267; CHECK-NEXT: Function Alias Analysis Results
268; CHECK-NEXT: Scalar Evolution Analysis
269; CHECK-NEXT: Branch Probability Analysis
270; CHECK-NEXT: Block Frequency Analysis
271; CHECK-NEXT: Loop Pass Manager
272; CHECK-NEXT: Loop Sink
273; CHECK-NEXT: Lazy Branch Probability Analysis
274; CHECK-NEXT: Lazy Block Frequency Analysis
275; CHECK-NEXT: Optimization Remark Emitter
276; CHECK-NEXT: Remove redundant instructions
277; CHECK-NEXT: Hoist/decompose integer division and remainder
278; CHECK-NEXT: Simplify the CFG
279; CHECK-NEXT: Module Verifier
280; CHECK-NEXT: Bitcode Writer
281; CHECK-NEXT: Pass Arguments:
Michael Zolotukhin1dce44e2018-03-21 22:17:31 +0000282; CHECK-NEXT: Target Library Information
283; CHECK-NEXT: FunctionPass Manager
284; CHECK-NEXT: Dominator Tree Construction
285; CHECK-NEXT: Natural Loop Information
286; CHECK-NEXT: Branch Probability Analysis
287; CHECK-NEXT: Block Frequency Analysis
288; CHECK-NEXT: Pass Arguments:
289; CHECK-NEXT: Target Library Information
290; CHECK-NEXT: FunctionPass Manager
291; CHECK-NEXT: Dominator Tree Construction
292; CHECK-NEXT: Natural Loop Information
293; CHECK-NEXT: Branch Probability Analysis
294; CHECK-NEXT: Block Frequency Analysis
295
296define void @f() {
297 ret void
298}