blob: 1eb79159d0d16c63421418aaf2696b02b41c27af [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
Florian Hahn505091a2018-11-14 10:04:30 +000031; CHECK-NEXT: Dominator Tree Construction
Michael Zolotukhin1dce44e2018-03-21 22:17:31 +000032; CHECK-NEXT: Call-site splitting
33; CHECK-NEXT: Interprocedural Sparse Conditional Constant Propagation
Florian Hahn30522902018-08-23 11:04:00 +000034; CHECK-NEXT: Unnamed pass: implement Pass::getPassName()
Michael Zolotukhin1dce44e2018-03-21 22:17:31 +000035; CHECK-NEXT: Called Value Propagation
36; CHECK-NEXT: Global Variable Optimizer
37; CHECK-NEXT: Unnamed pass: implement Pass::getPassName()
38; CHECK-NEXT: FunctionPass Manager
39; CHECK-NEXT: Dominator Tree Construction
40; CHECK-NEXT: Promote Memory to Register
41; CHECK-NEXT: Dead Argument Elimination
42; CHECK-NEXT: FunctionPass Manager
43; CHECK-NEXT: Dominator Tree Construction
44; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
45; CHECK-NEXT: Function Alias Analysis Results
46; CHECK-NEXT: Natural Loop Information
47; CHECK-NEXT: Lazy Branch Probability Analysis
48; CHECK-NEXT: Lazy Block Frequency Analysis
49; CHECK-NEXT: Optimization Remark Emitter
50; CHECK-NEXT: Combine redundant instructions
51; CHECK-NEXT: Simplify the CFG
52; CHECK-NEXT: CallGraph Construction
53; CHECK-NEXT: Globals Alias Analysis
54; CHECK-NEXT: Call Graph SCC Pass Manager
55; CHECK-NEXT: Remove unused exception handling info
56; CHECK-NEXT: Function Integration/Inlining
57; CHECK-NEXT: Deduce function attributes
58; CHECK-NEXT: Promote 'by reference' arguments to scalars
59; CHECK-NEXT: FunctionPass Manager
60; CHECK-NEXT: Dominator Tree Construction
61; CHECK-NEXT: SROA
62; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
63; CHECK-NEXT: Function Alias Analysis Results
64; CHECK-NEXT: Memory SSA
65; CHECK-NEXT: Early CSE w/ MemorySSA
66; CHECK-NEXT: Speculatively execute instructions if target has divergent branches
Alexandros Lamprineasde3ca962018-07-30 10:50:18 +000067; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
Michael Zolotukhin1dce44e2018-03-21 22:17:31 +000068; CHECK-NEXT: Function Alias Analysis Results
69; CHECK-NEXT: Lazy Value Information Analysis
70; CHECK-NEXT: Jump Threading
71; CHECK-NEXT: Value Propagation
72; CHECK-NEXT: Simplify the CFG
73; CHECK-NEXT: Dominator Tree Construction
74; CHECK-NEXT: Combine pattern based expressions
75; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
76; CHECK-NEXT: Function Alias Analysis Results
77; CHECK-NEXT: Natural Loop Information
78; CHECK-NEXT: Lazy Branch Probability Analysis
79; CHECK-NEXT: Lazy Block Frequency Analysis
80; CHECK-NEXT: Optimization Remark Emitter
81; CHECK-NEXT: Combine redundant instructions
82; CHECK-NEXT: Conditionally eliminate dead library calls
83; CHECK-NEXT: Natural Loop Information
84; CHECK-NEXT: Branch Probability Analysis
85; CHECK-NEXT: Block Frequency Analysis
86; CHECK-NEXT: Lazy Branch Probability Analysis
87; CHECK-NEXT: Lazy Block Frequency Analysis
88; CHECK-NEXT: Optimization Remark Emitter
89; CHECK-NEXT: PGOMemOPSize
Michael Zolotukhin1dce44e2018-03-21 22:17:31 +000090; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
91; CHECK-NEXT: Function Alias Analysis Results
92; CHECK-NEXT: Natural Loop Information
93; CHECK-NEXT: Lazy Branch Probability Analysis
94; CHECK-NEXT: Lazy Block Frequency Analysis
95; CHECK-NEXT: Optimization Remark Emitter
96; CHECK-NEXT: Tail Call Elimination
97; CHECK-NEXT: Simplify the CFG
98; CHECK-NEXT: Reassociate expressions
99; CHECK-NEXT: Dominator Tree Construction
100; CHECK-NEXT: Natural Loop Information
101; CHECK-NEXT: Canonicalize natural loops
102; CHECK-NEXT: LCSSA Verifier
103; CHECK-NEXT: Loop-Closed SSA Form Pass
104; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
105; CHECK-NEXT: Function Alias Analysis Results
106; CHECK-NEXT: Scalar Evolution Analysis
107; CHECK-NEXT: Loop Pass Manager
108; CHECK-NEXT: Rotate Loops
109; CHECK-NEXT: Loop Invariant Code Motion
110; CHECK-NEXT: Unswitch loops
111; CHECK-NEXT: Simplify the CFG
112; CHECK-NEXT: Dominator Tree Construction
113; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
114; CHECK-NEXT: Function Alias Analysis Results
115; CHECK-NEXT: Natural Loop Information
116; CHECK-NEXT: Lazy Branch Probability Analysis
117; CHECK-NEXT: Lazy Block Frequency Analysis
118; CHECK-NEXT: Optimization Remark Emitter
119; CHECK-NEXT: Combine redundant instructions
120; CHECK-NEXT: Canonicalize natural loops
121; CHECK-NEXT: LCSSA Verifier
122; CHECK-NEXT: Loop-Closed SSA Form Pass
123; CHECK-NEXT: Scalar Evolution Analysis
124; CHECK-NEXT: Loop Pass Manager
125; CHECK-NEXT: Induction Variable Simplification
126; CHECK-NEXT: Recognize loop idioms
127; CHECK-NEXT: Delete dead loops
128; CHECK-NEXT: Unroll loops
129; CHECK-NEXT: MergedLoadStoreMotion
John Brawncd5f37f2018-07-31 14:19:29 +0000130; CHECK-NEXT: Phi Values Analysis
John Brawncd73fe82018-07-30 11:52:08 +0000131; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
Michael Zolotukhin1dce44e2018-03-21 22:17:31 +0000132; 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
John Brawncd5f37f2018-07-31 14:19:29 +0000138; CHECK-NEXT: Phi Values Analysis
Michael Zolotukhin1dce44e2018-03-21 22:17:31 +0000139; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
140; CHECK-NEXT: Function Alias Analysis Results
141; CHECK-NEXT: Memory Dependence Analysis
142; CHECK-NEXT: MemCpy Optimization
143; CHECK-NEXT: Sparse Conditional Constant Propagation
Michael Zolotukhin1dce44e2018-03-21 22:17:31 +0000144; CHECK-NEXT: Demanded bits analysis
145; CHECK-NEXT: Bit-Tracking Dead Code Elimination
John Brawncd73fe82018-07-30 11:52:08 +0000146; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
Michael Zolotukhin1dce44e2018-03-21 22:17:31 +0000147; CHECK-NEXT: Function Alias Analysis Results
148; CHECK-NEXT: Natural Loop Information
149; CHECK-NEXT: Lazy Branch Probability Analysis
150; CHECK-NEXT: Lazy Block Frequency Analysis
151; CHECK-NEXT: Optimization Remark Emitter
152; CHECK-NEXT: Combine redundant instructions
153; CHECK-NEXT: Lazy Value Information Analysis
154; CHECK-NEXT: Jump Threading
155; CHECK-NEXT: Value Propagation
Michael Zolotukhin1dce44e2018-03-21 22:17:31 +0000156; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
157; CHECK-NEXT: Function Alias Analysis Results
John Brawncd5f37f2018-07-31 14:19:29 +0000158; CHECK-NEXT: Phi Values Analysis
Michael Zolotukhin1dce44e2018-03-21 22:17:31 +0000159; CHECK-NEXT: Memory Dependence Analysis
160; CHECK-NEXT: Dead Store Elimination
161; CHECK-NEXT: Natural Loop Information
162; CHECK-NEXT: Canonicalize natural loops
163; CHECK-NEXT: LCSSA Verifier
164; CHECK-NEXT: Loop-Closed SSA Form Pass
John Brawncd73fe82018-07-30 11:52:08 +0000165; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
Michael Zolotukhin1dce44e2018-03-21 22:17:31 +0000166; CHECK-NEXT: Function Alias Analysis Results
167; CHECK-NEXT: Scalar Evolution Analysis
168; CHECK-NEXT: Loop Pass Manager
169; CHECK-NEXT: Loop Invariant Code Motion
170; CHECK-NEXT: Post-Dominator Tree Construction
171; CHECK-NEXT: Aggressive Dead Code Elimination
172; CHECK-NEXT: Simplify the CFG
173; CHECK-NEXT: Dominator Tree Construction
174; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
175; CHECK-NEXT: Function Alias Analysis Results
176; CHECK-NEXT: Natural Loop Information
177; CHECK-NEXT: Lazy Branch Probability Analysis
178; CHECK-NEXT: Lazy Block Frequency Analysis
179; CHECK-NEXT: Optimization Remark Emitter
180; CHECK-NEXT: Combine redundant instructions
181; CHECK-NEXT: A No-Op Barrier Pass
182; CHECK-NEXT: Eliminate Available Externally Globals
183; CHECK-NEXT: CallGraph Construction
184; CHECK-NEXT: Deduce function attributes in RPO
185; CHECK-NEXT: Global Variable Optimizer
186; CHECK-NEXT: Unnamed pass: implement Pass::getPassName()
187; CHECK-NEXT: Dead Global Elimination
188; CHECK-NEXT: CallGraph Construction
189; CHECK-NEXT: Globals Alias Analysis
190; CHECK-NEXT: FunctionPass Manager
191; CHECK-NEXT: Float to int
192; CHECK-NEXT: Dominator Tree Construction
193; CHECK-NEXT: Natural Loop Information
194; CHECK-NEXT: Canonicalize natural loops
195; CHECK-NEXT: LCSSA Verifier
196; CHECK-NEXT: Loop-Closed SSA Form Pass
197; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
198; CHECK-NEXT: Function Alias Analysis Results
199; CHECK-NEXT: Scalar Evolution Analysis
200; CHECK-NEXT: Loop Pass Manager
201; CHECK-NEXT: Rotate Loops
202; CHECK-NEXT: Loop Access Analysis
203; CHECK-NEXT: Lazy Branch Probability Analysis
204; CHECK-NEXT: Lazy Block Frequency Analysis
205; CHECK-NEXT: Optimization Remark Emitter
206; CHECK-NEXT: Loop Distribution
207; CHECK-NEXT: Branch Probability Analysis
208; CHECK-NEXT: Block Frequency Analysis
209; CHECK-NEXT: Scalar Evolution Analysis
210; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
211; CHECK-NEXT: Function Alias Analysis Results
212; CHECK-NEXT: Loop Access Analysis
213; CHECK-NEXT: Demanded bits analysis
214; CHECK-NEXT: Lazy Branch Probability Analysis
215; CHECK-NEXT: Lazy Block Frequency Analysis
216; CHECK-NEXT: Optimization Remark Emitter
217; CHECK-NEXT: Loop Vectorization
218; CHECK-NEXT: Canonicalize natural loops
219; CHECK-NEXT: Scalar Evolution Analysis
220; CHECK-NEXT: Function Alias Analysis Results
221; CHECK-NEXT: Loop Access Analysis
222; CHECK-NEXT: Loop Load Elimination
223; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
224; CHECK-NEXT: Function Alias Analysis Results
225; CHECK-NEXT: Lazy Branch Probability Analysis
226; CHECK-NEXT: Lazy Block Frequency Analysis
227; CHECK-NEXT: Optimization Remark Emitter
228; CHECK-NEXT: Combine redundant instructions
229; CHECK-NEXT: Simplify the CFG
230; CHECK-NEXT: Dominator Tree Construction
231; CHECK-NEXT: Natural Loop Information
232; CHECK-NEXT: Scalar Evolution Analysis
233; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
234; CHECK-NEXT: Function Alias Analysis Results
235; CHECK-NEXT: Demanded bits analysis
236; CHECK-NEXT: Lazy Branch Probability Analysis
237; CHECK-NEXT: Lazy Block Frequency Analysis
238; CHECK-NEXT: Optimization Remark Emitter
239; CHECK-NEXT: SLP Vectorizer
240; CHECK-NEXT: Optimization Remark Emitter
241; CHECK-NEXT: Combine redundant instructions
242; CHECK-NEXT: Canonicalize natural loops
243; CHECK-NEXT: LCSSA Verifier
244; CHECK-NEXT: Loop-Closed SSA Form Pass
245; CHECK-NEXT: Scalar Evolution Analysis
246; CHECK-NEXT: Loop Pass Manager
247; CHECK-NEXT: Unroll loops
248; CHECK-NEXT: Lazy Branch Probability Analysis
249; CHECK-NEXT: Lazy Block Frequency Analysis
250; CHECK-NEXT: Optimization Remark Emitter
251; CHECK-NEXT: Combine redundant instructions
252; CHECK-NEXT: Canonicalize natural loops
253; CHECK-NEXT: LCSSA Verifier
254; CHECK-NEXT: Loop-Closed SSA Form Pass
255; CHECK-NEXT: Scalar Evolution Analysis
256; CHECK-NEXT: Loop Pass Manager
257; CHECK-NEXT: Loop Invariant Code Motion
Michael Kruse72448522018-12-12 17:32:52 +0000258; CHECK-NEXT: Lazy Branch Probability Analysis
259; CHECK-NEXT: Lazy Block Frequency Analysis
260; CHECK-NEXT: Optimization Remark Emitter
261; CHECK-NEXT: Warn about non-applied transformations
Michael Zolotukhin1dce44e2018-03-21 22:17:31 +0000262; CHECK-NEXT: Alignment from assumptions
263; CHECK-NEXT: Strip Unused Function Prototypes
264; CHECK-NEXT: Dead Global Elimination
265; CHECK-NEXT: Merge Duplicate Global Constants
266; CHECK-NEXT: FunctionPass Manager
267; CHECK-NEXT: Dominator Tree Construction
268; CHECK-NEXT: Natural Loop Information
269; CHECK-NEXT: Branch Probability Analysis
270; CHECK-NEXT: Block Frequency Analysis
271; CHECK-NEXT: Canonicalize natural loops
272; CHECK-NEXT: LCSSA Verifier
273; CHECK-NEXT: Loop-Closed SSA Form Pass
274; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
275; CHECK-NEXT: Function Alias Analysis Results
276; CHECK-NEXT: Scalar Evolution Analysis
277; CHECK-NEXT: Branch Probability Analysis
278; CHECK-NEXT: Block Frequency Analysis
279; CHECK-NEXT: Loop Pass Manager
280; CHECK-NEXT: Loop Sink
281; CHECK-NEXT: Lazy Branch Probability Analysis
282; CHECK-NEXT: Lazy Block Frequency Analysis
283; CHECK-NEXT: Optimization Remark Emitter
284; CHECK-NEXT: Remove redundant instructions
285; CHECK-NEXT: Hoist/decompose integer division and remainder
286; CHECK-NEXT: Simplify the CFG
287; CHECK-NEXT: Module Verifier
288; CHECK-NEXT: Bitcode Writer
289; CHECK-NEXT: Pass Arguments:
Florian Hahn30522902018-08-23 11:04:00 +0000290; CHECK-NEXT: FunctionPass Manager
291; CHECK-NEXT: Dominator Tree Construction
292; CHECK-NEXT: Pass Arguments:
Michael Zolotukhin1dce44e2018-03-21 22:17:31 +0000293; CHECK-NEXT: Target Library Information
294; CHECK-NEXT: FunctionPass Manager
295; CHECK-NEXT: Dominator Tree Construction
296; CHECK-NEXT: Natural Loop Information
297; CHECK-NEXT: Branch Probability Analysis
298; CHECK-NEXT: Block Frequency Analysis
299; CHECK-NEXT: Pass Arguments:
300; CHECK-NEXT: Target Library Information
301; CHECK-NEXT: FunctionPass Manager
302; CHECK-NEXT: Dominator Tree Construction
303; CHECK-NEXT: Natural Loop Information
304; CHECK-NEXT: Branch Probability Analysis
305; CHECK-NEXT: Block Frequency Analysis
306
307define void @f() {
308 ret void
309}