1; RUN: opt -O0 -mtriple=amdgcn--amdhsa -disable-output -disable-verify -debug-pass=Structure -enable-new-pm=0 %s 2>&1 | FileCheck -check-prefix=GCN-O0 %s 2; RUN: opt -O1 -mtriple=amdgcn--amdhsa -disable-output -disable-verify -debug-pass=Structure -enable-new-pm=0 %s 2>&1 | FileCheck -check-prefix=GCN-O1 %s 3; RUN: opt -O2 -mtriple=amdgcn--amdhsa -disable-output -disable-verify -debug-pass=Structure -enable-new-pm=0 %s 2>&1 | FileCheck -check-prefix=GCN-O2 %s 4; RUN: opt -O3 -mtriple=amdgcn--amdhsa -disable-output -disable-verify -debug-pass=Structure -enable-new-pm=0 %s 2>&1 | FileCheck -check-prefix=GCN-O3 %s 5 6; REQUIRES: asserts 7 8; GCN-O0: Pass Arguments: 9; GCN-O0-NEXT: Target Transform Information 10; GCN-O0-NEXT: FunctionPass Manager 11; GCN-O0-NEXT: Early propagate attributes from kernels to functions 12; GCN-O0-NEXT: Replace builtin math calls with that native versions. 13; GCN-O0-NEXT: Instrument function entry/exit with calls to e.g. mcount() (pre inlining) 14 15; GCN-O0-NEXT: Pass Arguments: 16; GCN-O0-NEXT: Target Library Information 17; GCN-O0-NEXT: Target Transform Information 18; GCN-O0-NEXT: Target Pass Configuration 19; GCN-O0-NEXT: Assumption Cache Tracker 20; GCN-O0-NEXT: Profile summary info 21; GCN-O0-NEXT: ModulePass Manager 22; GCN-O0-NEXT: Annotation2Metadata 23; GCN-O0-NEXT: Force set function attributes 24; GCN-O0-NEXT: CallGraph Construction 25; GCN-O0-NEXT: Call Graph SCC Pass Manager 26; GCN-O0-NEXT: Function Integration/Inlining 27; GCN-O0-NEXT: A No-Op Barrier Pass 28 29 30; GCN-O1: Pass Arguments: 31; GCN-O1-NEXT: Target Transform Information 32; GCN-O1-NEXT: AMDGPU Address space based Alias Analysis 33; GCN-O1-NEXT: External Alias Analysis 34; GCN-O1-NEXT: Assumption Cache Tracker 35; GCN-O1-NEXT: Target Library Information 36; GCN-O1-NEXT: Type-Based Alias Analysis 37; GCN-O1-NEXT: Scoped NoAlias Alias Analysis 38; GCN-O1-NEXT: FunctionPass Manager 39; GCN-O1-NEXT: Early propagate attributes from kernels to functions 40; GCN-O1-NEXT: Replace builtin math calls with that native versions. 41; GCN-O1-NEXT: Dominator Tree Construction 42; GCN-O1-NEXT: Basic Alias Analysis (stateless AA impl) 43; GCN-O1-NEXT: Function Alias Analysis Results 44; GCN-O1-NEXT: Simplify well-known AMD library calls 45; GCN-O1-NEXT: Instrument function entry/exit with calls to e.g. mcount() (pre inlining) 46; GCN-O1-NEXT: Simplify the CFG 47; GCN-O1-NEXT: Dominator Tree Construction 48; GCN-O1-NEXT: SROA 49; GCN-O1-NEXT: Early CSE 50; GCN-O1-NEXT: Lower 'expect' Intrinsics 51 52; GCN-O1-NEXT: Pass Arguments: 53; GCN-O1-NEXT: Target Library Information 54; GCN-O1-NEXT: Target Transform Information 55; GCN-O1-NEXT: Target Pass Configuration 56; GCN-O1-NEXT: Type-Based Alias Analysis 57; GCN-O1-NEXT: Scoped NoAlias Alias Analysis 58; GCN-O1-NEXT: AMDGPU Address space based Alias Analysis 59; GCN-O1-NEXT: External Alias Analysis 60; GCN-O1-NEXT: Assumption Cache Tracker 61; GCN-O1-NEXT: Profile summary info 62; GCN-O1-NEXT: ModulePass Manager 63; GCN-O1-NEXT: Annotation2Metadata 64; GCN-O1-NEXT: Force set function attributes 65; GCN-O1-NEXT: Infer set function attributes 66; GCN-O1-NEXT: Unify multiple OpenCL metadata due to linking 67; GCN-O1-NEXT: AMDGPU Printf lowering 68; GCN-O1-NEXT: FunctionPass Manager 69; GCN-O1-NEXT: Dominator Tree Construction 70; GCN-O1-NEXT: Late propagate attributes from kernels to functions 71; GCN-O1-NEXT: Interprocedural Sparse Conditional Constant Propagation 72; GCN-O1-NEXT: FunctionPass Manager 73; GCN-O1-NEXT: Dominator Tree Construction 74; GCN-O1-NEXT: Called Value Propagation 75; GCN-O1-NEXT: Global Variable Optimizer 76; GCN-O1-NEXT: FunctionPass Manager 77; GCN-O1-NEXT: Dominator Tree Construction 78; GCN-O1-NEXT: Natural Loop Information 79; GCN-O1-NEXT: Post-Dominator Tree Construction 80; GCN-O1-NEXT: Branch Probability Analysis 81; GCN-O1-NEXT: Block Frequency Analysis 82; GCN-O1-NEXT: FunctionPass Manager 83; GCN-O1-NEXT: Dominator Tree Construction 84; GCN-O1-NEXT: Promote Memory to Register 85; GCN-O1-NEXT: Dead Argument Elimination 86; GCN-O1-NEXT: FunctionPass Manager 87; GCN-O1-NEXT: Dominator Tree Construction 88; GCN-O1-NEXT: Basic Alias Analysis (stateless AA impl) 89; GCN-O1-NEXT: Function Alias Analysis Results 90; GCN-O1-NEXT: Natural Loop Information 91; GCN-O1-NEXT: Lazy Branch Probability Analysis 92; GCN-O1-NEXT: Lazy Block Frequency Analysis 93; GCN-O1-NEXT: Optimization Remark Emitter 94; GCN-O1-NEXT: Combine redundant instructions 95; GCN-O1-NEXT: Simplify the CFG 96; GCN-O1-NEXT: CallGraph Construction 97; GCN-O1-NEXT: Globals Alias Analysis 98; GCN-O1-NEXT: Call Graph SCC Pass Manager 99; GCN-O1-NEXT: Remove unused exception handling info 100; GCN-O1-NEXT: Function Integration/Inlining 101; GCN-O1-NEXT: Deduce function attributes 102; GCN-O1-NEXT: FunctionPass Manager 103; GCN-O1-NEXT: Infer address spaces 104; GCN-O1-NEXT: AMDGPU Kernel Attributes 105; GCN-O1-NEXT: FunctionPass Manager 106; GCN-O1-NEXT: AMDGPU Promote Alloca to vector 107; GCN-O1-NEXT: Dominator Tree Construction 108; GCN-O1-NEXT: SROA 109; GCN-O1-NEXT: Basic Alias Analysis (stateless AA impl) 110; GCN-O1-NEXT: Function Alias Analysis Results 111; GCN-O1-NEXT: Memory SSA 112; GCN-O1-NEXT: Early CSE w/ MemorySSA 113; GCN-O1-NEXT: Simplify the CFG 114; GCN-O1-NEXT: Dominator Tree Construction 115; GCN-O1-NEXT: Basic Alias Analysis (stateless AA impl) 116; GCN-O1-NEXT: Function Alias Analysis Results 117; GCN-O1-NEXT: Natural Loop Information 118; GCN-O1-NEXT: Lazy Branch Probability Analysis 119; GCN-O1-NEXT: Lazy Block Frequency Analysis 120; GCN-O1-NEXT: Optimization Remark Emitter 121; GCN-O1-NEXT: Combine redundant instructions 122; GCN-O1-NEXT: Conditionally eliminate dead library calls 123; GCN-O1-NEXT: Natural Loop Information 124; GCN-O1-NEXT: Post-Dominator Tree Construction 125; GCN-O1-NEXT: Branch Probability Analysis 126; GCN-O1-NEXT: Block Frequency Analysis 127; GCN-O1-NEXT: Lazy Branch Probability Analysis 128; GCN-O1-NEXT: Lazy Block Frequency Analysis 129; GCN-O1-NEXT: Optimization Remark Emitter 130; GCN-O1-NEXT: PGOMemOPSize 131; GCN-O1-NEXT: Simplify the CFG 132; GCN-O1-NEXT: Reassociate expressions 133; GCN-O1-NEXT: Dominator Tree Construction 134; GCN-O1-NEXT: Natural Loop Information 135; GCN-O1-NEXT: Canonicalize natural loops 136; GCN-O1-NEXT: LCSSA Verifier 137; GCN-O1-NEXT: Loop-Closed SSA Form Pass 138; GCN-O1-NEXT: Basic Alias Analysis (stateless AA impl) 139; GCN-O1-NEXT: Function Alias Analysis Results 140; GCN-O1-NEXT: Scalar Evolution Analysis 141; GCN-O1-NEXT: Loop Pass Manager 142; GCN-O1-NEXT: Rotate Loops 143; GCN-O1-NEXT: Memory SSA 144; GCN-O1-NEXT: Lazy Branch Probability Analysis 145; GCN-O1-NEXT: Lazy Block Frequency Analysis 146; GCN-O1-NEXT: Loop Pass Manager 147; GCN-O1-NEXT: Loop Invariant Code Motion 148; GCN-O1-NEXT: Post-Dominator Tree Construction 149; GCN-O1-NEXT: Legacy Divergence Analysis 150; GCN-O1-NEXT: Loop Pass Manager 151; GCN-O1-NEXT: Unswitch loops 152; GCN-O1-NEXT: Simplify the CFG 153; GCN-O1-NEXT: Dominator Tree Construction 154; GCN-O1-NEXT: Basic Alias Analysis (stateless AA impl) 155; GCN-O1-NEXT: Function Alias Analysis Results 156; GCN-O1-NEXT: Natural Loop Information 157; GCN-O1-NEXT: Lazy Branch Probability Analysis 158; GCN-O1-NEXT: Lazy Block Frequency Analysis 159; GCN-O1-NEXT: Optimization Remark Emitter 160; GCN-O1-NEXT: Combine redundant instructions 161; GCN-O1-NEXT: Canonicalize natural loops 162; GCN-O1-NEXT: LCSSA Verifier 163; GCN-O1-NEXT: Loop-Closed SSA Form Pass 164; GCN-O1-NEXT: Scalar Evolution Analysis 165; GCN-O1-NEXT: Loop Pass Manager 166; GCN-O1-NEXT: Recognize loop idioms 167; GCN-O1-NEXT: Induction Variable Simplification 168; GCN-O1-NEXT: Delete dead loops 169; GCN-O1-NEXT: Unroll loops 170; GCN-O1-NEXT: SROA 171; GCN-O1-NEXT: Phi Values Analysis 172; GCN-O1-NEXT: Function Alias Analysis Results 173; GCN-O1-NEXT: Memory Dependence Analysis 174; GCN-O1-NEXT: MemCpy Optimization 175; GCN-O1-NEXT: Sparse Conditional Constant Propagation 176; GCN-O1-NEXT: Demanded bits analysis 177; GCN-O1-NEXT: Bit-Tracking Dead Code Elimination 178; GCN-O1-NEXT: Function Alias Analysis Results 179; GCN-O1-NEXT: Lazy Branch Probability Analysis 180; GCN-O1-NEXT: Lazy Block Frequency Analysis 181; GCN-O1-NEXT: Optimization Remark Emitter 182; GCN-O1-NEXT: Combine redundant instructions 183; GCN-O1-NEXT: Post-Dominator Tree Construction 184; GCN-O1-NEXT: Aggressive Dead Code Elimination 185; GCN-O1-NEXT: Simplify the CFG 186; GCN-O1-NEXT: Dominator Tree Construction 187; GCN-O1-NEXT: Basic Alias Analysis (stateless AA impl) 188; GCN-O1-NEXT: Function Alias Analysis Results 189; GCN-O1-NEXT: Natural Loop Information 190; GCN-O1-NEXT: Lazy Branch Probability Analysis 191; GCN-O1-NEXT: Lazy Block Frequency Analysis 192; GCN-O1-NEXT: Optimization Remark Emitter 193; GCN-O1-NEXT: Combine redundant instructions 194; GCN-O1-NEXT: A No-Op Barrier Pass 195; GCN-O1-NEXT: CallGraph Construction 196; GCN-O1-NEXT: Deduce function attributes in RPO 197; GCN-O1-NEXT: Global Variable Optimizer 198; GCN-O1-NEXT: FunctionPass Manager 199; GCN-O1-NEXT: Dominator Tree Construction 200; GCN-O1-NEXT: Natural Loop Information 201; GCN-O1-NEXT: Post-Dominator Tree Construction 202; GCN-O1-NEXT: Branch Probability Analysis 203; GCN-O1-NEXT: Block Frequency Analysis 204; GCN-O1-NEXT: Dead Global Elimination 205; GCN-O1-NEXT: CallGraph Construction 206; GCN-O1-NEXT: Globals Alias Analysis 207; GCN-O1-NEXT: FunctionPass Manager 208; GCN-O1-NEXT: Dominator Tree Construction 209; GCN-O1-NEXT: Float to int 210; GCN-O1-NEXT: Lower constant intrinsics 211; GCN-O1-NEXT: Dominator Tree Construction 212; GCN-O1-NEXT: Natural Loop Information 213; GCN-O1-NEXT: Canonicalize natural loops 214; GCN-O1-NEXT: LCSSA Verifier 215; GCN-O1-NEXT: Loop-Closed SSA Form Pass 216; GCN-O1-NEXT: Basic Alias Analysis (stateless AA impl) 217; GCN-O1-NEXT: Function Alias Analysis Results 218; GCN-O1-NEXT: Scalar Evolution Analysis 219; GCN-O1-NEXT: Loop Pass Manager 220; GCN-O1-NEXT: Rotate Loops 221; GCN-O1-NEXT: Loop Access Analysis 222; GCN-O1-NEXT: Lazy Branch Probability Analysis 223; GCN-O1-NEXT: Lazy Block Frequency Analysis 224; GCN-O1-NEXT: Optimization Remark Emitter 225; GCN-O1-NEXT: Loop Distribution 226; GCN-O1-NEXT: Post-Dominator Tree Construction 227; GCN-O1-NEXT: Branch Probability Analysis 228; GCN-O1-NEXT: Block Frequency Analysis 229; GCN-O1-NEXT: Scalar Evolution Analysis 230; GCN-O1-NEXT: Basic Alias Analysis (stateless AA impl) 231; GCN-O1-NEXT: Function Alias Analysis Results 232; GCN-O1-NEXT: Loop Access Analysis 233; GCN-O1-NEXT: Demanded bits analysis 234; GCN-O1-NEXT: Lazy Branch Probability Analysis 235; GCN-O1-NEXT: Lazy Block Frequency Analysis 236; GCN-O1-NEXT: Optimization Remark Emitter 237; GCN-O1-NEXT: Inject TLI Mappings 238; GCN-O1-NEXT: Loop Vectorization 239; GCN-O1-NEXT: Canonicalize natural loops 240; GCN-O1-NEXT: Scalar Evolution Analysis 241; GCN-O1-NEXT: Function Alias Analysis Results 242; GCN-O1-NEXT: Loop Access Analysis 243; GCN-O1-NEXT: Lazy Branch Probability Analysis 244; GCN-O1-NEXT: Lazy Block Frequency Analysis 245; GCN-O1-NEXT: Loop Load Elimination 246; GCN-O1-NEXT: Basic Alias Analysis (stateless AA impl) 247; GCN-O1-NEXT: Function Alias Analysis Results 248; GCN-O1-NEXT: Lazy Branch Probability Analysis 249; GCN-O1-NEXT: Lazy Block Frequency Analysis 250; GCN-O1-NEXT: Optimization Remark Emitter 251; GCN-O1-NEXT: Combine redundant instructions 252; GCN-O1-NEXT: Simplify the CFG 253; GCN-O1-NEXT: Dominator Tree Construction 254; GCN-O1-NEXT: Optimize scalar/vector ops 255; GCN-O1-NEXT: Basic Alias Analysis (stateless AA impl) 256; GCN-O1-NEXT: Function Alias Analysis Results 257; GCN-O1-NEXT: Natural Loop Information 258; GCN-O1-NEXT: Lazy Branch Probability Analysis 259; GCN-O1-NEXT: Lazy Block Frequency Analysis 260; GCN-O1-NEXT: Optimization Remark Emitter 261; GCN-O1-NEXT: Combine redundant instructions 262; GCN-O1-NEXT: Canonicalize natural loops 263; GCN-O1-NEXT: LCSSA Verifier 264; GCN-O1-NEXT: Loop-Closed SSA Form Pass 265; GCN-O1-NEXT: Scalar Evolution Analysis 266; GCN-O1-NEXT: Loop Pass Manager 267; GCN-O1-NEXT: Unroll loops 268; GCN-O1-NEXT: Lazy Branch Probability Analysis 269; GCN-O1-NEXT: Lazy Block Frequency Analysis 270; GCN-O1-NEXT: Optimization Remark Emitter 271; GCN-O1-NEXT: Combine redundant instructions 272; GCN-O1-NEXT: Memory SSA 273; GCN-O1-NEXT: Canonicalize natural loops 274; GCN-O1-NEXT: LCSSA Verifier 275; GCN-O1-NEXT: Loop-Closed SSA Form Pass 276; GCN-O1-NEXT: Scalar Evolution Analysis 277; GCN-O1-NEXT: Lazy Branch Probability Analysis 278; GCN-O1-NEXT: Lazy Block Frequency Analysis 279; GCN-O1-NEXT: Loop Pass Manager 280; GCN-O1-NEXT: Loop Invariant Code Motion 281; GCN-O1-NEXT: Optimization Remark Emitter 282; GCN-O1-NEXT: Warn about non-applied transformations 283; GCN-O1-NEXT: Alignment from assumptions 284; GCN-O1-NEXT: Strip Unused Function Prototypes 285; GCN-O1-NEXT: Call Graph Profile 286; GCN-O1-NEXT: FunctionPass Manager 287; GCN-O1-NEXT: Dominator Tree Construction 288; GCN-O1-NEXT: Natural Loop Information 289; GCN-O1-NEXT: Lazy Branch Probability Analysis 290; GCN-O1-NEXT: Lazy Block Frequency Analysis 291; GCN-O1-NEXT: FunctionPass Manager 292; GCN-O1-NEXT: Dominator Tree Construction 293; GCN-O1-NEXT: Natural Loop Information 294; GCN-O1-NEXT: Post-Dominator Tree Construction 295; GCN-O1-NEXT: Branch Probability Analysis 296; GCN-O1-NEXT: Block Frequency Analysis 297; GCN-O1-NEXT: Canonicalize natural loops 298; GCN-O1-NEXT: LCSSA Verifier 299; GCN-O1-NEXT: Loop-Closed SSA Form Pass 300; GCN-O1-NEXT: Basic Alias Analysis (stateless AA impl) 301; GCN-O1-NEXT: Function Alias Analysis Results 302; GCN-O1-NEXT: Scalar Evolution Analysis 303; GCN-O1-NEXT: Block Frequency Analysis 304; GCN-O1-NEXT: Loop Pass Manager 305; GCN-O1-NEXT: Loop Sink 306; GCN-O1-NEXT: Lazy Branch Probability Analysis 307; GCN-O1-NEXT: Lazy Block Frequency Analysis 308; GCN-O1-NEXT: Optimization Remark Emitter 309; GCN-O1-NEXT: Remove redundant instructions 310; GCN-O1-NEXT: Hoist/decompose integer division and remainder 311; GCN-O1-NEXT: Simplify the CFG 312; GCN-O1-NEXT: Annotation Remarks 313 314; GCN-O1-NEXT: Pass Arguments: 315; GCN-O1-NEXT: FunctionPass Manager 316; GCN-O1-NEXT: Dominator Tree Construction 317 318; GCN-O1-NEXT: Pass Arguments: 319; GCN-O1-NEXT: FunctionPass Manager 320; GCN-O1-NEXT: Dominator Tree Construction 321 322; GCN-O1-NEXT: Pass Arguments: 323; GCN-O1-NEXT: Target Library Information 324; GCN-O1-NEXT: FunctionPass Manager 325; GCN-O1-NEXT: Dominator Tree Construction 326; GCN-O1-NEXT: Natural Loop Information 327; GCN-O1-NEXT: Post-Dominator Tree Construction 328; GCN-O1-NEXT: Branch Probability Analysis 329; GCN-O1-NEXT: Block Frequency Analysis 330 331; GCN-O1-NEXT: Pass Arguments: 332; GCN-O1-NEXT: Target Library Information 333; GCN-O1-NEXT: FunctionPass Manager 334; GCN-O1-NEXT: Dominator Tree Construction 335; GCN-O1-NEXT: Natural Loop Information 336; GCN-O1-NEXT: Post-Dominator Tree Construction 337; GCN-O1-NEXT: Branch Probability Analysis 338; GCN-O1-NEXT: Block Frequency Analysis 339 340 341; GCN-O2: Pass Arguments: 342; GCN-O2-NEXT: Target Transform Information 343; GCN-O2-NEXT: AMDGPU Address space based Alias Analysis 344; GCN-O2-NEXT: External Alias Analysis 345; GCN-O2-NEXT: Assumption Cache Tracker 346; GCN-O2-NEXT: Target Library Information 347; GCN-O2-NEXT: Type-Based Alias Analysis 348; GCN-O2-NEXT: Scoped NoAlias Alias Analysis 349; GCN-O2-NEXT: FunctionPass Manager 350; GCN-O2-NEXT: Early propagate attributes from kernels to functions 351; GCN-O2-NEXT: Replace builtin math calls with that native versions. 352; GCN-O2-NEXT: Dominator Tree Construction 353; GCN-O2-NEXT: Basic Alias Analysis (stateless AA impl) 354; GCN-O2-NEXT: Function Alias Analysis Results 355; GCN-O2-NEXT: Simplify well-known AMD library calls 356; GCN-O2-NEXT: Instrument function entry/exit with calls to e.g. mcount() (pre inlining) 357; GCN-O2-NEXT: Simplify the CFG 358; GCN-O2-NEXT: Dominator Tree Construction 359; GCN-O2-NEXT: SROA 360; GCN-O2-NEXT: Early CSE 361; GCN-O2-NEXT: Lower 'expect' Intrinsics 362 363; GCN-O2-NEXT: Pass Arguments: 364; GCN-O2-NEXT: Target Library Information 365; GCN-O2-NEXT: Target Transform Information 366; GCN-O2-NEXT: Target Pass Configuration 367; GCN-O2-NEXT: Type-Based Alias Analysis 368; GCN-O2-NEXT: Scoped NoAlias Alias Analysis 369; GCN-O2-NEXT: AMDGPU Address space based Alias Analysis 370; GCN-O2-NEXT: External Alias Analysis 371; GCN-O2-NEXT: Assumption Cache Tracker 372; GCN-O2-NEXT: Profile summary info 373; GCN-O2-NEXT: ModulePass Manager 374; GCN-O2-NEXT: Annotation2Metadata 375; GCN-O2-NEXT: Force set function attributes 376; GCN-O2-NEXT: Infer set function attributes 377; GCN-O2-NEXT: Unify multiple OpenCL metadata due to linking 378; GCN-O2-NEXT: AMDGPU Printf lowering 379; GCN-O2-NEXT: FunctionPass Manager 380; GCN-O2-NEXT: Dominator Tree Construction 381; GCN-O2-NEXT: Late propagate attributes from kernels to functions 382; GCN-O2-NEXT: Interprocedural Sparse Conditional Constant Propagation 383; GCN-O2-NEXT: FunctionPass Manager 384; GCN-O2-NEXT: Dominator Tree Construction 385; GCN-O2-NEXT: Called Value Propagation 386; GCN-O2-NEXT: Global Variable Optimizer 387; GCN-O2-NEXT: FunctionPass Manager 388; GCN-O2-NEXT: Dominator Tree Construction 389; GCN-O2-NEXT: Natural Loop Information 390; GCN-O2-NEXT: Post-Dominator Tree Construction 391; GCN-O2-NEXT: Branch Probability Analysis 392; GCN-O2-NEXT: Block Frequency Analysis 393; GCN-O2-NEXT: FunctionPass Manager 394; GCN-O2-NEXT: Dominator Tree Construction 395; GCN-O2-NEXT: Promote Memory to Register 396; GCN-O2-NEXT: Dead Argument Elimination 397; GCN-O2-NEXT: FunctionPass Manager 398; GCN-O2-NEXT: Dominator Tree Construction 399; GCN-O2-NEXT: Basic Alias Analysis (stateless AA impl) 400; GCN-O2-NEXT: Function Alias Analysis Results 401; GCN-O2-NEXT: Natural Loop Information 402; GCN-O2-NEXT: Lazy Branch Probability Analysis 403; GCN-O2-NEXT: Lazy Block Frequency Analysis 404; GCN-O2-NEXT: Optimization Remark Emitter 405; GCN-O2-NEXT: Combine redundant instructions 406; GCN-O2-NEXT: Simplify the CFG 407; GCN-O2-NEXT: CallGraph Construction 408; GCN-O2-NEXT: Globals Alias Analysis 409; GCN-O2-NEXT: Call Graph SCC Pass Manager 410; GCN-O2-NEXT: Remove unused exception handling info 411; GCN-O2-NEXT: Function Integration/Inlining 412; GCN-O2-NEXT: OpenMP specific optimizations 413; GCN-O2-NEXT: Deduce function attributes 414; GCN-O2-NEXT: FunctionPass Manager 415; GCN-O2-NEXT: Infer address spaces 416; GCN-O2-NEXT: AMDGPU Kernel Attributes 417; GCN-O2-NEXT: FunctionPass Manager 418; GCN-O2-NEXT: AMDGPU Promote Alloca to vector 419; GCN-O2-NEXT: Dominator Tree Construction 420; GCN-O2-NEXT: SROA 421; GCN-O2-NEXT: Basic Alias Analysis (stateless AA impl) 422; GCN-O2-NEXT: Function Alias Analysis Results 423; GCN-O2-NEXT: Memory SSA 424; GCN-O2-NEXT: Early CSE w/ MemorySSA 425; GCN-O2-NEXT: Speculatively execute instructions if target has divergent branches 426; GCN-O2-NEXT: Function Alias Analysis Results 427; GCN-O2-NEXT: Lazy Value Information Analysis 428; GCN-O2-NEXT: Jump Threading 429; GCN-O2-NEXT: Value Propagation 430; GCN-O2-NEXT: Simplify the CFG 431; GCN-O2-NEXT: Dominator Tree Construction 432; GCN-O2-NEXT: Basic Alias Analysis (stateless AA impl) 433; GCN-O2-NEXT: Function Alias Analysis Results 434; GCN-O2-NEXT: Natural Loop Information 435; GCN-O2-NEXT: Lazy Branch Probability Analysis 436; GCN-O2-NEXT: Lazy Block Frequency Analysis 437; GCN-O2-NEXT: Optimization Remark Emitter 438; GCN-O2-NEXT: Combine redundant instructions 439; GCN-O2-NEXT: Conditionally eliminate dead library calls 440; GCN-O2-NEXT: Natural Loop Information 441; GCN-O2-NEXT: Post-Dominator Tree Construction 442; GCN-O2-NEXT: Branch Probability Analysis 443; GCN-O2-NEXT: Block Frequency Analysis 444; GCN-O2-NEXT: Lazy Branch Probability Analysis 445; GCN-O2-NEXT: Lazy Block Frequency Analysis 446; GCN-O2-NEXT: Optimization Remark Emitter 447; GCN-O2-NEXT: PGOMemOPSize 448; GCN-O2-NEXT: Basic Alias Analysis (stateless AA impl) 449; GCN-O2-NEXT: Function Alias Analysis Results 450; GCN-O2-NEXT: Natural Loop Information 451; GCN-O2-NEXT: Lazy Branch Probability Analysis 452; GCN-O2-NEXT: Lazy Block Frequency Analysis 453; GCN-O2-NEXT: Optimization Remark Emitter 454; GCN-O2-NEXT: Tail Call Elimination 455; GCN-O2-NEXT: Simplify the CFG 456; GCN-O2-NEXT: Reassociate expressions 457; GCN-O2-NEXT: Dominator Tree Construction 458; GCN-O2-NEXT: Natural Loop Information 459; GCN-O2-NEXT: Canonicalize natural loops 460; GCN-O2-NEXT: LCSSA Verifier 461; GCN-O2-NEXT: Loop-Closed SSA Form Pass 462; GCN-O2-NEXT: Basic Alias Analysis (stateless AA impl) 463; GCN-O2-NEXT: Function Alias Analysis Results 464; GCN-O2-NEXT: Scalar Evolution Analysis 465; GCN-O2-NEXT: Loop Pass Manager 466; GCN-O2-NEXT: Rotate Loops 467; GCN-O2-NEXT: Memory SSA 468; GCN-O2-NEXT: Lazy Branch Probability Analysis 469; GCN-O2-NEXT: Lazy Block Frequency Analysis 470; GCN-O2-NEXT: Loop Pass Manager 471; GCN-O2-NEXT: Loop Invariant Code Motion 472; GCN-O2-NEXT: Post-Dominator Tree Construction 473; GCN-O2-NEXT: Legacy Divergence Analysis 474; GCN-O2-NEXT: Loop Pass Manager 475; GCN-O2-NEXT: Unswitch loops 476; GCN-O2-NEXT: Simplify the CFG 477; GCN-O2-NEXT: Dominator Tree Construction 478; GCN-O2-NEXT: Basic Alias Analysis (stateless AA impl) 479; GCN-O2-NEXT: Function Alias Analysis Results 480; GCN-O2-NEXT: Natural Loop Information 481; GCN-O2-NEXT: Lazy Branch Probability Analysis 482; GCN-O2-NEXT: Lazy Block Frequency Analysis 483; GCN-O2-NEXT: Optimization Remark Emitter 484; GCN-O2-NEXT: Combine redundant instructions 485; GCN-O2-NEXT: Canonicalize natural loops 486; GCN-O2-NEXT: LCSSA Verifier 487; GCN-O2-NEXT: Loop-Closed SSA Form Pass 488; GCN-O2-NEXT: Scalar Evolution Analysis 489; GCN-O2-NEXT: Loop Pass Manager 490; GCN-O2-NEXT: Recognize loop idioms 491; GCN-O2-NEXT: Induction Variable Simplification 492; GCN-O2-NEXT: Delete dead loops 493; GCN-O2-NEXT: Unroll loops 494; GCN-O2-NEXT: SROA 495; GCN-O2-NEXT: Function Alias Analysis Results 496; GCN-O2-NEXT: MergedLoadStoreMotion 497; GCN-O2-NEXT: Phi Values Analysis 498; GCN-O2-NEXT: Function Alias Analysis Results 499; GCN-O2-NEXT: Memory Dependence Analysis 500; GCN-O2-NEXT: Lazy Branch Probability Analysis 501; GCN-O2-NEXT: Lazy Block Frequency Analysis 502; GCN-O2-NEXT: Optimization Remark Emitter 503; GCN-O2-NEXT: Global Value Numbering 504; GCN-O2-NEXT: Phi Values Analysis 505; GCN-O2-NEXT: Basic Alias Analysis (stateless AA impl) 506; GCN-O2-NEXT: Function Alias Analysis Results 507; GCN-O2-NEXT: Memory Dependence Analysis 508; GCN-O2-NEXT: MemCpy Optimization 509; GCN-O2-NEXT: Sparse Conditional Constant Propagation 510; GCN-O2-NEXT: Demanded bits analysis 511; GCN-O2-NEXT: Bit-Tracking Dead Code Elimination 512; GCN-O2-NEXT: Function Alias Analysis Results 513; GCN-O2-NEXT: Lazy Branch Probability Analysis 514; GCN-O2-NEXT: Lazy Block Frequency Analysis 515; GCN-O2-NEXT: Optimization Remark Emitter 516; GCN-O2-NEXT: Combine redundant instructions 517; GCN-O2-NEXT: Lazy Value Information Analysis 518; GCN-O2-NEXT: Jump Threading 519; GCN-O2-NEXT: Value Propagation 520; GCN-O2-NEXT: Post-Dominator Tree Construction 521; GCN-O2-NEXT: Aggressive Dead Code Elimination 522; GCN-O2-NEXT: Basic Alias Analysis (stateless AA impl) 523; GCN-O2-NEXT: Function Alias Analysis Results 524; GCN-O2-NEXT: Memory SSA 525; GCN-O2-NEXT: Dead Store Elimination 526; GCN-O2-NEXT: Natural Loop Information 527; GCN-O2-NEXT: Canonicalize natural loops 528; GCN-O2-NEXT: LCSSA Verifier 529; GCN-O2-NEXT: Loop-Closed SSA Form Pass 530; GCN-O2-NEXT: Function Alias Analysis Results 531; GCN-O2-NEXT: Scalar Evolution Analysis 532; GCN-O2-NEXT: Lazy Branch Probability Analysis 533; GCN-O2-NEXT: Lazy Block Frequency Analysis 534; GCN-O2-NEXT: Loop Pass Manager 535; GCN-O2-NEXT: Loop Invariant Code Motion 536; GCN-O2-NEXT: Simplify the CFG 537; GCN-O2-NEXT: Dominator Tree Construction 538; GCN-O2-NEXT: Basic Alias Analysis (stateless AA impl) 539; GCN-O2-NEXT: Function Alias Analysis Results 540; GCN-O2-NEXT: Natural Loop Information 541; GCN-O2-NEXT: Lazy Branch Probability Analysis 542; GCN-O2-NEXT: Lazy Block Frequency Analysis 543; GCN-O2-NEXT: Optimization Remark Emitter 544; GCN-O2-NEXT: Combine redundant instructions 545; GCN-O2-NEXT: A No-Op Barrier Pass 546; GCN-O2-NEXT: Eliminate Available Externally Globals 547; GCN-O2-NEXT: CallGraph Construction 548; GCN-O2-NEXT: Deduce function attributes in RPO 549; GCN-O2-NEXT: Global Variable Optimizer 550; GCN-O2-NEXT: FunctionPass Manager 551; GCN-O2-NEXT: Dominator Tree Construction 552; GCN-O2-NEXT: Natural Loop Information 553; GCN-O2-NEXT: Post-Dominator Tree Construction 554; GCN-O2-NEXT: Branch Probability Analysis 555; GCN-O2-NEXT: Block Frequency Analysis 556; GCN-O2-NEXT: Dead Global Elimination 557; GCN-O2-NEXT: CallGraph Construction 558; GCN-O2-NEXT: Globals Alias Analysis 559; GCN-O2-NEXT: FunctionPass Manager 560; GCN-O2-NEXT: Dominator Tree Construction 561; GCN-O2-NEXT: Float to int 562; GCN-O2-NEXT: Lower constant intrinsics 563; GCN-O2-NEXT: Dominator Tree Construction 564; GCN-O2-NEXT: Natural Loop Information 565; GCN-O2-NEXT: Canonicalize natural loops 566; GCN-O2-NEXT: LCSSA Verifier 567; GCN-O2-NEXT: Loop-Closed SSA Form Pass 568; GCN-O2-NEXT: Basic Alias Analysis (stateless AA impl) 569; GCN-O2-NEXT: Function Alias Analysis Results 570; GCN-O2-NEXT: Scalar Evolution Analysis 571; GCN-O2-NEXT: Loop Pass Manager 572; GCN-O2-NEXT: Rotate Loops 573; GCN-O2-NEXT: Loop Access Analysis 574; GCN-O2-NEXT: Lazy Branch Probability Analysis 575; GCN-O2-NEXT: Lazy Block Frequency Analysis 576; GCN-O2-NEXT: Optimization Remark Emitter 577; GCN-O2-NEXT: Loop Distribution 578; GCN-O2-NEXT: Post-Dominator Tree Construction 579; GCN-O2-NEXT: Branch Probability Analysis 580; GCN-O2-NEXT: Block Frequency Analysis 581; GCN-O2-NEXT: Scalar Evolution Analysis 582; GCN-O2-NEXT: Basic Alias Analysis (stateless AA impl) 583; GCN-O2-NEXT: Function Alias Analysis Results 584; GCN-O2-NEXT: Loop Access Analysis 585; GCN-O2-NEXT: Demanded bits analysis 586; GCN-O2-NEXT: Lazy Branch Probability Analysis 587; GCN-O2-NEXT: Lazy Block Frequency Analysis 588; GCN-O2-NEXT: Optimization Remark Emitter 589; GCN-O2-NEXT: Inject TLI Mappings 590; GCN-O2-NEXT: Loop Vectorization 591; GCN-O2-NEXT: Canonicalize natural loops 592; GCN-O2-NEXT: Scalar Evolution Analysis 593; GCN-O2-NEXT: Function Alias Analysis Results 594; GCN-O2-NEXT: Loop Access Analysis 595; GCN-O2-NEXT: Lazy Branch Probability Analysis 596; GCN-O2-NEXT: Lazy Block Frequency Analysis 597; GCN-O2-NEXT: Loop Load Elimination 598; GCN-O2-NEXT: Basic Alias Analysis (stateless AA impl) 599; GCN-O2-NEXT: Function Alias Analysis Results 600; GCN-O2-NEXT: Lazy Branch Probability Analysis 601; GCN-O2-NEXT: Lazy Block Frequency Analysis 602; GCN-O2-NEXT: Optimization Remark Emitter 603; GCN-O2-NEXT: Combine redundant instructions 604; GCN-O2-NEXT: Simplify the CFG 605; GCN-O2-NEXT: Dominator Tree Construction 606; GCN-O2-NEXT: Natural Loop Information 607; GCN-O2-NEXT: Scalar Evolution Analysis 608; GCN-O2-NEXT: Basic Alias Analysis (stateless AA impl) 609; GCN-O2-NEXT: Function Alias Analysis Results 610; GCN-O2-NEXT: Demanded bits analysis 611; GCN-O2-NEXT: Lazy Branch Probability Analysis 612; GCN-O2-NEXT: Lazy Block Frequency Analysis 613; GCN-O2-NEXT: Optimization Remark Emitter 614; GCN-O2-NEXT: Inject TLI Mappings 615; GCN-O2-NEXT: SLP Vectorizer 616; GCN-O2-NEXT: Optimize scalar/vector ops 617; GCN-O2-NEXT: Optimization Remark Emitter 618; GCN-O2-NEXT: Combine redundant instructions 619; GCN-O2-NEXT: Canonicalize natural loops 620; GCN-O2-NEXT: LCSSA Verifier 621; GCN-O2-NEXT: Loop-Closed SSA Form Pass 622; GCN-O2-NEXT: Scalar Evolution Analysis 623; GCN-O2-NEXT: Loop Pass Manager 624; GCN-O2-NEXT: Unroll loops 625; GCN-O2-NEXT: Lazy Branch Probability Analysis 626; GCN-O2-NEXT: Lazy Block Frequency Analysis 627; GCN-O2-NEXT: Optimization Remark Emitter 628; GCN-O2-NEXT: Combine redundant instructions 629; GCN-O2-NEXT: Memory SSA 630; GCN-O2-NEXT: Canonicalize natural loops 631; GCN-O2-NEXT: LCSSA Verifier 632; GCN-O2-NEXT: Loop-Closed SSA Form Pass 633; GCN-O2-NEXT: Scalar Evolution Analysis 634; GCN-O2-NEXT: Lazy Branch Probability Analysis 635; GCN-O2-NEXT: Lazy Block Frequency Analysis 636; GCN-O2-NEXT: Loop Pass Manager 637; GCN-O2-NEXT: Loop Invariant Code Motion 638; GCN-O2-NEXT: Optimization Remark Emitter 639; GCN-O2-NEXT: Warn about non-applied transformations 640; GCN-O2-NEXT: Alignment from assumptions 641; GCN-O2-NEXT: Strip Unused Function Prototypes 642; GCN-O2-NEXT: Dead Global Elimination 643; GCN-O2-NEXT: Merge Duplicate Global Constants 644; GCN-O2-NEXT: Call Graph Profile 645; GCN-O2-NEXT: FunctionPass Manager 646; GCN-O2-NEXT: Dominator Tree Construction 647; GCN-O2-NEXT: Natural Loop Information 648; GCN-O2-NEXT: Lazy Branch Probability Analysis 649; GCN-O2-NEXT: Lazy Block Frequency Analysis 650; GCN-O2-NEXT: FunctionPass Manager 651; GCN-O2-NEXT: Dominator Tree Construction 652; GCN-O2-NEXT: Natural Loop Information 653; GCN-O2-NEXT: Post-Dominator Tree Construction 654; GCN-O2-NEXT: Branch Probability Analysis 655; GCN-O2-NEXT: Block Frequency Analysis 656; GCN-O2-NEXT: Canonicalize natural loops 657; GCN-O2-NEXT: LCSSA Verifier 658; GCN-O2-NEXT: Loop-Closed SSA Form Pass 659; GCN-O2-NEXT: Basic Alias Analysis (stateless AA impl) 660; GCN-O2-NEXT: Function Alias Analysis Results 661; GCN-O2-NEXT: Scalar Evolution Analysis 662; GCN-O2-NEXT: Block Frequency Analysis 663; GCN-O2-NEXT: Loop Pass Manager 664; GCN-O2-NEXT: Loop Sink 665; GCN-O2-NEXT: Lazy Branch Probability Analysis 666; GCN-O2-NEXT: Lazy Block Frequency Analysis 667; GCN-O2-NEXT: Optimization Remark Emitter 668; GCN-O2-NEXT: Remove redundant instructions 669; GCN-O2-NEXT: Hoist/decompose integer division and remainder 670; GCN-O2-NEXT: Simplify the CFG 671; GCN-O2-NEXT: Annotation Remarks 672 673; GCN-O2-NEXT: Pass Arguments: 674; GCN-O2-NEXT: FunctionPass Manager 675; GCN-O2-NEXT: Dominator Tree Construction 676 677; GCN-O2-NEXT: Pass Arguments: 678; GCN-O2-NEXT: FunctionPass Manager 679; GCN-O2-NEXT: Dominator Tree Construction 680 681; GCN-O2-NEXT: Pass Arguments: 682; GCN-O2-NEXT: Target Library Information 683; GCN-O2-NEXT: FunctionPass Manager 684; GCN-O2-NEXT: Dominator Tree Construction 685; GCN-O2-NEXT: Natural Loop Information 686; GCN-O2-NEXT: Post-Dominator Tree Construction 687; GCN-O2-NEXT: Branch Probability Analysis 688; GCN-O2-NEXT: Block Frequency Analysis 689 690; GCN-O2-NEXT: Pass Arguments: 691; GCN-O2-NEXT: Target Library Information 692; GCN-O2-NEXT: FunctionPass Manager 693; GCN-O2-NEXT: Dominator Tree Construction 694; GCN-O2-NEXT: Natural Loop Information 695; GCN-O2-NEXT: Post-Dominator Tree Construction 696; GCN-O2-NEXT: Branch Probability Analysis 697; GCN-O2-NEXT: Block Frequency Analysis 698 699 700; GCN-O3: Pass Arguments: 701; GCN-O3-NEXT: Target Transform Information 702; GCN-O3-NEXT: AMDGPU Address space based Alias Analysis 703; GCN-O3-NEXT: External Alias Analysis 704; GCN-O3-NEXT: Assumption Cache Tracker 705; GCN-O3-NEXT: Target Library Information 706; GCN-O3-NEXT: Type-Based Alias Analysis 707; GCN-O3-NEXT: Scoped NoAlias Alias Analysis 708; GCN-O3-NEXT: FunctionPass Manager 709; GCN-O3-NEXT: Early propagate attributes from kernels to functions 710; GCN-O3-NEXT: Replace builtin math calls with that native versions. 711; GCN-O3-NEXT: Dominator Tree Construction 712; GCN-O3-NEXT: Basic Alias Analysis (stateless AA impl) 713; GCN-O3-NEXT: Function Alias Analysis Results 714; GCN-O3-NEXT: Simplify well-known AMD library calls 715; GCN-O3-NEXT: Instrument function entry/exit with calls to e.g. mcount() (pre inlining) 716; GCN-O3-NEXT: Simplify the CFG 717; GCN-O3-NEXT: Dominator Tree Construction 718; GCN-O3-NEXT: SROA 719; GCN-O3-NEXT: Early CSE 720; GCN-O3-NEXT: Lower 'expect' Intrinsics 721 722; GCN-O3-NEXT: Pass Arguments: 723; GCN-O3-NEXT: Target Library Information 724; GCN-O3-NEXT: Target Transform Information 725; GCN-O3-NEXT: Target Pass Configuration 726; GCN-O3-NEXT: Type-Based Alias Analysis 727; GCN-O3-NEXT: Scoped NoAlias Alias Analysis 728; GCN-O3-NEXT: AMDGPU Address space based Alias Analysis 729; GCN-O3-NEXT: External Alias Analysis 730; GCN-O3-NEXT: Assumption Cache Tracker 731; GCN-O3-NEXT: Profile summary info 732; GCN-O3-NEXT: ModulePass Manager 733; GCN-O3-NEXT: Annotation2Metadata 734; GCN-O3-NEXT: Force set function attributes 735; GCN-O3-NEXT: Infer set function attributes 736; GCN-O3-NEXT: Unify multiple OpenCL metadata due to linking 737; GCN-O3-NEXT: AMDGPU Printf lowering 738; GCN-O3-NEXT: FunctionPass Manager 739; GCN-O3-NEXT: Dominator Tree Construction 740; GCN-O3-NEXT: Late propagate attributes from kernels to functions 741; GCN-O3-NEXT: FunctionPass Manager 742; GCN-O3-NEXT: Dominator Tree Construction 743; GCN-O3-NEXT: Call-site splitting 744; GCN-O3-NEXT: Interprocedural Sparse Conditional Constant Propagation 745; GCN-O3-NEXT: FunctionPass Manager 746; GCN-O3-NEXT: Dominator Tree Construction 747; GCN-O3-NEXT: Called Value Propagation 748; GCN-O3-NEXT: Global Variable Optimizer 749; GCN-O3-NEXT: FunctionPass Manager 750; GCN-O3-NEXT: Dominator Tree Construction 751; GCN-O3-NEXT: Natural Loop Information 752; GCN-O3-NEXT: Post-Dominator Tree Construction 753; GCN-O3-NEXT: Branch Probability Analysis 754; GCN-O3-NEXT: Block Frequency Analysis 755; GCN-O3-NEXT: FunctionPass Manager 756; GCN-O3-NEXT: Dominator Tree Construction 757; GCN-O3-NEXT: Promote Memory to Register 758; GCN-O3-NEXT: Dead Argument Elimination 759; GCN-O3-NEXT: FunctionPass Manager 760; GCN-O3-NEXT: Dominator Tree Construction 761; GCN-O3-NEXT: Basic Alias Analysis (stateless AA impl) 762; GCN-O3-NEXT: Function Alias Analysis Results 763; GCN-O3-NEXT: Natural Loop Information 764; GCN-O3-NEXT: Lazy Branch Probability Analysis 765; GCN-O3-NEXT: Lazy Block Frequency Analysis 766; GCN-O3-NEXT: Optimization Remark Emitter 767; GCN-O3-NEXT: Combine redundant instructions 768; GCN-O3-NEXT: Simplify the CFG 769; GCN-O3-NEXT: CallGraph Construction 770; GCN-O3-NEXT: Globals Alias Analysis 771; GCN-O3-NEXT: Call Graph SCC Pass Manager 772; GCN-O3-NEXT: Remove unused exception handling info 773; GCN-O3-NEXT: Function Integration/Inlining 774; GCN-O3-NEXT: OpenMP specific optimizations 775; GCN-O3-NEXT: Deduce function attributes 776; GCN-O3-NEXT: Promote 'by reference' arguments to scalars 777; GCN-O3-NEXT: FunctionPass Manager 778; GCN-O3-NEXT: Infer address spaces 779; GCN-O3-NEXT: AMDGPU Kernel Attributes 780; GCN-O3-NEXT: FunctionPass Manager 781; GCN-O3-NEXT: AMDGPU Promote Alloca to vector 782; GCN-O3-NEXT: Dominator Tree Construction 783; GCN-O3-NEXT: SROA 784; GCN-O3-NEXT: Basic Alias Analysis (stateless AA impl) 785; GCN-O3-NEXT: Function Alias Analysis Results 786; GCN-O3-NEXT: Memory SSA 787; GCN-O3-NEXT: Early CSE w/ MemorySSA 788; GCN-O3-NEXT: Speculatively execute instructions if target has divergent branches 789; GCN-O3-NEXT: Function Alias Analysis Results 790; GCN-O3-NEXT: Lazy Value Information Analysis 791; GCN-O3-NEXT: Jump Threading 792; GCN-O3-NEXT: Value Propagation 793; GCN-O3-NEXT: Simplify the CFG 794; GCN-O3-NEXT: Dominator Tree Construction 795; GCN-O3-NEXT: Combine pattern based expressions 796; GCN-O3-NEXT: Basic Alias Analysis (stateless AA impl) 797; GCN-O3-NEXT: Function Alias Analysis Results 798; GCN-O3-NEXT: Natural Loop Information 799; GCN-O3-NEXT: Lazy Branch Probability Analysis 800; GCN-O3-NEXT: Lazy Block Frequency Analysis 801; GCN-O3-NEXT: Optimization Remark Emitter 802; GCN-O3-NEXT: Combine redundant instructions 803; GCN-O3-NEXT: Conditionally eliminate dead library calls 804; GCN-O3-NEXT: Natural Loop Information 805; GCN-O3-NEXT: Post-Dominator Tree Construction 806; GCN-O3-NEXT: Branch Probability Analysis 807; GCN-O3-NEXT: Block Frequency Analysis 808; GCN-O3-NEXT: Lazy Branch Probability Analysis 809; GCN-O3-NEXT: Lazy Block Frequency Analysis 810; GCN-O3-NEXT: Optimization Remark Emitter 811; GCN-O3-NEXT: PGOMemOPSize 812; GCN-O3-NEXT: Basic Alias Analysis (stateless AA impl) 813; GCN-O3-NEXT: Function Alias Analysis Results 814; GCN-O3-NEXT: Natural Loop Information 815; GCN-O3-NEXT: Lazy Branch Probability Analysis 816; GCN-O3-NEXT: Lazy Block Frequency Analysis 817; GCN-O3-NEXT: Optimization Remark Emitter 818; GCN-O3-NEXT: Tail Call Elimination 819; GCN-O3-NEXT: Simplify the CFG 820; GCN-O3-NEXT: Reassociate expressions 821; GCN-O3-NEXT: Dominator Tree Construction 822; GCN-O3-NEXT: Natural Loop Information 823; GCN-O3-NEXT: Canonicalize natural loops 824; GCN-O3-NEXT: LCSSA Verifier 825; GCN-O3-NEXT: Loop-Closed SSA Form Pass 826; GCN-O3-NEXT: Basic Alias Analysis (stateless AA impl) 827; GCN-O3-NEXT: Function Alias Analysis Results 828; GCN-O3-NEXT: Scalar Evolution Analysis 829; GCN-O3-NEXT: Loop Pass Manager 830; GCN-O3-NEXT: Rotate Loops 831; GCN-O3-NEXT: Memory SSA 832; GCN-O3-NEXT: Lazy Branch Probability Analysis 833; GCN-O3-NEXT: Lazy Block Frequency Analysis 834; GCN-O3-NEXT: Loop Pass Manager 835; GCN-O3-NEXT: Loop Invariant Code Motion 836; GCN-O3-NEXT: Post-Dominator Tree Construction 837; GCN-O3-NEXT: Legacy Divergence Analysis 838; GCN-O3-NEXT: Loop Pass Manager 839; GCN-O3-NEXT: Unswitch loops 840; GCN-O3-NEXT: Simplify the CFG 841; GCN-O3-NEXT: Dominator Tree Construction 842; GCN-O3-NEXT: Basic Alias Analysis (stateless AA impl) 843; GCN-O3-NEXT: Function Alias Analysis Results 844; GCN-O3-NEXT: Natural Loop Information 845; GCN-O3-NEXT: Lazy Branch Probability Analysis 846; GCN-O3-NEXT: Lazy Block Frequency Analysis 847; GCN-O3-NEXT: Optimization Remark Emitter 848; GCN-O3-NEXT: Combine redundant instructions 849; GCN-O3-NEXT: Canonicalize natural loops 850; GCN-O3-NEXT: LCSSA Verifier 851; GCN-O3-NEXT: Loop-Closed SSA Form Pass 852; GCN-O3-NEXT: Scalar Evolution Analysis 853; GCN-O3-NEXT: Loop Pass Manager 854; GCN-O3-NEXT: Recognize loop idioms 855; GCN-O3-NEXT: Induction Variable Simplification 856; GCN-O3-NEXT: Delete dead loops 857; GCN-O3-NEXT: Unroll loops 858; GCN-O3-NEXT: SROA 859; GCN-O3-NEXT: Function Alias Analysis Results 860; GCN-O3-NEXT: MergedLoadStoreMotion 861; GCN-O3-NEXT: Phi Values Analysis 862; GCN-O3-NEXT: Function Alias Analysis Results 863; GCN-O3-NEXT: Memory Dependence Analysis 864; GCN-O3-NEXT: Lazy Branch Probability Analysis 865; GCN-O3-NEXT: Lazy Block Frequency Analysis 866; GCN-O3-NEXT: Optimization Remark Emitter 867; GCN-O3-NEXT: Global Value Numbering 868; GCN-O3-NEXT: Phi Values Analysis 869; GCN-O3-NEXT: Basic Alias Analysis (stateless AA impl) 870; GCN-O3-NEXT: Function Alias Analysis Results 871; GCN-O3-NEXT: Memory Dependence Analysis 872; GCN-O3-NEXT: MemCpy Optimization 873; GCN-O3-NEXT: Sparse Conditional Constant Propagation 874; GCN-O3-NEXT: Demanded bits analysis 875; GCN-O3-NEXT: Bit-Tracking Dead Code Elimination 876; GCN-O3-NEXT: Function Alias Analysis Results 877; GCN-O3-NEXT: Lazy Branch Probability Analysis 878; GCN-O3-NEXT: Lazy Block Frequency Analysis 879; GCN-O3-NEXT: Optimization Remark Emitter 880; GCN-O3-NEXT: Combine redundant instructions 881; GCN-O3-NEXT: Lazy Value Information Analysis 882; GCN-O3-NEXT: Jump Threading 883; GCN-O3-NEXT: Value Propagation 884; GCN-O3-NEXT: Post-Dominator Tree Construction 885; GCN-O3-NEXT: Aggressive Dead Code Elimination 886; GCN-O3-NEXT: Basic Alias Analysis (stateless AA impl) 887; GCN-O3-NEXT: Function Alias Analysis Results 888; GCN-O3-NEXT: Memory SSA 889; GCN-O3-NEXT: Dead Store Elimination 890; GCN-O3-NEXT: Natural Loop Information 891; GCN-O3-NEXT: Canonicalize natural loops 892; GCN-O3-NEXT: LCSSA Verifier 893; GCN-O3-NEXT: Loop-Closed SSA Form Pass 894; GCN-O3-NEXT: Function Alias Analysis Results 895; GCN-O3-NEXT: Scalar Evolution Analysis 896; GCN-O3-NEXT: Lazy Branch Probability Analysis 897; GCN-O3-NEXT: Lazy Block Frequency Analysis 898; GCN-O3-NEXT: Loop Pass Manager 899; GCN-O3-NEXT: Loop Invariant Code Motion 900; GCN-O3-NEXT: Simplify the CFG 901; GCN-O3-NEXT: Dominator Tree Construction 902; GCN-O3-NEXT: Basic Alias Analysis (stateless AA impl) 903; GCN-O3-NEXT: Function Alias Analysis Results 904; GCN-O3-NEXT: Natural Loop Information 905; GCN-O3-NEXT: Lazy Branch Probability Analysis 906; GCN-O3-NEXT: Lazy Block Frequency Analysis 907; GCN-O3-NEXT: Optimization Remark Emitter 908; GCN-O3-NEXT: Combine redundant instructions 909; GCN-O3-NEXT: A No-Op Barrier Pass 910; GCN-O3-NEXT: Eliminate Available Externally Globals 911; GCN-O3-NEXT: CallGraph Construction 912; GCN-O3-NEXT: Deduce function attributes in RPO 913; GCN-O3-NEXT: Global Variable Optimizer 914; GCN-O3-NEXT: FunctionPass Manager 915; GCN-O3-NEXT: Dominator Tree Construction 916; GCN-O3-NEXT: Natural Loop Information 917; GCN-O3-NEXT: Post-Dominator Tree Construction 918; GCN-O3-NEXT: Branch Probability Analysis 919; GCN-O3-NEXT: Block Frequency Analysis 920; GCN-O3-NEXT: Dead Global Elimination 921; GCN-O3-NEXT: CallGraph Construction 922; GCN-O3-NEXT: Globals Alias Analysis 923; GCN-O3-NEXT: FunctionPass Manager 924; GCN-O3-NEXT: Dominator Tree Construction 925; GCN-O3-NEXT: Float to int 926; GCN-O3-NEXT: Lower constant intrinsics 927; GCN-O3-NEXT: Dominator Tree Construction 928; GCN-O3-NEXT: Natural Loop Information 929; GCN-O3-NEXT: Canonicalize natural loops 930; GCN-O3-NEXT: LCSSA Verifier 931; GCN-O3-NEXT: Loop-Closed SSA Form Pass 932; GCN-O3-NEXT: Basic Alias Analysis (stateless AA impl) 933; GCN-O3-NEXT: Function Alias Analysis Results 934; GCN-O3-NEXT: Scalar Evolution Analysis 935; GCN-O3-NEXT: Loop Pass Manager 936; GCN-O3-NEXT: Rotate Loops 937; GCN-O3-NEXT: Loop Access Analysis 938; GCN-O3-NEXT: Lazy Branch Probability Analysis 939; GCN-O3-NEXT: Lazy Block Frequency Analysis 940; GCN-O3-NEXT: Optimization Remark Emitter 941; GCN-O3-NEXT: Loop Distribution 942; GCN-O3-NEXT: Post-Dominator Tree Construction 943; GCN-O3-NEXT: Branch Probability Analysis 944; GCN-O3-NEXT: Block Frequency Analysis 945; GCN-O3-NEXT: Scalar Evolution Analysis 946; GCN-O3-NEXT: Basic Alias Analysis (stateless AA impl) 947; GCN-O3-NEXT: Function Alias Analysis Results 948; GCN-O3-NEXT: Loop Access Analysis 949; GCN-O3-NEXT: Demanded bits analysis 950; GCN-O3-NEXT: Lazy Branch Probability Analysis 951; GCN-O3-NEXT: Lazy Block Frequency Analysis 952; GCN-O3-NEXT: Optimization Remark Emitter 953; GCN-O3-NEXT: Inject TLI Mappings 954; GCN-O3-NEXT: Loop Vectorization 955; GCN-O3-NEXT: Canonicalize natural loops 956; GCN-O3-NEXT: Scalar Evolution Analysis 957; GCN-O3-NEXT: Function Alias Analysis Results 958; GCN-O3-NEXT: Loop Access Analysis 959; GCN-O3-NEXT: Lazy Branch Probability Analysis 960; GCN-O3-NEXT: Lazy Block Frequency Analysis 961; GCN-O3-NEXT: Loop Load Elimination 962; GCN-O3-NEXT: Basic Alias Analysis (stateless AA impl) 963; GCN-O3-NEXT: Function Alias Analysis Results 964; GCN-O3-NEXT: Lazy Branch Probability Analysis 965; GCN-O3-NEXT: Lazy Block Frequency Analysis 966; GCN-O3-NEXT: Optimization Remark Emitter 967; GCN-O3-NEXT: Combine redundant instructions 968; GCN-O3-NEXT: Simplify the CFG 969; GCN-O3-NEXT: Dominator Tree Construction 970; GCN-O3-NEXT: Natural Loop Information 971; GCN-O3-NEXT: Scalar Evolution Analysis 972; GCN-O3-NEXT: Basic Alias Analysis (stateless AA impl) 973; GCN-O3-NEXT: Function Alias Analysis Results 974; GCN-O3-NEXT: Demanded bits analysis 975; GCN-O3-NEXT: Lazy Branch Probability Analysis 976; GCN-O3-NEXT: Lazy Block Frequency Analysis 977; GCN-O3-NEXT: Optimization Remark Emitter 978; GCN-O3-NEXT: Inject TLI Mappings 979; GCN-O3-NEXT: SLP Vectorizer 980; GCN-O3-NEXT: Optimize scalar/vector ops 981; GCN-O3-NEXT: Optimization Remark Emitter 982; GCN-O3-NEXT: Combine redundant instructions 983; GCN-O3-NEXT: Canonicalize natural loops 984; GCN-O3-NEXT: LCSSA Verifier 985; GCN-O3-NEXT: Loop-Closed SSA Form Pass 986; GCN-O3-NEXT: Scalar Evolution Analysis 987; GCN-O3-NEXT: Loop Pass Manager 988; GCN-O3-NEXT: Unroll loops 989; GCN-O3-NEXT: Lazy Branch Probability Analysis 990; GCN-O3-NEXT: Lazy Block Frequency Analysis 991; GCN-O3-NEXT: Optimization Remark Emitter 992; GCN-O3-NEXT: Combine redundant instructions 993; GCN-O3-NEXT: Memory SSA 994; GCN-O3-NEXT: Canonicalize natural loops 995; GCN-O3-NEXT: LCSSA Verifier 996; GCN-O3-NEXT: Loop-Closed SSA Form Pass 997; GCN-O3-NEXT: Scalar Evolution Analysis 998; GCN-O3-NEXT: Lazy Branch Probability Analysis 999; GCN-O3-NEXT: Lazy Block Frequency Analysis 1000; GCN-O3-NEXT: Loop Pass Manager 1001; GCN-O3-NEXT: Loop Invariant Code Motion 1002; GCN-O3-NEXT: Optimization Remark Emitter 1003; GCN-O3-NEXT: Warn about non-applied transformations 1004; GCN-O3-NEXT: Alignment from assumptions 1005; GCN-O3-NEXT: Strip Unused Function Prototypes 1006; GCN-O3-NEXT: Dead Global Elimination 1007; GCN-O3-NEXT: Merge Duplicate Global Constants 1008; GCN-O3-NEXT: Call Graph Profile 1009; GCN-O3-NEXT: FunctionPass Manager 1010; GCN-O3-NEXT: Dominator Tree Construction 1011; GCN-O3-NEXT: Natural Loop Information 1012; GCN-O3-NEXT: Lazy Branch Probability Analysis 1013; GCN-O3-NEXT: Lazy Block Frequency Analysis 1014; GCN-O3-NEXT: FunctionPass Manager 1015; GCN-O3-NEXT: Dominator Tree Construction 1016; GCN-O3-NEXT: Natural Loop Information 1017; GCN-O3-NEXT: Post-Dominator Tree Construction 1018; GCN-O3-NEXT: Branch Probability Analysis 1019; GCN-O3-NEXT: Block Frequency Analysis 1020; GCN-O3-NEXT: Canonicalize natural loops 1021; GCN-O3-NEXT: LCSSA Verifier 1022; GCN-O3-NEXT: Loop-Closed SSA Form Pass 1023; GCN-O3-NEXT: Basic Alias Analysis (stateless AA impl) 1024; GCN-O3-NEXT: Function Alias Analysis Results 1025; GCN-O3-NEXT: Scalar Evolution Analysis 1026; GCN-O3-NEXT: Block Frequency Analysis 1027; GCN-O3-NEXT: Loop Pass Manager 1028; GCN-O3-NEXT: Loop Sink 1029; GCN-O3-NEXT: Lazy Branch Probability Analysis 1030; GCN-O3-NEXT: Lazy Block Frequency Analysis 1031; GCN-O3-NEXT: Optimization Remark Emitter 1032; GCN-O3-NEXT: Remove redundant instructions 1033; GCN-O3-NEXT: Hoist/decompose integer division and remainder 1034; GCN-O3-NEXT: Simplify the CFG 1035; GCN-O3-NEXT: Annotation Remarks 1036 1037; GCN-O3-NEXT: Pass Arguments: 1038; GCN-O3-NEXT: FunctionPass Manager 1039; GCN-O3-NEXT: Dominator Tree Construction 1040 1041; GCN-O3-NEXT: Pass Arguments: 1042; GCN-O3-NEXT: FunctionPass Manager 1043; GCN-O3-NEXT: Dominator Tree Construction 1044 1045; GCN-O3-NEXT: Pass Arguments: 1046; GCN-O3-NEXT: Target Library Information 1047; GCN-O3-NEXT: FunctionPass Manager 1048; GCN-O3-NEXT: Dominator Tree Construction 1049; GCN-O3-NEXT: Natural Loop Information 1050; GCN-O3-NEXT: Post-Dominator Tree Construction 1051; GCN-O3-NEXT: Branch Probability Analysis 1052; GCN-O3-NEXT: Block Frequency Analysis 1053 1054; GCN-O3-NEXT: Pass Arguments: 1055; GCN-O3-NEXT: Target Library Information 1056; GCN-O3-NEXT: FunctionPass Manager 1057; GCN-O3-NEXT: Dominator Tree Construction 1058; GCN-O3-NEXT: Natural Loop Information 1059; GCN-O3-NEXT: Post-Dominator Tree Construction 1060; GCN-O3-NEXT: Branch Probability Analysis 1061; GCN-O3-NEXT: Block Frequency Analysis 1062 1063define void @empty() { 1064 ret void 1065} 1066