1; RUN: opt -mtriple=x86_64-- -O2 -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: Conditionally eliminate dead library calls 77; CHECK-NEXT: Natural Loop Information 78; CHECK-NEXT: Branch Probability Analysis 79; CHECK-NEXT: Block Frequency Analysis 80; CHECK-NEXT: Lazy Branch Probability Analysis 81; CHECK-NEXT: Lazy Block Frequency Analysis 82; CHECK-NEXT: Optimization Remark Emitter 83; CHECK-NEXT: PGOMemOPSize 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: Simplify the CFG 92; CHECK-NEXT: Reassociate expressions 93; CHECK-NEXT: Dominator Tree Construction 94; CHECK-NEXT: Natural Loop Information 95; CHECK-NEXT: Canonicalize natural loops 96; CHECK-NEXT: LCSSA Verifier 97; CHECK-NEXT: Loop-Closed SSA Form Pass 98; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) 99; CHECK-NEXT: Function Alias Analysis Results 100; CHECK-NEXT: Scalar Evolution Analysis 101; CHECK-NEXT: Loop Pass Manager 102; CHECK-NEXT: Rotate Loops 103; CHECK-NEXT: Loop Invariant Code Motion 104; CHECK-NEXT: Unswitch loops 105; CHECK-NEXT: Simplify the CFG 106; CHECK-NEXT: Dominator Tree Construction 107; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) 108; CHECK-NEXT: Function Alias Analysis Results 109; CHECK-NEXT: Natural Loop Information 110; CHECK-NEXT: Lazy Branch Probability Analysis 111; CHECK-NEXT: Lazy Block Frequency Analysis 112; CHECK-NEXT: Optimization Remark Emitter 113; CHECK-NEXT: Combine redundant instructions 114; CHECK-NEXT: Canonicalize natural loops 115; CHECK-NEXT: LCSSA Verifier 116; CHECK-NEXT: Loop-Closed SSA Form Pass 117; CHECK-NEXT: Scalar Evolution Analysis 118; CHECK-NEXT: Loop Pass Manager 119; CHECK-NEXT: Induction Variable Simplification 120; CHECK-NEXT: Recognize loop idioms 121; CHECK-NEXT: Delete dead loops 122; CHECK-NEXT: Unroll loops 123; CHECK-NEXT: MergedLoadStoreMotion 124; CHECK-NEXT: Phi Values Analysis 125; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) 126; CHECK-NEXT: Function Alias Analysis Results 127; CHECK-NEXT: Memory Dependence Analysis 128; CHECK-NEXT: Lazy Branch Probability Analysis 129; CHECK-NEXT: Lazy Block Frequency Analysis 130; CHECK-NEXT: Optimization Remark Emitter 131; CHECK-NEXT: Global Value Numbering 132; CHECK-NEXT: Phi Values Analysis 133; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) 134; CHECK-NEXT: Function Alias Analysis Results 135; CHECK-NEXT: Memory Dependence Analysis 136; CHECK-NEXT: MemCpy Optimization 137; CHECK-NEXT: Sparse Conditional Constant Propagation 138; CHECK-NEXT: Demanded bits analysis 139; CHECK-NEXT: Bit-Tracking Dead Code Elimination 140; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) 141; CHECK-NEXT: Function Alias Analysis Results 142; CHECK-NEXT: Natural Loop Information 143; CHECK-NEXT: Lazy Branch Probability Analysis 144; CHECK-NEXT: Lazy Block Frequency Analysis 145; CHECK-NEXT: Optimization Remark Emitter 146; CHECK-NEXT: Combine redundant instructions 147; CHECK-NEXT: Lazy Value Information Analysis 148; CHECK-NEXT: Jump Threading 149; CHECK-NEXT: Value Propagation 150; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) 151; CHECK-NEXT: Function Alias Analysis Results 152; CHECK-NEXT: Phi Values Analysis 153; CHECK-NEXT: Memory Dependence Analysis 154; CHECK-NEXT: Dead Store Elimination 155; CHECK-NEXT: Natural Loop Information 156; CHECK-NEXT: Canonicalize natural loops 157; CHECK-NEXT: LCSSA Verifier 158; CHECK-NEXT: Loop-Closed SSA Form Pass 159; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) 160; CHECK-NEXT: Function Alias Analysis Results 161; CHECK-NEXT: Scalar Evolution Analysis 162; CHECK-NEXT: Loop Pass Manager 163; CHECK-NEXT: Loop Invariant Code Motion 164; CHECK-NEXT: Post-Dominator Tree Construction 165; CHECK-NEXT: Aggressive Dead Code Elimination 166; CHECK-NEXT: Simplify the CFG 167; CHECK-NEXT: Dominator Tree Construction 168; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) 169; CHECK-NEXT: Function Alias Analysis Results 170; CHECK-NEXT: Natural Loop Information 171; CHECK-NEXT: Lazy Branch Probability Analysis 172; CHECK-NEXT: Lazy Block Frequency Analysis 173; CHECK-NEXT: Optimization Remark Emitter 174; CHECK-NEXT: Combine redundant instructions 175; CHECK-NEXT: A No-Op Barrier Pass 176; CHECK-NEXT: Eliminate Available Externally Globals 177; CHECK-NEXT: CallGraph Construction 178; CHECK-NEXT: Deduce function attributes in RPO 179; CHECK-NEXT: Global Variable Optimizer 180; CHECK-NEXT: Unnamed pass: implement Pass::getPassName() 181; CHECK-NEXT: Dead Global Elimination 182; CHECK-NEXT: CallGraph Construction 183; CHECK-NEXT: Globals Alias Analysis 184; CHECK-NEXT: FunctionPass Manager 185; CHECK-NEXT: Float to int 186; CHECK-NEXT: Dominator Tree Construction 187; CHECK-NEXT: Natural Loop Information 188; CHECK-NEXT: Canonicalize natural loops 189; CHECK-NEXT: LCSSA Verifier 190; CHECK-NEXT: Loop-Closed SSA Form Pass 191; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) 192; CHECK-NEXT: Function Alias Analysis Results 193; CHECK-NEXT: Scalar Evolution Analysis 194; CHECK-NEXT: Loop Pass Manager 195; CHECK-NEXT: Rotate Loops 196; CHECK-NEXT: Loop Access Analysis 197; CHECK-NEXT: Lazy Branch Probability Analysis 198; CHECK-NEXT: Lazy Block Frequency Analysis 199; CHECK-NEXT: Optimization Remark Emitter 200; CHECK-NEXT: Loop Distribution 201; CHECK-NEXT: Branch Probability Analysis 202; CHECK-NEXT: Block Frequency Analysis 203; CHECK-NEXT: Scalar Evolution Analysis 204; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) 205; CHECK-NEXT: Function Alias Analysis Results 206; CHECK-NEXT: Loop Access Analysis 207; CHECK-NEXT: Demanded bits analysis 208; CHECK-NEXT: Lazy Branch Probability Analysis 209; CHECK-NEXT: Lazy Block Frequency Analysis 210; CHECK-NEXT: Optimization Remark Emitter 211; CHECK-NEXT: Loop Vectorization 212; CHECK-NEXT: Canonicalize natural loops 213; CHECK-NEXT: Scalar Evolution Analysis 214; CHECK-NEXT: Function Alias Analysis Results 215; CHECK-NEXT: Loop Access Analysis 216; CHECK-NEXT: Loop Load Elimination 217; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) 218; CHECK-NEXT: Function Alias Analysis Results 219; CHECK-NEXT: Lazy Branch Probability Analysis 220; CHECK-NEXT: Lazy Block Frequency Analysis 221; CHECK-NEXT: Optimization Remark Emitter 222; CHECK-NEXT: Combine redundant instructions 223; CHECK-NEXT: Simplify the CFG 224; CHECK-NEXT: Dominator Tree Construction 225; CHECK-NEXT: Natural Loop Information 226; CHECK-NEXT: Scalar Evolution Analysis 227; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) 228; CHECK-NEXT: Function Alias Analysis Results 229; CHECK-NEXT: Demanded bits analysis 230; CHECK-NEXT: Lazy Branch Probability Analysis 231; CHECK-NEXT: Lazy Block Frequency Analysis 232; CHECK-NEXT: Optimization Remark Emitter 233; CHECK-NEXT: SLP Vectorizer 234; CHECK-NEXT: Optimization Remark Emitter 235; CHECK-NEXT: Combine redundant instructions 236; CHECK-NEXT: Canonicalize natural loops 237; CHECK-NEXT: LCSSA Verifier 238; CHECK-NEXT: Loop-Closed SSA Form Pass 239; CHECK-NEXT: Scalar Evolution Analysis 240; CHECK-NEXT: Loop Pass Manager 241; CHECK-NEXT: Unroll loops 242; CHECK-NEXT: Lazy Branch Probability Analysis 243; CHECK-NEXT: Lazy Block Frequency Analysis 244; CHECK-NEXT: Optimization Remark Emitter 245; CHECK-NEXT: Combine redundant instructions 246; CHECK-NEXT: Canonicalize natural loops 247; CHECK-NEXT: LCSSA Verifier 248; CHECK-NEXT: Loop-Closed SSA Form Pass 249; CHECK-NEXT: Scalar Evolution Analysis 250; CHECK-NEXT: Loop Pass Manager 251; CHECK-NEXT: Loop Invariant Code Motion 252; CHECK-NEXT: Alignment from assumptions 253; CHECK-NEXT: Strip Unused Function Prototypes 254; CHECK-NEXT: Dead Global Elimination 255; CHECK-NEXT: Merge Duplicate Global Constants 256; CHECK-NEXT: FunctionPass Manager 257; CHECK-NEXT: Dominator Tree Construction 258; CHECK-NEXT: Natural Loop Information 259; CHECK-NEXT: Branch Probability Analysis 260; CHECK-NEXT: Block Frequency Analysis 261; CHECK-NEXT: Canonicalize natural loops 262; CHECK-NEXT: LCSSA Verifier 263; CHECK-NEXT: Loop-Closed SSA Form Pass 264; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) 265; CHECK-NEXT: Function Alias Analysis Results 266; CHECK-NEXT: Scalar Evolution Analysis 267; CHECK-NEXT: Branch Probability Analysis 268; CHECK-NEXT: Block Frequency Analysis 269; CHECK-NEXT: Loop Pass Manager 270; CHECK-NEXT: Loop Sink 271; CHECK-NEXT: Lazy Branch Probability Analysis 272; CHECK-NEXT: Lazy Block Frequency Analysis 273; CHECK-NEXT: Optimization Remark Emitter 274; CHECK-NEXT: Remove redundant instructions 275; CHECK-NEXT: Hoist/decompose integer division and remainder 276; CHECK-NEXT: Simplify the CFG 277; CHECK-NEXT: Module Verifier 278; CHECK-NEXT: Bitcode Writer 279; CHECK-NEXT: Pass Arguments: 280; CHECK-NEXT: Target Library Information 281; CHECK-NEXT: FunctionPass Manager 282; CHECK-NEXT: Dominator Tree Construction 283; CHECK-NEXT: Natural Loop Information 284; CHECK-NEXT: Branch Probability Analysis 285; CHECK-NEXT: Block Frequency Analysis 286; CHECK-NEXT: Pass Arguments: 287; CHECK-NEXT: Target Library Information 288; CHECK-NEXT: FunctionPass Manager 289; CHECK-NEXT: Dominator Tree Construction 290; CHECK-NEXT: Natural Loop Information 291; CHECK-NEXT: Branch Probability Analysis 292; CHECK-NEXT: Block Frequency Analysis 293 294define void @f() { 295 ret void 296} 297