| ; RUN: opt -mtriple=x86_64-- -Os -debug-pass=Structure < %s -o /dev/null 2>&1 | FileCheck %s | |
| ; REQUIRES: asserts | |
| ; CHECK-LABEL: Pass Arguments: | |
| ; CHECK-NEXT: Target Transform Information | |
| ; CHECK-NEXT: Type-Based Alias Analysis | |
| ; CHECK-NEXT: Scoped NoAlias Alias Analysis | |
| ; CHECK-NEXT: Assumption Cache Tracker | |
| ; CHECK-NEXT: Target Library Information | |
| ; CHECK-NEXT: FunctionPass Manager | |
| ; CHECK-NEXT: Module Verifier | |
| ; CHECK-NEXT: Instrument function entry/exit with calls to e.g. mcount() (pre inlining) | |
| ; CHECK-NEXT: Simplify the CFG | |
| ; CHECK-NEXT: Dominator Tree Construction | |
| ; CHECK-NEXT: SROA | |
| ; CHECK-NEXT: Early CSE | |
| ; CHECK-NEXT: Lower 'expect' Intrinsics | |
| ; CHECK-NEXT: Pass Arguments: | |
| ; CHECK-NEXT: Target Library Information | |
| ; CHECK-NEXT: Target Transform Information | |
| ; Target Pass Configuration | |
| ; CHECK: Type-Based Alias Analysis | |
| ; CHECK-NEXT: Scoped NoAlias Alias Analysis | |
| ; CHECK-NEXT: Assumption Cache Tracker | |
| ; CHECK-NEXT: Profile summary info | |
| ; CHECK-NEXT: ModulePass Manager | |
| ; CHECK-NEXT: Force set function attributes | |
| ; CHECK-NEXT: Infer set function attributes | |
| ; CHECK-NEXT: Interprocedural Sparse Conditional Constant Propagation | |
| ; CHECK-NEXT: Called Value Propagation | |
| ; CHECK-NEXT: Global Variable Optimizer | |
| ; CHECK-NEXT: Unnamed pass: implement Pass::getPassName() | |
| ; CHECK-NEXT: FunctionPass Manager | |
| ; CHECK-NEXT: Dominator Tree Construction | |
| ; CHECK-NEXT: Promote Memory to Register | |
| ; CHECK-NEXT: Dead Argument Elimination | |
| ; CHECK-NEXT: FunctionPass Manager | |
| ; CHECK-NEXT: Dominator Tree Construction | |
| ; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) | |
| ; CHECK-NEXT: Function Alias Analysis Results | |
| ; CHECK-NEXT: Natural Loop Information | |
| ; CHECK-NEXT: Lazy Branch Probability Analysis | |
| ; CHECK-NEXT: Lazy Block Frequency Analysis | |
| ; CHECK-NEXT: Optimization Remark Emitter | |
| ; CHECK-NEXT: Combine redundant instructions | |
| ; CHECK-NEXT: Simplify the CFG | |
| ; CHECK-NEXT: CallGraph Construction | |
| ; CHECK-NEXT: Globals Alias Analysis | |
| ; CHECK-NEXT: Call Graph SCC Pass Manager | |
| ; CHECK-NEXT: Remove unused exception handling info | |
| ; CHECK-NEXT: Function Integration/Inlining | |
| ; CHECK-NEXT: Deduce function attributes | |
| ; CHECK-NEXT: FunctionPass Manager | |
| ; CHECK-NEXT: Dominator Tree Construction | |
| ; CHECK-NEXT: SROA | |
| ; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) | |
| ; CHECK-NEXT: Function Alias Analysis Results | |
| ; CHECK-NEXT: Memory SSA | |
| ; CHECK-NEXT: Early CSE w/ MemorySSA | |
| ; CHECK-NEXT: Speculatively execute instructions if target has divergent branches | |
| ; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) | |
| ; CHECK-NEXT: Function Alias Analysis Results | |
| ; CHECK-NEXT: Lazy Value Information Analysis | |
| ; CHECK-NEXT: Jump Threading | |
| ; CHECK-NEXT: Value Propagation | |
| ; CHECK-NEXT: Simplify the CFG | |
| ; CHECK-NEXT: Dominator Tree Construction | |
| ; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) | |
| ; CHECK-NEXT: Function Alias Analysis Results | |
| ; CHECK-NEXT: Natural Loop Information | |
| ; CHECK-NEXT: Lazy Branch Probability Analysis | |
| ; CHECK-NEXT: Lazy Block Frequency Analysis | |
| ; CHECK-NEXT: Optimization Remark Emitter | |
| ; CHECK-NEXT: Combine redundant instructions | |
| ; CHECK-NEXT: Optimization Remark Emitter | |
| ; CHECK-NEXT: Tail Call Elimination | |
| ; CHECK-NEXT: Simplify the CFG | |
| ; CHECK-NEXT: Reassociate expressions | |
| ; CHECK-NEXT: Dominator Tree Construction | |
| ; CHECK-NEXT: Natural Loop Information | |
| ; CHECK-NEXT: Canonicalize natural loops | |
| ; CHECK-NEXT: LCSSA Verifier | |
| ; CHECK-NEXT: Loop-Closed SSA Form Pass | |
| ; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) | |
| ; CHECK-NEXT: Function Alias Analysis Results | |
| ; CHECK-NEXT: Scalar Evolution Analysis | |
| ; CHECK-NEXT: Loop Pass Manager | |
| ; CHECK-NEXT: Rotate Loops | |
| ; CHECK-NEXT: Loop Invariant Code Motion | |
| ; CHECK-NEXT: Unswitch loops | |
| ; CHECK-NEXT: Simplify the CFG | |
| ; CHECK-NEXT: Dominator Tree Construction | |
| ; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) | |
| ; CHECK-NEXT: Function Alias Analysis Results | |
| ; CHECK-NEXT: Natural Loop Information | |
| ; CHECK-NEXT: Lazy Branch Probability Analysis | |
| ; CHECK-NEXT: Lazy Block Frequency Analysis | |
| ; CHECK-NEXT: Optimization Remark Emitter | |
| ; CHECK-NEXT: Combine redundant instructions | |
| ; CHECK-NEXT: Canonicalize natural loops | |
| ; CHECK-NEXT: LCSSA Verifier | |
| ; CHECK-NEXT: Loop-Closed SSA Form Pass | |
| ; CHECK-NEXT: Scalar Evolution Analysis | |
| ; CHECK-NEXT: Loop Pass Manager | |
| ; CHECK-NEXT: Induction Variable Simplification | |
| ; CHECK-NEXT: Recognize loop idioms | |
| ; CHECK-NEXT: Delete dead loops | |
| ; CHECK-NEXT: Unroll loops | |
| ; CHECK-NEXT: MergedLoadStoreMotion | |
| ; CHECK-NEXT: Phi Values Analysis | |
| ; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) | |
| ; CHECK-NEXT: Function Alias Analysis Results | |
| ; CHECK-NEXT: Memory Dependence Analysis | |
| ; CHECK-NEXT: Lazy Branch Probability Analysis | |
| ; CHECK-NEXT: Lazy Block Frequency Analysis | |
| ; CHECK-NEXT: Optimization Remark Emitter | |
| ; CHECK-NEXT: Global Value Numbering | |
| ; CHECK-NEXT: Phi Values Analysis | |
| ; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) | |
| ; CHECK-NEXT: Function Alias Analysis Results | |
| ; CHECK-NEXT: Memory Dependence Analysis | |
| ; CHECK-NEXT: MemCpy Optimization | |
| ; CHECK-NEXT: Sparse Conditional Constant Propagation | |
| ; CHECK-NEXT: Demanded bits analysis | |
| ; CHECK-NEXT: Bit-Tracking Dead Code Elimination | |
| ; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) | |
| ; CHECK-NEXT: Function Alias Analysis Results | |
| ; CHECK-NEXT: Natural Loop Information | |
| ; CHECK-NEXT: Lazy Branch Probability Analysis | |
| ; CHECK-NEXT: Lazy Block Frequency Analysis | |
| ; CHECK-NEXT: Optimization Remark Emitter | |
| ; CHECK-NEXT: Combine redundant instructions | |
| ; CHECK-NEXT: Lazy Value Information Analysis | |
| ; CHECK-NEXT: Jump Threading | |
| ; CHECK-NEXT: Value Propagation | |
| ; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) | |
| ; CHECK-NEXT: Function Alias Analysis Results | |
| ; CHECK-NEXT: Phi Values Analysis | |
| ; CHECK-NEXT: Memory Dependence Analysis | |
| ; CHECK-NEXT: Dead Store Elimination | |
| ; CHECK-NEXT: Natural Loop Information | |
| ; CHECK-NEXT: Canonicalize natural loops | |
| ; CHECK-NEXT: LCSSA Verifier | |
| ; CHECK-NEXT: Loop-Closed SSA Form Pass | |
| ; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) | |
| ; CHECK-NEXT: Function Alias Analysis Results | |
| ; CHECK-NEXT: Scalar Evolution Analysis | |
| ; CHECK-NEXT: Loop Pass Manager | |
| ; CHECK-NEXT: Loop Invariant Code Motion | |
| ; CHECK-NEXT: Post-Dominator Tree Construction | |
| ; CHECK-NEXT: Aggressive Dead Code Elimination | |
| ; CHECK-NEXT: Simplify the CFG | |
| ; CHECK-NEXT: Dominator Tree Construction | |
| ; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) | |
| ; CHECK-NEXT: Function Alias Analysis Results | |
| ; CHECK-NEXT: Natural Loop Information | |
| ; CHECK-NEXT: Lazy Branch Probability Analysis | |
| ; CHECK-NEXT: Lazy Block Frequency Analysis | |
| ; CHECK-NEXT: Optimization Remark Emitter | |
| ; CHECK-NEXT: Combine redundant instructions | |
| ; CHECK-NEXT: A No-Op Barrier Pass | |
| ; CHECK-NEXT: Eliminate Available Externally Globals | |
| ; CHECK-NEXT: CallGraph Construction | |
| ; CHECK-NEXT: Deduce function attributes in RPO | |
| ; CHECK-NEXT: Global Variable Optimizer | |
| ; CHECK-NEXT: Unnamed pass: implement Pass::getPassName() | |
| ; CHECK-NEXT: Dead Global Elimination | |
| ; CHECK-NEXT: CallGraph Construction | |
| ; CHECK-NEXT: Globals Alias Analysis | |
| ; CHECK-NEXT: FunctionPass Manager | |
| ; CHECK-NEXT: Float to int | |
| ; CHECK-NEXT: Dominator Tree Construction | |
| ; CHECK-NEXT: Natural Loop Information | |
| ; CHECK-NEXT: Canonicalize natural loops | |
| ; CHECK-NEXT: LCSSA Verifier | |
| ; CHECK-NEXT: Loop-Closed SSA Form Pass | |
| ; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) | |
| ; CHECK-NEXT: Function Alias Analysis Results | |
| ; CHECK-NEXT: Scalar Evolution Analysis | |
| ; CHECK-NEXT: Loop Pass Manager | |
| ; CHECK-NEXT: Rotate Loops | |
| ; CHECK-NEXT: Loop Access Analysis | |
| ; CHECK-NEXT: Lazy Branch Probability Analysis | |
| ; CHECK-NEXT: Lazy Block Frequency Analysis | |
| ; CHECK-NEXT: Optimization Remark Emitter | |
| ; CHECK-NEXT: Loop Distribution | |
| ; CHECK-NEXT: Branch Probability Analysis | |
| ; CHECK-NEXT: Block Frequency Analysis | |
| ; CHECK-NEXT: Scalar Evolution Analysis | |
| ; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) | |
| ; CHECK-NEXT: Function Alias Analysis Results | |
| ; CHECK-NEXT: Loop Access Analysis | |
| ; CHECK-NEXT: Demanded bits analysis | |
| ; CHECK-NEXT: Lazy Branch Probability Analysis | |
| ; CHECK-NEXT: Lazy Block Frequency Analysis | |
| ; CHECK-NEXT: Optimization Remark Emitter | |
| ; CHECK-NEXT: Loop Vectorization | |
| ; CHECK-NEXT: Canonicalize natural loops | |
| ; CHECK-NEXT: Scalar Evolution Analysis | |
| ; CHECK-NEXT: Function Alias Analysis Results | |
| ; CHECK-NEXT: Loop Access Analysis | |
| ; CHECK-NEXT: Loop Load Elimination | |
| ; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) | |
| ; CHECK-NEXT: Function Alias Analysis Results | |
| ; CHECK-NEXT: Lazy Branch Probability Analysis | |
| ; CHECK-NEXT: Lazy Block Frequency Analysis | |
| ; CHECK-NEXT: Optimization Remark Emitter | |
| ; CHECK-NEXT: Combine redundant instructions | |
| ; CHECK-NEXT: Simplify the CFG | |
| ; CHECK-NEXT: Dominator Tree Construction | |
| ; CHECK-NEXT: Natural Loop Information | |
| ; CHECK-NEXT: Scalar Evolution Analysis | |
| ; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) | |
| ; CHECK-NEXT: Function Alias Analysis Results | |
| ; CHECK-NEXT: Demanded bits analysis | |
| ; CHECK-NEXT: Lazy Branch Probability Analysis | |
| ; CHECK-NEXT: Lazy Block Frequency Analysis | |
| ; CHECK-NEXT: Optimization Remark Emitter | |
| ; CHECK-NEXT: SLP Vectorizer | |
| ; CHECK-NEXT: Optimization Remark Emitter | |
| ; CHECK-NEXT: Combine redundant instructions | |
| ; CHECK-NEXT: Canonicalize natural loops | |
| ; CHECK-NEXT: LCSSA Verifier | |
| ; CHECK-NEXT: Loop-Closed SSA Form Pass | |
| ; CHECK-NEXT: Scalar Evolution Analysis | |
| ; CHECK-NEXT: Loop Pass Manager | |
| ; CHECK-NEXT: Unroll loops | |
| ; CHECK-NEXT: Lazy Branch Probability Analysis | |
| ; CHECK-NEXT: Lazy Block Frequency Analysis | |
| ; CHECK-NEXT: Optimization Remark Emitter | |
| ; CHECK-NEXT: Combine redundant instructions | |
| ; CHECK-NEXT: Canonicalize natural loops | |
| ; CHECK-NEXT: LCSSA Verifier | |
| ; CHECK-NEXT: Loop-Closed SSA Form Pass | |
| ; CHECK-NEXT: Scalar Evolution Analysis | |
| ; CHECK-NEXT: Loop Pass Manager | |
| ; CHECK-NEXT: Loop Invariant Code Motion | |
| ; CHECK-NEXT: Alignment from assumptions | |
| ; CHECK-NEXT: Strip Unused Function Prototypes | |
| ; CHECK-NEXT: Dead Global Elimination | |
| ; CHECK-NEXT: Merge Duplicate Global Constants | |
| ; CHECK-NEXT: FunctionPass Manager | |
| ; CHECK-NEXT: Dominator Tree Construction | |
| ; CHECK-NEXT: Natural Loop Information | |
| ; CHECK-NEXT: Branch Probability Analysis | |
| ; CHECK-NEXT: Block Frequency Analysis | |
| ; CHECK-NEXT: Canonicalize natural loops | |
| ; CHECK-NEXT: LCSSA Verifier | |
| ; CHECK-NEXT: Loop-Closed SSA Form Pass | |
| ; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) | |
| ; CHECK-NEXT: Function Alias Analysis Results | |
| ; CHECK-NEXT: Scalar Evolution Analysis | |
| ; CHECK-NEXT: Branch Probability Analysis | |
| ; CHECK-NEXT: Block Frequency Analysis | |
| ; CHECK-NEXT: Loop Pass Manager | |
| ; CHECK-NEXT: Loop Sink | |
| ; CHECK-NEXT: Lazy Branch Probability Analysis | |
| ; CHECK-NEXT: Lazy Block Frequency Analysis | |
| ; CHECK-NEXT: Optimization Remark Emitter | |
| ; CHECK-NEXT: Remove redundant instructions | |
| ; CHECK-NEXT: Hoist/decompose integer division and remainder | |
| ; CHECK-NEXT: Simplify the CFG | |
| ; CHECK-NEXT: Module Verifier | |
| ; CHECK-NEXT: Bitcode Writer | |
| ; CHECK-NEXT: Pass Arguments: | |
| ; CHECK-NEXT: Target Library Information | |
| ; CHECK-NEXT: FunctionPass Manager | |
| ; CHECK-NEXT: Dominator Tree Construction | |
| ; CHECK-NEXT: Natural Loop Information | |
| ; CHECK-NEXT: Branch Probability Analysis | |
| ; CHECK-NEXT: Block Frequency Analysis | |
| ; CHECK-NEXT: Pass Arguments: | |
| ; CHECK-NEXT: Target Library Information | |
| ; CHECK-NEXT: FunctionPass Manager | |
| ; CHECK-NEXT: Dominator Tree Construction | |
| ; CHECK-NEXT: Natural Loop Information | |
| ; CHECK-NEXT: Branch Probability Analysis | |
| ; CHECK-NEXT: Block Frequency Analysis | |
| define void @f() { | |
| ret void | |
| } |