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 298define void @f() { 299 ret void 300} 301