1; RUN: opt -enable-new-pm=0 -mtriple=x86_64-- -std-link-opts -debug-pass=Structure < %s -o /dev/null 2>&1 | FileCheck --check-prefix=CHECK %s
2
3; REQUIRES: asserts
4
5; CHECK-LABEL: Pass Arguments:
6; CHECK-NEXT: Target Library Information
7; CHECK-NEXT: Target Transform Information
8;           : Target Pass Configuration
9; CHECK:      Type-Based Alias Analysis
10; CHECK-NEXT: Scoped NoAlias Alias Analysis
11; CHECK-NEXT: Profile summary info
12; CHECK-NEXT: Assumption Cache Tracker
13; CHECK-NEXT:   ModulePass Manager
14; CHECK-NEXT:     FunctionPass Manager
15; CHECK-NEXT:       Module Verifier
16; CHECK-NEXT:     Dead Global Elimination
17; CHECK-NEXT:     Force set function attributes
18; CHECK-NEXT:     Infer set function attributes
19; CHECK-NEXT:     FunctionPass Manager
20; CHECK-NEXT:       Dominator Tree Construction
21; CHECK-NEXT:       Call-site splitting
22; CHECK-NEXT:     PGOIndirectCallPromotion
23; CHECK-NEXT:     Interprocedural Sparse Conditional Constant Propagation
24; CHECK-NEXT:       FunctionPass Manager
25; CHECK-NEXT:         Dominator Tree Construction
26; CHECK-NEXT:     Called Value Propagation
27; CHECK-NEXT:     CallGraph Construction
28; CHECK-NEXT:     Call Graph SCC Pass Manager
29; CHECK-NEXT:       Deduce function attributes
30; CHECK-NEXT:     Deduce function attributes in RPO
31; CHECK-NEXT:     Global splitter
32; CHECK-NEXT:     Whole program devirtualization
33; CHECK-NEXT:       FunctionPass Manager
34; CHECK-NEXT:         Dominator Tree Construction
35; CHECK-NEXT:     Global Variable Optimizer
36; CHECK-NEXT:       FunctionPass Manager
37; CHECK-NEXT:         Dominator Tree Construction
38; CHECK-NEXT:         Natural Loop Information
39; CHECK-NEXT:         Post-Dominator Tree Construction
40; CHECK-NEXT:         Branch Probability Analysis
41; CHECK-NEXT:         Block Frequency Analysis
42; CHECK-NEXT:     FunctionPass Manager
43; CHECK-NEXT:       Dominator Tree Construction
44; CHECK-NEXT:       Promote Memory to Register
45; CHECK-NEXT:     Merge Duplicate Global Constants
46; CHECK-NEXT:     Dead Argument Elimination
47; CHECK-NEXT:     FunctionPass Manager
48; CHECK-NEXT:       Dominator Tree Construction
49; CHECK-NEXT:       Basic Alias Analysis (stateless AA impl)
50; CHECK-NEXT:       Function Alias Analysis Results
51; CHECK-NEXT:       Natural Loop Information
52; CHECK-NEXT:       Lazy Branch Probability Analysis
53; CHECK-NEXT:       Lazy Block Frequency Analysis
54; CHECK-NEXT:       Optimization Remark Emitter
55; CHECK-NEXT:       Combine redundant instructions
56; CHECK-NEXT:     CallGraph Construction
57; CHECK-NEXT:     Call Graph SCC Pass Manager
58; CHECK-NEXT:       Function Integration/Inlining
59; CHECK-NEXT:       Remove unused exception handling info
60; CHECK-NEXT:       OpenMP specific optimizations
61; CHECK-NEXT:     Global Variable Optimizer
62; CHECK-NEXT:       FunctionPass Manager
63; CHECK-NEXT:         Dominator Tree Construction
64; CHECK-NEXT:         Natural Loop Information
65; CHECK-NEXT:         Post-Dominator Tree Construction
66; CHECK-NEXT:         Branch Probability Analysis
67; CHECK-NEXT:         Block Frequency Analysis
68; CHECK-NEXT:     Dead Global Elimination
69; CHECK-NEXT:     CallGraph Construction
70; CHECK-NEXT:     Call Graph SCC Pass Manager
71; CHECK-NEXT:       Promote 'by reference' arguments to scalars
72; CHECK-NEXT:       FunctionPass Manager
73; CHECK-NEXT:         Dominator Tree Construction
74; CHECK-NEXT:         Basic Alias Analysis (stateless AA impl)
75; CHECK-NEXT:         Function Alias Analysis Results
76; CHECK-NEXT:         Natural Loop Information
77; CHECK-NEXT:         Lazy Branch Probability Analysis
78; CHECK-NEXT:         Lazy Block Frequency Analysis
79; CHECK-NEXT:         Optimization Remark Emitter
80; CHECK-NEXT:         Combine redundant instructions
81; CHECK-NEXT:         Lazy Value Information Analysis
82; CHECK-NEXT:         Jump Threading
83; CHECK-NEXT:         SROA
84; CHECK-NEXT:         Basic Alias Analysis (stateless AA impl)
85; CHECK-NEXT:         Function Alias Analysis Results
86; CHECK-NEXT:         Natural Loop Information
87; CHECK-NEXT:         Lazy Branch Probability Analysis
88; CHECK-NEXT:         Lazy Block Frequency Analysis
89; CHECK-NEXT:         Optimization Remark Emitter
90; CHECK-NEXT:         Tail Call Elimination
91; CHECK-NEXT:     CallGraph Construction
92; CHECK-NEXT:     Call Graph SCC Pass Manager
93; CHECK-NEXT:       Deduce function attributes
94; CHECK-NEXT:     Globals Alias Analysis
95; CHECK-NEXT:     FunctionPass Manager
96; CHECK-NEXT:       Dominator Tree Construction
97; CHECK-NEXT:       Basic Alias Analysis (stateless AA impl)
98; CHECK-NEXT:       Function Alias Analysis Results
99; CHECK-NEXT:       Memory SSA
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:       Scalar Evolution Analysis
105; CHECK-NEXT:       Lazy Branch Probability Analysis
106; CHECK-NEXT:       Lazy Block Frequency Analysis
107; CHECK-NEXT:       Loop Pass Manager
108; CHECK-NEXT:         Loop Invariant Code Motion
109; CHECK-NEXT:       Phi Values Analysis
110; CHECK-NEXT:       Memory Dependence Analysis
111; CHECK-NEXT:       Optimization Remark Emitter
112; CHECK-NEXT:       Global Value Numbering
113; CHECK-NEXT:       Phi Values Analysis
114; CHECK-NEXT:       Basic Alias Analysis (stateless AA impl)
115; CHECK-NEXT:       Function Alias Analysis Results
116; CHECK-NEXT:       Memory Dependence Analysis
117; CHECK-NEXT:       MemCpy Optimization
118; CHECK-NEXT:       Post-Dominator Tree Construction
119; CHECK-NEXT:       Dead Store Elimination
120; CHECK-NEXT:       Function Alias Analysis Results
121; CHECK-NEXT:       MergedLoadStoreMotion
122; CHECK-NEXT:       Canonicalize natural loops
123; CHECK-NEXT:       LCSSA Verifier
124; CHECK-NEXT:       Loop-Closed SSA Form Pass
125; CHECK-NEXT:       Function Alias Analysis Results
126; CHECK-NEXT:       Scalar Evolution Analysis
127; CHECK-NEXT:       Loop Pass Manager
128; CHECK-NEXT:         Induction Variable Simplification
129; CHECK-NEXT:         Delete dead loops
130; CHECK-NEXT:         Unroll loops
131; CHECK-NEXT:       Loop Access Analysis
132; CHECK-NEXT:       Lazy Branch Probability Analysis
133; CHECK-NEXT:       Lazy Block Frequency Analysis
134; CHECK-NEXT:       Optimization Remark Emitter
135; CHECK-NEXT:       Loop Distribution
136; CHECK-NEXT:       Post-Dominator Tree Construction
137; CHECK-NEXT:       Branch Probability Analysis
138; CHECK-NEXT:       Block Frequency Analysis
139; CHECK-NEXT:       Scalar Evolution Analysis
140; CHECK-NEXT:       Basic Alias Analysis (stateless AA impl)
141; CHECK-NEXT:       Function Alias Analysis Results
142; CHECK-NEXT:       Loop Access Analysis
143; CHECK-NEXT:       Demanded bits analysis
144; CHECK-NEXT:       Lazy Branch Probability Analysis
145; CHECK-NEXT:       Lazy Block Frequency Analysis
146; CHECK-NEXT:       Optimization Remark Emitter
147; CHECK-NEXT:       Inject TLI Mappings
148; CHECK-NEXT:       Loop Vectorization
149; CHECK-NEXT:       Canonicalize natural loops
150; CHECK-NEXT:       LCSSA Verifier
151; CHECK-NEXT:       Loop-Closed SSA Form Pass
152; CHECK-NEXT:       Function Alias Analysis Results
153; CHECK-NEXT:       Scalar Evolution Analysis
154; CHECK-NEXT:       Loop Pass Manager
155; CHECK-NEXT:         Unroll loops
156; CHECK-NEXT:       Lazy Branch Probability Analysis
157; CHECK-NEXT:       Lazy Block Frequency Analysis
158; CHECK-NEXT:       Optimization Remark Emitter
159; CHECK-NEXT:       Warn about non-applied transformations
160; CHECK-NEXT:       Combine redundant instructions
161; CHECK-NEXT:       Simplify the CFG
162; CHECK-NEXT:       Sparse Conditional Constant Propagation
163; CHECK-NEXT:       Dominator Tree Construction
164; CHECK-NEXT:       Basic Alias Analysis (stateless AA impl)
165; CHECK-NEXT:       Function Alias Analysis Results
166; CHECK-NEXT:       Natural Loop Information
167; CHECK-NEXT:       Lazy Branch Probability Analysis
168; CHECK-NEXT:       Lazy Block Frequency Analysis
169; CHECK-NEXT:       Optimization Remark Emitter
170; CHECK-NEXT:       Combine redundant instructions
171; CHECK-NEXT:       Demanded bits analysis
172; CHECK-NEXT:       Bit-Tracking Dead Code Elimination
173; CHECK-NEXT:       Optimize scalar/vector ops
174; CHECK-NEXT:       Scalar Evolution Analysis
175; CHECK-NEXT:       Alignment from assumptions
176; CHECK-NEXT:       Function Alias Analysis Results
177; CHECK-NEXT:       Optimization Remark Emitter
178; CHECK-NEXT:       Combine redundant instructions
179; CHECK-NEXT:       Lazy Value Information Analysis
180; CHECK-NEXT:       Jump Threading
181; CHECK-NEXT:     Cross-DSO CFI
182; CHECK-NEXT:     Lower type metadata
183; CHECK-NEXT:     Lower type metadata
184; CHECK-NEXT:     FunctionPass Manager
185; CHECK-NEXT:       Simplify the CFG
186; CHECK-NEXT:     Eliminate Available Externally Globals
187; CHECK-NEXT:     Dead Global Elimination
188; CHECK-NEXT:     FunctionPass Manager
189; CHECK-NEXT:       Annotation Remarks
190; CHECK-NEXT:       Module Verifier
191; CHECK-NEXT:     Bitcode Writer
192; CHECK-NEXT: Pass Arguments:
193; CHECK-NEXT:   FunctionPass Manager
194; CHECK-NEXT:     Dominator Tree Construction
195; CHECK-NEXT: Pass Arguments:
196; CHECK-NEXT:   FunctionPass Manager
197; CHECK-NEXT:     Dominator Tree Construction
198; CHECK-NEXT: Pass Arguments:
199; CHECK-NEXT: Target Library Information
200; CHECK-NEXT:   FunctionPass Manager
201; CHECK-NEXT:     Dominator Tree Construction
202; CHECK-NEXT:     Natural Loop Information
203; CHECK-NEXT:     Post-Dominator Tree Construction
204; CHECK-NEXT:     Branch Probability Analysis
205; CHECK-NEXT:     Block Frequency Analysis
206; CHECK-NEXT: Pass Arguments:
207; CHECK-NEXT: Target Library Information
208; CHECK-NEXT:   FunctionPass Manager
209; CHECK-NEXT:     Dominator Tree Construction
210; CHECK-NEXT:     Natural Loop Information
211; CHECK-NEXT:     Post-Dominator Tree Construction
212; CHECK-NEXT:     Branch Probability Analysis
213; CHECK-NEXT:     Block Frequency Analysis
214
215define void @f() {
216  ret void
217}
218