1; RUN: opt -enable-new-pm=0 -mtriple=x86_64-- -O2 -debug-pass=Structure < %s -o /dev/null 2>&1 | FileCheck --check-prefixes=CHECK,%llvmcheckext %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-EXT: Good Bye World Pass 14; CHECK-NOEXT-NOT: Good Bye World Pass 15; CHECK-NEXT: Instrument function entry/exit with calls to e.g. mcount() (pre inlining) 16; CHECK-NEXT: Simplify the CFG 17; CHECK-NEXT: Dominator Tree Construction 18; CHECK-NEXT: SROA 19; CHECK-NEXT: Early CSE 20; CHECK-NEXT: Lower 'expect' Intrinsics 21; CHECK-NEXT: Pass Arguments: 22; CHECK-NEXT: Target Library Information 23; CHECK-NEXT: Target Transform Information 24; Target Pass Configuration 25; CHECK: Type-Based Alias Analysis 26; CHECK-NEXT: Scoped NoAlias Alias Analysis 27; CHECK-NEXT: Assumption Cache Tracker 28; CHECK-NEXT: Profile summary info 29; CHECK-NEXT: ModulePass Manager 30; CHECK-NEXT: Annotation2Metadata 31; CHECK-NEXT: Force set function attributes 32; CHECK-NEXT: Infer set function attributes 33; CHECK-NEXT: Interprocedural Sparse Conditional Constant Propagation 34; CHECK-NEXT: FunctionPass Manager 35; CHECK-NEXT: Dominator Tree Construction 36; CHECK-NEXT: Called Value Propagation 37; CHECK-NEXT: Global Variable Optimizer 38; CHECK-NEXT: FunctionPass Manager 39; CHECK-NEXT: Dominator Tree Construction 40; CHECK-NEXT: Natural Loop Information 41; CHECK-NEXT: Post-Dominator Tree Construction 42; CHECK-NEXT: Branch Probability Analysis 43; CHECK-NEXT: Block Frequency Analysis 44; CHECK-NEXT: FunctionPass Manager 45; CHECK-NEXT: Dominator Tree Construction 46; CHECK-NEXT: Promote Memory to Register 47; CHECK-NEXT: Dead Argument Elimination 48; CHECK-NEXT: FunctionPass Manager 49; CHECK-NEXT: Dominator Tree Construction 50; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) 51; CHECK-NEXT: Function Alias Analysis Results 52; CHECK-NEXT: Natural Loop Information 53; CHECK-NEXT: Lazy Branch Probability Analysis 54; CHECK-NEXT: Lazy Block Frequency Analysis 55; CHECK-NEXT: Optimization Remark Emitter 56; CHECK-NEXT: Combine redundant instructions 57; CHECK-NEXT: Simplify the CFG 58; CHECK-NEXT: CallGraph Construction 59; CHECK-NEXT: Globals Alias Analysis 60; CHECK-NEXT: Call Graph SCC Pass Manager 61; CHECK-NEXT: Remove unused exception handling info 62; CHECK-NEXT: Function Integration/Inlining 63; CHECK-NEXT: OpenMP specific optimizations 64; CHECK-NEXT: Deduce function attributes 65; CHECK-NEXT: FunctionPass Manager 66; CHECK-NEXT: Dominator Tree Construction 67; CHECK-NEXT: SROA 68; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) 69; CHECK-NEXT: Function Alias Analysis Results 70; CHECK-NEXT: Memory SSA 71; CHECK-NEXT: Early CSE w/ MemorySSA 72; CHECK-NEXT: Speculatively execute instructions if target has divergent branches 73; CHECK-NEXT: Function Alias Analysis Results 74; CHECK-NEXT: Lazy Value Information Analysis 75; CHECK-NEXT: Jump Threading 76; CHECK-NEXT: Value Propagation 77; CHECK-NEXT: Simplify the CFG 78; CHECK-NEXT: Dominator Tree Construction 79; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) 80; CHECK-NEXT: Function Alias Analysis Results 81; CHECK-NEXT: Natural Loop Information 82; CHECK-NEXT: Lazy Branch Probability Analysis 83; CHECK-NEXT: Lazy Block Frequency Analysis 84; CHECK-NEXT: Optimization Remark Emitter 85; CHECK-NEXT: Combine redundant instructions 86; CHECK-NEXT: Conditionally eliminate dead library calls 87; CHECK-NEXT: Natural Loop Information 88; CHECK-NEXT: Post-Dominator Tree Construction 89; CHECK-NEXT: Branch Probability Analysis 90; CHECK-NEXT: Block Frequency Analysis 91; CHECK-NEXT: Lazy Branch Probability Analysis 92; CHECK-NEXT: Lazy Block Frequency Analysis 93; CHECK-NEXT: Optimization Remark Emitter 94; CHECK-NEXT: PGOMemOPSize 95; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) 96; CHECK-NEXT: Function Alias Analysis Results 97; CHECK-NEXT: Natural Loop Information 98; CHECK-NEXT: Lazy Branch Probability Analysis 99; CHECK-NEXT: Lazy Block Frequency Analysis 100; CHECK-NEXT: Optimization Remark Emitter 101; CHECK-NEXT: Tail Call Elimination 102; CHECK-NEXT: Simplify the CFG 103; CHECK-NEXT: Reassociate expressions 104; CHECK-NEXT: Dominator Tree Construction 105; CHECK-NEXT: Natural Loop Information 106; CHECK-NEXT: Canonicalize natural loops 107; CHECK-NEXT: LCSSA Verifier 108; CHECK-NEXT: Loop-Closed SSA Form Pass 109; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) 110; CHECK-NEXT: Function Alias Analysis Results 111; CHECK-NEXT: Scalar Evolution Analysis 112; CHECK-NEXT: Loop Pass Manager 113; CHECK-NEXT: Rotate Loops 114; CHECK-NEXT: Memory SSA 115; CHECK-NEXT: Lazy Branch Probability Analysis 116; CHECK-NEXT: Lazy Block Frequency Analysis 117; CHECK-NEXT: Loop Pass Manager 118; CHECK-NEXT: Loop Invariant Code Motion 119; CHECK-NEXT: Unswitch loops 120; CHECK-NEXT: Simplify the CFG 121; CHECK-NEXT: Dominator Tree Construction 122; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) 123; CHECK-NEXT: Function Alias Analysis Results 124; CHECK-NEXT: Natural Loop Information 125; CHECK-NEXT: Lazy Branch Probability Analysis 126; CHECK-NEXT: Lazy Block Frequency Analysis 127; CHECK-NEXT: Optimization Remark Emitter 128; CHECK-NEXT: Combine redundant instructions 129; CHECK-NEXT: Canonicalize natural loops 130; CHECK-NEXT: LCSSA Verifier 131; CHECK-NEXT: Loop-Closed SSA Form Pass 132; CHECK-NEXT: Scalar Evolution Analysis 133; CHECK-NEXT: Loop Pass Manager 134; CHECK-NEXT: Recognize loop idioms 135; CHECK-NEXT: Induction Variable Simplification 136; CHECK-NEXT: Delete dead loops 137; CHECK-NEXT: Unroll loops 138; CHECK-NEXT: SROA 139; CHECK-NEXT: Function Alias Analysis Results 140; CHECK-NEXT: MergedLoadStoreMotion 141; CHECK-NEXT: Phi Values Analysis 142; CHECK-NEXT: Function Alias Analysis Results 143; CHECK-NEXT: Memory Dependence Analysis 144; CHECK-NEXT: Lazy Branch Probability Analysis 145; CHECK-NEXT: Lazy Block Frequency Analysis 146; CHECK-NEXT: Optimization Remark Emitter 147; CHECK-NEXT: Global Value Numbering 148; CHECK-NEXT: Phi Values Analysis 149; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) 150; CHECK-NEXT: Function Alias Analysis Results 151; CHECK-NEXT: Memory Dependence Analysis 152; CHECK-NEXT: MemCpy Optimization 153; CHECK-NEXT: Sparse Conditional Constant Propagation 154; CHECK-NEXT: Demanded bits analysis 155; CHECK-NEXT: Bit-Tracking Dead Code Elimination 156; CHECK-NEXT: Function Alias Analysis Results 157; CHECK-NEXT: Lazy Branch Probability Analysis 158; CHECK-NEXT: Lazy Block Frequency Analysis 159; CHECK-NEXT: Optimization Remark Emitter 160; CHECK-NEXT: Combine redundant instructions 161; CHECK-NEXT: Lazy Value Information Analysis 162; CHECK-NEXT: Jump Threading 163; CHECK-NEXT: Value Propagation 164; CHECK-NEXT: Post-Dominator Tree Construction 165; CHECK-NEXT: Aggressive Dead Code Elimination 166; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) 167; CHECK-NEXT: Function Alias Analysis Results 168; CHECK-NEXT: Memory SSA 169; CHECK-NEXT: Dead Store Elimination 170; CHECK-NEXT: Natural Loop Information 171; CHECK-NEXT: Canonicalize natural loops 172; CHECK-NEXT: LCSSA Verifier 173; CHECK-NEXT: Loop-Closed SSA Form Pass 174; CHECK-NEXT: Function Alias Analysis Results 175; CHECK-NEXT: Scalar Evolution Analysis 176; CHECK-NEXT: Lazy Branch Probability Analysis 177; CHECK-NEXT: Lazy Block Frequency Analysis 178; CHECK-NEXT: Loop Pass Manager 179; CHECK-NEXT: Loop Invariant Code Motion 180; CHECK-NEXT: Simplify the CFG 181; CHECK-NEXT: Dominator Tree Construction 182; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) 183; CHECK-NEXT: Function Alias Analysis Results 184; CHECK-NEXT: Natural Loop Information 185; CHECK-NEXT: Lazy Branch Probability Analysis 186; CHECK-NEXT: Lazy Block Frequency Analysis 187; CHECK-NEXT: Optimization Remark Emitter 188; CHECK-NEXT: Combine redundant instructions 189; CHECK-NEXT: A No-Op Barrier Pass 190; CHECK-NEXT: Eliminate Available Externally Globals 191; CHECK-NEXT: CallGraph Construction 192; CHECK-NEXT: Deduce function attributes in RPO 193; CHECK-NEXT: Global Variable Optimizer 194; CHECK-NEXT: FunctionPass Manager 195; CHECK-NEXT: Dominator Tree Construction 196; CHECK-NEXT: Natural Loop Information 197; CHECK-NEXT: Post-Dominator Tree Construction 198; CHECK-NEXT: Branch Probability Analysis 199; CHECK-NEXT: Block Frequency Analysis 200; CHECK-NEXT: Dead Global Elimination 201; CHECK-NEXT: CallGraph Construction 202; CHECK-NEXT: Globals Alias Analysis 203; CHECK-NEXT: FunctionPass Manager 204; CHECK-NEXT: Dominator Tree Construction 205; CHECK-NEXT: Float to int 206; CHECK-NEXT: Lower constant intrinsics 207; CHECK-NEXT: Dominator Tree Construction 208; CHECK-NEXT: Natural Loop Information 209; CHECK-NEXT: Canonicalize natural loops 210; CHECK-NEXT: LCSSA Verifier 211; CHECK-NEXT: Loop-Closed SSA Form Pass 212; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) 213; CHECK-NEXT: Function Alias Analysis Results 214; CHECK-NEXT: Scalar Evolution Analysis 215; CHECK-NEXT: Loop Pass Manager 216; CHECK-NEXT: Rotate Loops 217; CHECK-NEXT: Loop Access Analysis 218; CHECK-NEXT: Lazy Branch Probability Analysis 219; CHECK-NEXT: Lazy Block Frequency Analysis 220; CHECK-NEXT: Optimization Remark Emitter 221; CHECK-NEXT: Loop Distribution 222; CHECK-NEXT: Post-Dominator Tree Construction 223; CHECK-NEXT: Branch Probability Analysis 224; CHECK-NEXT: Block Frequency Analysis 225; CHECK-NEXT: Scalar Evolution Analysis 226; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) 227; CHECK-NEXT: Function Alias Analysis Results 228; CHECK-NEXT: Loop Access Analysis 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: Inject TLI Mappings 234; CHECK-NEXT: Loop Vectorization 235; CHECK-NEXT: Canonicalize natural loops 236; CHECK-NEXT: Scalar Evolution Analysis 237; CHECK-NEXT: Function Alias Analysis Results 238; CHECK-NEXT: Loop Access Analysis 239; CHECK-NEXT: Lazy Branch Probability Analysis 240; CHECK-NEXT: Lazy Block Frequency Analysis 241; CHECK-NEXT: Loop Load Elimination 242; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) 243; CHECK-NEXT: Function Alias Analysis Results 244; CHECK-NEXT: Lazy Branch Probability Analysis 245; CHECK-NEXT: Lazy Block Frequency Analysis 246; CHECK-NEXT: Optimization Remark Emitter 247; CHECK-NEXT: Combine redundant instructions 248; CHECK-NEXT: Simplify the CFG 249; CHECK-NEXT: Dominator Tree Construction 250; CHECK-NEXT: Natural Loop Information 251; CHECK-NEXT: Scalar Evolution Analysis 252; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) 253; CHECK-NEXT: Function Alias Analysis Results 254; CHECK-NEXT: Demanded bits analysis 255; CHECK-NEXT: Lazy Branch Probability Analysis 256; CHECK-NEXT: Lazy Block Frequency Analysis 257; CHECK-NEXT: Optimization Remark Emitter 258; CHECK-NEXT: Inject TLI Mappings 259; CHECK-NEXT: SLP Vectorizer 260; CHECK-NEXT: Optimize scalar/vector ops 261; CHECK-NEXT: Optimization Remark Emitter 262; CHECK-NEXT: Combine redundant instructions 263; CHECK-NEXT: Canonicalize natural loops 264; CHECK-NEXT: LCSSA Verifier 265; CHECK-NEXT: Loop-Closed SSA Form Pass 266; CHECK-NEXT: Scalar Evolution Analysis 267; CHECK-NEXT: Loop Pass Manager 268; CHECK-NEXT: Unroll loops 269; CHECK-NEXT: Lazy Branch Probability Analysis 270; CHECK-NEXT: Lazy Block Frequency Analysis 271; CHECK-NEXT: Optimization Remark Emitter 272; CHECK-NEXT: Combine redundant instructions 273; CHECK-NEXT: Memory SSA 274; CHECK-NEXT: Canonicalize natural loops 275; CHECK-NEXT: LCSSA Verifier 276; CHECK-NEXT: Loop-Closed SSA Form Pass 277; CHECK-NEXT: Scalar Evolution Analysis 278; CHECK-NEXT: Lazy Branch Probability Analysis 279; CHECK-NEXT: Lazy Block Frequency Analysis 280; CHECK-NEXT: Loop Pass Manager 281; CHECK-NEXT: Loop Invariant Code Motion 282; CHECK-NEXT: Optimization Remark Emitter 283; CHECK-NEXT: Warn about non-applied transformations 284; CHECK-NEXT: Alignment from assumptions 285; CHECK-NEXT: Strip Unused Function Prototypes 286; CHECK-NEXT: Dead Global Elimination 287; CHECK-NEXT: Merge Duplicate Global Constants 288; CHECK-NEXT: Call Graph Profile 289; CHECK-NEXT: FunctionPass Manager 290; CHECK-NEXT: Dominator Tree Construction 291; CHECK-NEXT: Natural Loop Information 292; CHECK-NEXT: Lazy Branch Probability Analysis 293; CHECK-NEXT: Lazy Block Frequency Analysis 294; CHECK-NEXT: FunctionPass Manager 295; CHECK-NEXT: Dominator Tree Construction 296; CHECK-NEXT: Natural Loop Information 297; CHECK-NEXT: Post-Dominator Tree Construction 298; CHECK-NEXT: Branch Probability Analysis 299; CHECK-NEXT: Block Frequency Analysis 300; CHECK-NEXT: Canonicalize natural loops 301; CHECK-NEXT: LCSSA Verifier 302; CHECK-NEXT: Loop-Closed SSA Form Pass 303; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) 304; CHECK-NEXT: Function Alias Analysis Results 305; CHECK-NEXT: Scalar Evolution Analysis 306; CHECK-NEXT: Block Frequency Analysis 307; CHECK-NEXT: Loop Pass Manager 308; CHECK-NEXT: Loop Sink 309; CHECK-NEXT: Lazy Branch Probability Analysis 310; CHECK-NEXT: Lazy Block Frequency Analysis 311; CHECK-NEXT: Optimization Remark Emitter 312; CHECK-NEXT: Remove redundant instructions 313; CHECK-NEXT: Hoist/decompose integer division and remainder 314; CHECK-NEXT: Simplify the CFG 315; CHECK-NEXT: Annotation Remarks 316; CHECK-NEXT: Module Verifier 317; CHECK-NEXT: Bitcode Writer 318; CHECK-NEXT: Pass Arguments: 319; CHECK-NEXT: FunctionPass Manager 320; CHECK-NEXT: Dominator Tree Construction 321; CHECK-NEXT: Pass Arguments: 322; CHECK-NEXT: Target Library Information 323; CHECK-NEXT: FunctionPass Manager 324; CHECK-NEXT: Dominator Tree Construction 325; CHECK-NEXT: Natural Loop Information 326; CHECK-NEXT: Post-Dominator Tree Construction 327; CHECK-NEXT: Branch Probability Analysis 328; CHECK-NEXT: Block Frequency Analysis 329; CHECK-NEXT: Pass Arguments: 330; CHECK-NEXT: Target Library Information 331; CHECK-NEXT: FunctionPass Manager 332; CHECK-NEXT: Dominator Tree Construction 333; CHECK-NEXT: Natural Loop Information 334; CHECK-NEXT: Post-Dominator Tree Construction 335; CHECK-NEXT: Branch Probability Analysis 336; CHECK-NEXT: Block Frequency Analysis 337 338define void @f() { 339 ret void 340} 341