Home | History | Annotate | Download | only in Other
      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 
    298 define void @f() {
    299   ret void
    300 }
    301