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