1; RUN: opt -mtriple=x86_64-- -Os -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: Interprocedural Sparse Conditional Constant Propagation 31; CHECK-NEXT: Called Value Propagation 32; CHECK-NEXT: Global Variable Optimizer 33; CHECK-NEXT: Unnamed pass: implement Pass::getPassName() 34; CHECK-NEXT: FunctionPass Manager 35; CHECK-NEXT: Dominator Tree Construction 36; CHECK-NEXT: Promote Memory to Register 37; CHECK-NEXT: Dead Argument Elimination 38; CHECK-NEXT: FunctionPass Manager 39; CHECK-NEXT: Dominator Tree Construction 40; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) 41; CHECK-NEXT: Function Alias Analysis Results 42; CHECK-NEXT: Natural Loop Information 43; CHECK-NEXT: Lazy Branch Probability Analysis 44; CHECK-NEXT: Lazy Block Frequency Analysis 45; CHECK-NEXT: Optimization Remark Emitter 46; CHECK-NEXT: Combine redundant instructions 47; CHECK-NEXT: Simplify the CFG 48; CHECK-NEXT: CallGraph Construction 49; CHECK-NEXT: Globals Alias Analysis 50; CHECK-NEXT: Call Graph SCC Pass Manager 51; CHECK-NEXT: Remove unused exception handling info 52; CHECK-NEXT: Function Integration/Inlining 53; CHECK-NEXT: Deduce function attributes 54; CHECK-NEXT: FunctionPass Manager 55; CHECK-NEXT: Dominator Tree Construction 56; CHECK-NEXT: SROA 57; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) 58; CHECK-NEXT: Function Alias Analysis Results 59; CHECK-NEXT: Memory SSA 60; CHECK-NEXT: Early CSE w/ MemorySSA 61; CHECK-NEXT: Speculatively execute instructions if target has divergent branches 62; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) 63; CHECK-NEXT: Function Alias Analysis Results 64; CHECK-NEXT: Lazy Value Information Analysis 65; CHECK-NEXT: Jump Threading 66; CHECK-NEXT: Value Propagation 67; CHECK-NEXT: Simplify the CFG 68; CHECK-NEXT: Dominator Tree Construction 69; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) 70; CHECK-NEXT: Function Alias Analysis Results 71; CHECK-NEXT: Natural Loop Information 72; CHECK-NEXT: Lazy Branch Probability Analysis 73; CHECK-NEXT: Lazy Block Frequency Analysis 74; CHECK-NEXT: Optimization Remark Emitter 75; CHECK-NEXT: Combine redundant instructions 76; CHECK-NEXT: Optimization Remark Emitter 77; CHECK-NEXT: Tail Call Elimination 78; CHECK-NEXT: Simplify the CFG 79; CHECK-NEXT: Reassociate expressions 80; CHECK-NEXT: Dominator Tree Construction 81; CHECK-NEXT: Natural Loop Information 82; CHECK-NEXT: Canonicalize natural loops 83; CHECK-NEXT: LCSSA Verifier 84; CHECK-NEXT: Loop-Closed SSA Form Pass 85; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) 86; CHECK-NEXT: Function Alias Analysis Results 87; CHECK-NEXT: Scalar Evolution Analysis 88; CHECK-NEXT: Loop Pass Manager 89; CHECK-NEXT: Rotate Loops 90; CHECK-NEXT: Loop Invariant Code Motion 91; CHECK-NEXT: Unswitch loops 92; CHECK-NEXT: Simplify the CFG 93; CHECK-NEXT: Dominator Tree Construction 94; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) 95; CHECK-NEXT: Function Alias Analysis Results 96; CHECK-NEXT: Natural Loop Information 97; CHECK-NEXT: Lazy Branch Probability Analysis 98; CHECK-NEXT: Lazy Block Frequency Analysis 99; CHECK-NEXT: Optimization Remark Emitter 100; CHECK-NEXT: Combine redundant instructions 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: Loop Pass Manager 106; CHECK-NEXT: Induction Variable Simplification 107; CHECK-NEXT: Recognize loop idioms 108; CHECK-NEXT: Delete dead loops 109; CHECK-NEXT: Unroll loops 110; CHECK-NEXT: MergedLoadStoreMotion 111; CHECK-NEXT: Phi Values Analysis 112; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) 113; CHECK-NEXT: Function Alias Analysis Results 114; CHECK-NEXT: Memory Dependence Analysis 115; CHECK-NEXT: Lazy Branch Probability Analysis 116; CHECK-NEXT: Lazy Block Frequency Analysis 117; CHECK-NEXT: Optimization Remark Emitter 118; CHECK-NEXT: Global Value Numbering 119; CHECK-NEXT: Phi Values Analysis 120; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) 121; CHECK-NEXT: Function Alias Analysis Results 122; CHECK-NEXT: Memory Dependence Analysis 123; CHECK-NEXT: MemCpy Optimization 124; CHECK-NEXT: Sparse Conditional Constant Propagation 125; CHECK-NEXT: Demanded bits analysis 126; CHECK-NEXT: Bit-Tracking Dead Code Elimination 127; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) 128; CHECK-NEXT: Function Alias Analysis Results 129; CHECK-NEXT: Natural Loop Information 130; CHECK-NEXT: Lazy Branch Probability Analysis 131; CHECK-NEXT: Lazy Block Frequency Analysis 132; CHECK-NEXT: Optimization Remark Emitter 133; CHECK-NEXT: Combine redundant instructions 134; CHECK-NEXT: Lazy Value Information Analysis 135; CHECK-NEXT: Jump Threading 136; CHECK-NEXT: Value Propagation 137; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) 138; CHECK-NEXT: Function Alias Analysis Results 139; CHECK-NEXT: Phi Values Analysis 140; CHECK-NEXT: Memory Dependence Analysis 141; CHECK-NEXT: Dead Store Elimination 142; CHECK-NEXT: Natural Loop Information 143; CHECK-NEXT: Canonicalize natural loops 144; CHECK-NEXT: LCSSA Verifier 145; CHECK-NEXT: Loop-Closed SSA Form Pass 146; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) 147; CHECK-NEXT: Function Alias Analysis Results 148; CHECK-NEXT: Scalar Evolution Analysis 149; CHECK-NEXT: Loop Pass Manager 150; CHECK-NEXT: Loop Invariant Code Motion 151; CHECK-NEXT: Post-Dominator Tree Construction 152; CHECK-NEXT: Aggressive Dead Code Elimination 153; CHECK-NEXT: Simplify the CFG 154; CHECK-NEXT: Dominator Tree Construction 155; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) 156; CHECK-NEXT: Function Alias Analysis Results 157; CHECK-NEXT: Natural Loop Information 158; CHECK-NEXT: Lazy Branch Probability Analysis 159; CHECK-NEXT: Lazy Block Frequency Analysis 160; CHECK-NEXT: Optimization Remark Emitter 161; CHECK-NEXT: Combine redundant instructions 162; CHECK-NEXT: A No-Op Barrier Pass 163; CHECK-NEXT: Eliminate Available Externally Globals 164; CHECK-NEXT: CallGraph Construction 165; CHECK-NEXT: Deduce function attributes in RPO 166; CHECK-NEXT: Global Variable Optimizer 167; CHECK-NEXT: Unnamed pass: implement Pass::getPassName() 168; CHECK-NEXT: Dead Global Elimination 169; CHECK-NEXT: CallGraph Construction 170; CHECK-NEXT: Globals Alias Analysis 171; CHECK-NEXT: FunctionPass Manager 172; CHECK-NEXT: Float to int 173; CHECK-NEXT: Dominator Tree Construction 174; CHECK-NEXT: Natural Loop Information 175; CHECK-NEXT: Canonicalize natural loops 176; CHECK-NEXT: LCSSA Verifier 177; CHECK-NEXT: Loop-Closed SSA Form Pass 178; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) 179; CHECK-NEXT: Function Alias Analysis Results 180; CHECK-NEXT: Scalar Evolution Analysis 181; CHECK-NEXT: Loop Pass Manager 182; CHECK-NEXT: Rotate Loops 183; CHECK-NEXT: Loop Access Analysis 184; CHECK-NEXT: Lazy Branch Probability Analysis 185; CHECK-NEXT: Lazy Block Frequency Analysis 186; CHECK-NEXT: Optimization Remark Emitter 187; CHECK-NEXT: Loop Distribution 188; CHECK-NEXT: Branch Probability Analysis 189; CHECK-NEXT: Block Frequency Analysis 190; CHECK-NEXT: Scalar Evolution Analysis 191; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) 192; CHECK-NEXT: Function Alias Analysis Results 193; CHECK-NEXT: Loop Access Analysis 194; CHECK-NEXT: Demanded bits analysis 195; CHECK-NEXT: Lazy Branch Probability Analysis 196; CHECK-NEXT: Lazy Block Frequency Analysis 197; CHECK-NEXT: Optimization Remark Emitter 198; CHECK-NEXT: Loop Vectorization 199; CHECK-NEXT: Canonicalize natural loops 200; CHECK-NEXT: Scalar Evolution Analysis 201; CHECK-NEXT: Function Alias Analysis Results 202; CHECK-NEXT: Loop Access Analysis 203; CHECK-NEXT: Loop Load Elimination 204; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) 205; CHECK-NEXT: Function Alias Analysis Results 206; CHECK-NEXT: Lazy Branch Probability Analysis 207; CHECK-NEXT: Lazy Block Frequency Analysis 208; CHECK-NEXT: Optimization Remark Emitter 209; CHECK-NEXT: Combine redundant instructions 210; CHECK-NEXT: Simplify the CFG 211; CHECK-NEXT: Dominator Tree Construction 212; CHECK-NEXT: Natural Loop Information 213; CHECK-NEXT: Scalar Evolution Analysis 214; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) 215; CHECK-NEXT: Function Alias Analysis Results 216; CHECK-NEXT: Demanded bits analysis 217; CHECK-NEXT: Lazy Branch Probability Analysis 218; CHECK-NEXT: Lazy Block Frequency Analysis 219; CHECK-NEXT: Optimization Remark Emitter 220; CHECK-NEXT: SLP Vectorizer 221; CHECK-NEXT: Optimization Remark Emitter 222; CHECK-NEXT: Combine redundant instructions 223; CHECK-NEXT: Canonicalize natural loops 224; CHECK-NEXT: LCSSA Verifier 225; CHECK-NEXT: Loop-Closed SSA Form Pass 226; CHECK-NEXT: Scalar Evolution Analysis 227; CHECK-NEXT: Loop Pass Manager 228; CHECK-NEXT: Unroll loops 229; CHECK-NEXT: Lazy Branch Probability Analysis 230; CHECK-NEXT: Lazy Block Frequency Analysis 231; CHECK-NEXT: Optimization Remark Emitter 232; CHECK-NEXT: Combine redundant instructions 233; CHECK-NEXT: Canonicalize natural loops 234; CHECK-NEXT: LCSSA Verifier 235; CHECK-NEXT: Loop-Closed SSA Form Pass 236; CHECK-NEXT: Scalar Evolution Analysis 237; CHECK-NEXT: Loop Pass Manager 238; CHECK-NEXT: Loop Invariant Code Motion 239; CHECK-NEXT: Alignment from assumptions 240; CHECK-NEXT: Strip Unused Function Prototypes 241; CHECK-NEXT: Dead Global Elimination 242; CHECK-NEXT: Merge Duplicate Global Constants 243; CHECK-NEXT: FunctionPass Manager 244; CHECK-NEXT: Dominator Tree Construction 245; CHECK-NEXT: Natural Loop Information 246; CHECK-NEXT: Branch Probability Analysis 247; CHECK-NEXT: Block Frequency Analysis 248; CHECK-NEXT: Canonicalize natural loops 249; CHECK-NEXT: LCSSA Verifier 250; CHECK-NEXT: Loop-Closed SSA Form Pass 251; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) 252; CHECK-NEXT: Function Alias Analysis Results 253; CHECK-NEXT: Scalar Evolution Analysis 254; CHECK-NEXT: Branch Probability Analysis 255; CHECK-NEXT: Block Frequency Analysis 256; CHECK-NEXT: Loop Pass Manager 257; CHECK-NEXT: Loop Sink 258; CHECK-NEXT: Lazy Branch Probability Analysis 259; CHECK-NEXT: Lazy Block Frequency Analysis 260; CHECK-NEXT: Optimization Remark Emitter 261; CHECK-NEXT: Remove redundant instructions 262; CHECK-NEXT: Hoist/decompose integer division and remainder 263; CHECK-NEXT: Simplify the CFG 264; CHECK-NEXT: Module Verifier 265; CHECK-NEXT: Bitcode Writer 266; CHECK-NEXT: Pass Arguments: 267; CHECK-NEXT: Target Library Information 268; CHECK-NEXT: FunctionPass Manager 269; CHECK-NEXT: Dominator Tree Construction 270; CHECK-NEXT: Natural Loop Information 271; CHECK-NEXT: Branch Probability Analysis 272; CHECK-NEXT: Block Frequency Analysis 273; CHECK-NEXT: Pass Arguments: 274; CHECK-NEXT: Target Library Information 275; CHECK-NEXT: FunctionPass Manager 276; CHECK-NEXT: Dominator Tree Construction 277; CHECK-NEXT: Natural Loop Information 278; CHECK-NEXT: Branch Probability Analysis 279; CHECK-NEXT: Block Frequency Analysis 280 281define void @f() { 282 ret void 283} 284