diff --git a/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp b/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp index 05e52d043c3b6..23ca4dcc009c8 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp @@ -1430,9 +1430,6 @@ void AMDGPUPassConfig::addCodeGenPrepare() { // many cases. addPass(createAMDGPULowerBufferFatPointersPass()); addPass(createAMDGPULowerIntrinsicsLegacyPass()); - // In accordance with the above FIXME, manually force all the - // function-level passes into a CGSCCPassManager. - addPass(new DummyCGSCCPass()); } // LowerSwitch pass may introduce unreachable blocks that can diff --git a/llvm/test/CodeGen/AMDGPU/llc-pipeline.ll b/llvm/test/CodeGen/AMDGPU/llc-pipeline.ll index fe75b2b5bfcf5..1f7888a633d62 100644 --- a/llvm/test/CodeGen/AMDGPU/llc-pipeline.ll +++ b/llvm/test/CodeGen/AMDGPU/llc-pipeline.ll @@ -56,44 +56,43 @@ ; GCN-O0-NEXT: AMDGPU Lower Kernel Arguments ; GCN-O0-NEXT: Lower buffer fat pointer operations to buffer resources ; GCN-O0-NEXT: AMDGPU lower intrinsics +; GCN-O0-NEXT: FunctionPass Manager +; GCN-O0-NEXT: Lazy Value Information Analysis +; GCN-O0-NEXT: Lower SwitchInst's to branches +; GCN-O0-NEXT: Lower invoke and unwind, for unwindless code generators +; GCN-O0-NEXT: Remove unreachable blocks from the CFG +; GCN-O0-NEXT: Post-Dominator Tree Construction +; GCN-O0-NEXT: Dominator Tree Construction +; GCN-O0-NEXT: Cycle Info Analysis +; GCN-O0-NEXT: Uniformity Analysis +; GCN-O0-NEXT: Unify divergent function exit nodes +; GCN-O0-NEXT: Dominator Tree Construction +; GCN-O0-NEXT: Cycle Info Analysis +; GCN-O0-NEXT: Convert irreducible control-flow into natural loops +; GCN-O0-NEXT: Natural Loop Information +; GCN-O0-NEXT: Fixup each natural loop to have a single exit block +; GCN-O0-NEXT: Post-Dominator Tree Construction +; GCN-O0-NEXT: Dominance Frontier Construction +; GCN-O0-NEXT: Detect single entry single exit regions +; GCN-O0-NEXT: Region Pass Manager +; GCN-O0-NEXT: Structurize control flow +; GCN-O0-NEXT: Cycle Info Analysis +; GCN-O0-NEXT: Uniformity Analysis +; GCN-O0-NEXT: Basic Alias Analysis (stateless AA impl) +; GCN-O0-NEXT: Function Alias Analysis Results +; GCN-O0-NEXT: Memory SSA +; GCN-O0-NEXT: AMDGPU Annotate Uniform Values +; GCN-O0-NEXT: Natural Loop Information +; GCN-O0-NEXT: SI annotate control flow +; GCN-O0-NEXT: Cycle Info Analysis +; GCN-O0-NEXT: Uniformity Analysis +; GCN-O0-NEXT: AMDGPU Rewrite Undef for PHI +; GCN-O0-NEXT: LCSSA Verifier +; GCN-O0-NEXT: Loop-Closed SSA Form Pass ; GCN-O0-NEXT: CallGraph Construction ; GCN-O0-NEXT: Call Graph SCC Pass Manager ; GCN-O0-NEXT: DummyCGSCCPass ; GCN-O0-NEXT: FunctionPass Manager -; GCN-O0-NEXT: Lazy Value Information Analysis -; GCN-O0-NEXT: Lower SwitchInst's to branches -; GCN-O0-NEXT: Lower invoke and unwind, for unwindless code generators -; GCN-O0-NEXT: Remove unreachable blocks from the CFG -; GCN-O0-NEXT: Post-Dominator Tree Construction -; GCN-O0-NEXT: Dominator Tree Construction -; GCN-O0-NEXT: Cycle Info Analysis -; GCN-O0-NEXT: Uniformity Analysis -; GCN-O0-NEXT: Unify divergent function exit nodes -; GCN-O0-NEXT: Dominator Tree Construction -; GCN-O0-NEXT: Cycle Info Analysis -; GCN-O0-NEXT: Convert irreducible control-flow into natural loops -; GCN-O0-NEXT: Natural Loop Information -; GCN-O0-NEXT: Fixup each natural loop to have a single exit block -; GCN-O0-NEXT: Post-Dominator Tree Construction -; GCN-O0-NEXT: Dominance Frontier Construction -; GCN-O0-NEXT: Detect single entry single exit regions -; GCN-O0-NEXT: Region Pass Manager -; GCN-O0-NEXT: Structurize control flow -; GCN-O0-NEXT: Cycle Info Analysis -; GCN-O0-NEXT: Uniformity Analysis -; GCN-O0-NEXT: Basic Alias Analysis (stateless AA impl) -; GCN-O0-NEXT: Function Alias Analysis Results -; GCN-O0-NEXT: Memory SSA -; GCN-O0-NEXT: AMDGPU Annotate Uniform Values -; GCN-O0-NEXT: Natural Loop Information -; GCN-O0-NEXT: SI annotate control flow -; GCN-O0-NEXT: Cycle Info Analysis -; GCN-O0-NEXT: Uniformity Analysis -; GCN-O0-NEXT: AMDGPU Rewrite Undef for PHI -; GCN-O0-NEXT: LCSSA Verifier -; GCN-O0-NEXT: Loop-Closed SSA Form Pass -; GCN-O0-NEXT: DummyCGSCCPass -; GCN-O0-NEXT: FunctionPass Manager ; GCN-O0-NEXT: Prepare callbr ; GCN-O0-NEXT: Safe Stack instrumentation pass ; GCN-O0-NEXT: Insert stack protectors @@ -249,54 +248,53 @@ ; GCN-O1-NEXT: CodeGen Prepare ; GCN-O1-NEXT: Lower buffer fat pointer operations to buffer resources ; GCN-O1-NEXT: AMDGPU lower intrinsics +; GCN-O1-NEXT: FunctionPass Manager +; GCN-O1-NEXT: Lazy Value Information Analysis +; GCN-O1-NEXT: Lower SwitchInst's to branches +; GCN-O1-NEXT: Lower invoke and unwind, for unwindless code generators +; GCN-O1-NEXT: Remove unreachable blocks from the CFG +; GCN-O1-NEXT: Dominator Tree Construction +; GCN-O1-NEXT: Basic Alias Analysis (stateless AA impl) +; GCN-O1-NEXT: Function Alias Analysis Results +; GCN-O1-NEXT: Flatten the CFG +; GCN-O1-NEXT: Dominator Tree Construction +; GCN-O1-NEXT: Basic Alias Analysis (stateless AA impl) +; GCN-O1-NEXT: Function Alias Analysis Results +; GCN-O1-NEXT: Natural Loop Information +; GCN-O1-NEXT: Code sinking +; GCN-O1-NEXT: Cycle Info Analysis +; GCN-O1-NEXT: Uniformity Analysis +; GCN-O1-NEXT: AMDGPU IR late optimizations +; GCN-O1-NEXT: Post-Dominator Tree Construction +; GCN-O1-NEXT: Uniformity Analysis +; GCN-O1-NEXT: Unify divergent function exit nodes +; GCN-O1-NEXT: Dominator Tree Construction +; GCN-O1-NEXT: Cycle Info Analysis +; GCN-O1-NEXT: Convert irreducible control-flow into natural loops +; GCN-O1-NEXT: Natural Loop Information +; GCN-O1-NEXT: Fixup each natural loop to have a single exit block +; GCN-O1-NEXT: Post-Dominator Tree Construction +; GCN-O1-NEXT: Dominance Frontier Construction +; GCN-O1-NEXT: Detect single entry single exit regions +; GCN-O1-NEXT: Region Pass Manager +; GCN-O1-NEXT: Structurize control flow +; GCN-O1-NEXT: Cycle Info Analysis +; GCN-O1-NEXT: Uniformity Analysis +; GCN-O1-NEXT: Basic Alias Analysis (stateless AA impl) +; GCN-O1-NEXT: Function Alias Analysis Results +; GCN-O1-NEXT: Memory SSA +; GCN-O1-NEXT: AMDGPU Annotate Uniform Values +; GCN-O1-NEXT: Natural Loop Information +; GCN-O1-NEXT: SI annotate control flow +; GCN-O1-NEXT: Cycle Info Analysis +; GCN-O1-NEXT: Uniformity Analysis +; GCN-O1-NEXT: AMDGPU Rewrite Undef for PHI +; GCN-O1-NEXT: LCSSA Verifier +; GCN-O1-NEXT: Loop-Closed SSA Form Pass ; GCN-O1-NEXT: CallGraph Construction ; GCN-O1-NEXT: Call Graph SCC Pass Manager ; GCN-O1-NEXT: DummyCGSCCPass ; GCN-O1-NEXT: FunctionPass Manager -; GCN-O1-NEXT: Lazy Value Information Analysis -; GCN-O1-NEXT: Lower SwitchInst's to branches -; GCN-O1-NEXT: Lower invoke and unwind, for unwindless code generators -; GCN-O1-NEXT: Remove unreachable blocks from the CFG -; GCN-O1-NEXT: Dominator Tree Construction -; GCN-O1-NEXT: Basic Alias Analysis (stateless AA impl) -; GCN-O1-NEXT: Function Alias Analysis Results -; GCN-O1-NEXT: Flatten the CFG -; GCN-O1-NEXT: Dominator Tree Construction -; GCN-O1-NEXT: Basic Alias Analysis (stateless AA impl) -; GCN-O1-NEXT: Function Alias Analysis Results -; GCN-O1-NEXT: Natural Loop Information -; GCN-O1-NEXT: Code sinking -; GCN-O1-NEXT: Cycle Info Analysis -; GCN-O1-NEXT: Uniformity Analysis -; GCN-O1-NEXT: AMDGPU IR late optimizations -; GCN-O1-NEXT: Post-Dominator Tree Construction -; GCN-O1-NEXT: Uniformity Analysis -; GCN-O1-NEXT: Unify divergent function exit nodes -; GCN-O1-NEXT: Dominator Tree Construction -; GCN-O1-NEXT: Cycle Info Analysis -; GCN-O1-NEXT: Convert irreducible control-flow into natural loops -; GCN-O1-NEXT: Natural Loop Information -; GCN-O1-NEXT: Fixup each natural loop to have a single exit block -; GCN-O1-NEXT: Post-Dominator Tree Construction -; GCN-O1-NEXT: Dominance Frontier Construction -; GCN-O1-NEXT: Detect single entry single exit regions -; GCN-O1-NEXT: Region Pass Manager -; GCN-O1-NEXT: Structurize control flow -; GCN-O1-NEXT: Cycle Info Analysis -; GCN-O1-NEXT: Uniformity Analysis -; GCN-O1-NEXT: Basic Alias Analysis (stateless AA impl) -; GCN-O1-NEXT: Function Alias Analysis Results -; GCN-O1-NEXT: Memory SSA -; GCN-O1-NEXT: AMDGPU Annotate Uniform Values -; GCN-O1-NEXT: Natural Loop Information -; GCN-O1-NEXT: SI annotate control flow -; GCN-O1-NEXT: Cycle Info Analysis -; GCN-O1-NEXT: Uniformity Analysis -; GCN-O1-NEXT: AMDGPU Rewrite Undef for PHI -; GCN-O1-NEXT: LCSSA Verifier -; GCN-O1-NEXT: Loop-Closed SSA Form Pass -; GCN-O1-NEXT: DummyCGSCCPass -; GCN-O1-NEXT: FunctionPass Manager ; GCN-O1-NEXT: Dominator Tree Construction ; GCN-O1-NEXT: Basic Alias Analysis (stateless AA impl) ; GCN-O1-NEXT: Function Alias Analysis Results @@ -562,54 +560,53 @@ ; GCN-O1-OPTS-NEXT: GPU Load and Store Vectorizer ; GCN-O1-OPTS-NEXT: Lower buffer fat pointer operations to buffer resources ; GCN-O1-OPTS-NEXT: AMDGPU lower intrinsics +; GCN-O1-OPTS-NEXT: FunctionPass Manager +; GCN-O1-OPTS-NEXT: Lazy Value Information Analysis +; GCN-O1-OPTS-NEXT: Lower SwitchInst's to branches +; GCN-O1-OPTS-NEXT: Lower invoke and unwind, for unwindless code generators +; GCN-O1-OPTS-NEXT: Remove unreachable blocks from the CFG +; GCN-O1-OPTS-NEXT: Dominator Tree Construction +; GCN-O1-OPTS-NEXT: Basic Alias Analysis (stateless AA impl) +; GCN-O1-OPTS-NEXT: Function Alias Analysis Results +; GCN-O1-OPTS-NEXT: Flatten the CFG +; GCN-O1-OPTS-NEXT: Dominator Tree Construction +; GCN-O1-OPTS-NEXT: Basic Alias Analysis (stateless AA impl) +; GCN-O1-OPTS-NEXT: Function Alias Analysis Results +; GCN-O1-OPTS-NEXT: Natural Loop Information +; GCN-O1-OPTS-NEXT: Code sinking +; GCN-O1-OPTS-NEXT: Cycle Info Analysis +; GCN-O1-OPTS-NEXT: Uniformity Analysis +; GCN-O1-OPTS-NEXT: AMDGPU IR late optimizations +; GCN-O1-OPTS-NEXT: Post-Dominator Tree Construction +; GCN-O1-OPTS-NEXT: Uniformity Analysis +; GCN-O1-OPTS-NEXT: Unify divergent function exit nodes +; GCN-O1-OPTS-NEXT: Dominator Tree Construction +; GCN-O1-OPTS-NEXT: Cycle Info Analysis +; GCN-O1-OPTS-NEXT: Convert irreducible control-flow into natural loops +; GCN-O1-OPTS-NEXT: Natural Loop Information +; GCN-O1-OPTS-NEXT: Fixup each natural loop to have a single exit block +; GCN-O1-OPTS-NEXT: Post-Dominator Tree Construction +; GCN-O1-OPTS-NEXT: Dominance Frontier Construction +; GCN-O1-OPTS-NEXT: Detect single entry single exit regions +; GCN-O1-OPTS-NEXT: Region Pass Manager +; GCN-O1-OPTS-NEXT: Structurize control flow +; GCN-O1-OPTS-NEXT: Cycle Info Analysis +; GCN-O1-OPTS-NEXT: Uniformity Analysis +; GCN-O1-OPTS-NEXT: Basic Alias Analysis (stateless AA impl) +; GCN-O1-OPTS-NEXT: Function Alias Analysis Results +; GCN-O1-OPTS-NEXT: Memory SSA +; GCN-O1-OPTS-NEXT: AMDGPU Annotate Uniform Values +; GCN-O1-OPTS-NEXT: Natural Loop Information +; GCN-O1-OPTS-NEXT: SI annotate control flow +; GCN-O1-OPTS-NEXT: Cycle Info Analysis +; GCN-O1-OPTS-NEXT: Uniformity Analysis +; GCN-O1-OPTS-NEXT: AMDGPU Rewrite Undef for PHI +; GCN-O1-OPTS-NEXT: LCSSA Verifier +; GCN-O1-OPTS-NEXT: Loop-Closed SSA Form Pass ; GCN-O1-OPTS-NEXT: CallGraph Construction ; GCN-O1-OPTS-NEXT: Call Graph SCC Pass Manager ; GCN-O1-OPTS-NEXT: DummyCGSCCPass ; GCN-O1-OPTS-NEXT: FunctionPass Manager -; GCN-O1-OPTS-NEXT: Lazy Value Information Analysis -; GCN-O1-OPTS-NEXT: Lower SwitchInst's to branches -; GCN-O1-OPTS-NEXT: Lower invoke and unwind, for unwindless code generators -; GCN-O1-OPTS-NEXT: Remove unreachable blocks from the CFG -; GCN-O1-OPTS-NEXT: Dominator Tree Construction -; GCN-O1-OPTS-NEXT: Basic Alias Analysis (stateless AA impl) -; GCN-O1-OPTS-NEXT: Function Alias Analysis Results -; GCN-O1-OPTS-NEXT: Flatten the CFG -; GCN-O1-OPTS-NEXT: Dominator Tree Construction -; GCN-O1-OPTS-NEXT: Basic Alias Analysis (stateless AA impl) -; GCN-O1-OPTS-NEXT: Function Alias Analysis Results -; GCN-O1-OPTS-NEXT: Natural Loop Information -; GCN-O1-OPTS-NEXT: Code sinking -; GCN-O1-OPTS-NEXT: Cycle Info Analysis -; GCN-O1-OPTS-NEXT: Uniformity Analysis -; GCN-O1-OPTS-NEXT: AMDGPU IR late optimizations -; GCN-O1-OPTS-NEXT: Post-Dominator Tree Construction -; GCN-O1-OPTS-NEXT: Uniformity Analysis -; GCN-O1-OPTS-NEXT: Unify divergent function exit nodes -; GCN-O1-OPTS-NEXT: Dominator Tree Construction -; GCN-O1-OPTS-NEXT: Cycle Info Analysis -; GCN-O1-OPTS-NEXT: Convert irreducible control-flow into natural loops -; GCN-O1-OPTS-NEXT: Natural Loop Information -; GCN-O1-OPTS-NEXT: Fixup each natural loop to have a single exit block -; GCN-O1-OPTS-NEXT: Post-Dominator Tree Construction -; GCN-O1-OPTS-NEXT: Dominance Frontier Construction -; GCN-O1-OPTS-NEXT: Detect single entry single exit regions -; GCN-O1-OPTS-NEXT: Region Pass Manager -; GCN-O1-OPTS-NEXT: Structurize control flow -; GCN-O1-OPTS-NEXT: Cycle Info Analysis -; GCN-O1-OPTS-NEXT: Uniformity Analysis -; GCN-O1-OPTS-NEXT: Basic Alias Analysis (stateless AA impl) -; GCN-O1-OPTS-NEXT: Function Alias Analysis Results -; GCN-O1-OPTS-NEXT: Memory SSA -; GCN-O1-OPTS-NEXT: AMDGPU Annotate Uniform Values -; GCN-O1-OPTS-NEXT: Natural Loop Information -; GCN-O1-OPTS-NEXT: SI annotate control flow -; GCN-O1-OPTS-NEXT: Cycle Info Analysis -; GCN-O1-OPTS-NEXT: Uniformity Analysis -; GCN-O1-OPTS-NEXT: AMDGPU Rewrite Undef for PHI -; GCN-O1-OPTS-NEXT: LCSSA Verifier -; GCN-O1-OPTS-NEXT: Loop-Closed SSA Form Pass -; GCN-O1-OPTS-NEXT: DummyCGSCCPass -; GCN-O1-OPTS-NEXT: FunctionPass Manager ; GCN-O1-OPTS-NEXT: Dominator Tree Construction ; GCN-O1-OPTS-NEXT: Basic Alias Analysis (stateless AA impl) ; GCN-O1-OPTS-NEXT: Function Alias Analysis Results @@ -886,52 +883,51 @@ ; GCN-O2-NEXT: GPU Load and Store Vectorizer ; GCN-O2-NEXT: Lower buffer fat pointer operations to buffer resources ; GCN-O2-NEXT: AMDGPU lower intrinsics +; GCN-O2-NEXT: FunctionPass Manager +; GCN-O2-NEXT: Lazy Value Information Analysis +; GCN-O2-NEXT: Lower SwitchInst's to branches +; GCN-O2-NEXT: Lower invoke and unwind, for unwindless code generators +; GCN-O2-NEXT: Remove unreachable blocks from the CFG +; GCN-O2-NEXT: Dominator Tree Construction +; GCN-O2-NEXT: Basic Alias Analysis (stateless AA impl) +; GCN-O2-NEXT: Function Alias Analysis Results +; GCN-O2-NEXT: Flatten the CFG +; GCN-O2-NEXT: Dominator Tree Construction +; GCN-O2-NEXT: Basic Alias Analysis (stateless AA impl) +; GCN-O2-NEXT: Function Alias Analysis Results +; GCN-O2-NEXT: Natural Loop Information +; GCN-O2-NEXT: Code sinking +; GCN-O2-NEXT: Cycle Info Analysis +; GCN-O2-NEXT: Uniformity Analysis +; GCN-O2-NEXT: AMDGPU IR late optimizations +; GCN-O2-NEXT: Post-Dominator Tree Construction +; GCN-O2-NEXT: Uniformity Analysis +; GCN-O2-NEXT: Unify divergent function exit nodes +; GCN-O2-NEXT: Dominator Tree Construction +; GCN-O2-NEXT: Cycle Info Analysis +; GCN-O2-NEXT: Convert irreducible control-flow into natural loops +; GCN-O2-NEXT: Natural Loop Information +; GCN-O2-NEXT: Fixup each natural loop to have a single exit block +; GCN-O2-NEXT: Post-Dominator Tree Construction +; GCN-O2-NEXT: Dominance Frontier Construction +; GCN-O2-NEXT: Detect single entry single exit regions +; GCN-O2-NEXT: Region Pass Manager +; GCN-O2-NEXT: Structurize control flow +; GCN-O2-NEXT: Cycle Info Analysis +; GCN-O2-NEXT: Uniformity Analysis +; GCN-O2-NEXT: Basic Alias Analysis (stateless AA impl) +; GCN-O2-NEXT: Function Alias Analysis Results +; GCN-O2-NEXT: Memory SSA +; GCN-O2-NEXT: AMDGPU Annotate Uniform Values +; GCN-O2-NEXT: Natural Loop Information +; GCN-O2-NEXT: SI annotate control flow +; GCN-O2-NEXT: Cycle Info Analysis +; GCN-O2-NEXT: Uniformity Analysis +; GCN-O2-NEXT: AMDGPU Rewrite Undef for PHI +; GCN-O2-NEXT: LCSSA Verifier +; GCN-O2-NEXT: Loop-Closed SSA Form Pass ; GCN-O2-NEXT: CallGraph Construction ; GCN-O2-NEXT: Call Graph SCC Pass Manager -; GCN-O2-NEXT: DummyCGSCCPass -; GCN-O2-NEXT: FunctionPass Manager -; GCN-O2-NEXT: Lazy Value Information Analysis -; GCN-O2-NEXT: Lower SwitchInst's to branches -; GCN-O2-NEXT: Lower invoke and unwind, for unwindless code generators -; GCN-O2-NEXT: Remove unreachable blocks from the CFG -; GCN-O2-NEXT: Dominator Tree Construction -; GCN-O2-NEXT: Basic Alias Analysis (stateless AA impl) -; GCN-O2-NEXT: Function Alias Analysis Results -; GCN-O2-NEXT: Flatten the CFG -; GCN-O2-NEXT: Dominator Tree Construction -; GCN-O2-NEXT: Basic Alias Analysis (stateless AA impl) -; GCN-O2-NEXT: Function Alias Analysis Results -; GCN-O2-NEXT: Natural Loop Information -; GCN-O2-NEXT: Code sinking -; GCN-O2-NEXT: Cycle Info Analysis -; GCN-O2-NEXT: Uniformity Analysis -; GCN-O2-NEXT: AMDGPU IR late optimizations -; GCN-O2-NEXT: Post-Dominator Tree Construction -; GCN-O2-NEXT: Uniformity Analysis -; GCN-O2-NEXT: Unify divergent function exit nodes -; GCN-O2-NEXT: Dominator Tree Construction -; GCN-O2-NEXT: Cycle Info Analysis -; GCN-O2-NEXT: Convert irreducible control-flow into natural loops -; GCN-O2-NEXT: Natural Loop Information -; GCN-O2-NEXT: Fixup each natural loop to have a single exit block -; GCN-O2-NEXT: Post-Dominator Tree Construction -; GCN-O2-NEXT: Dominance Frontier Construction -; GCN-O2-NEXT: Detect single entry single exit regions -; GCN-O2-NEXT: Region Pass Manager -; GCN-O2-NEXT: Structurize control flow -; GCN-O2-NEXT: Cycle Info Analysis -; GCN-O2-NEXT: Uniformity Analysis -; GCN-O2-NEXT: Basic Alias Analysis (stateless AA impl) -; GCN-O2-NEXT: Function Alias Analysis Results -; GCN-O2-NEXT: Memory SSA -; GCN-O2-NEXT: AMDGPU Annotate Uniform Values -; GCN-O2-NEXT: Natural Loop Information -; GCN-O2-NEXT: SI annotate control flow -; GCN-O2-NEXT: Cycle Info Analysis -; GCN-O2-NEXT: Uniformity Analysis -; GCN-O2-NEXT: AMDGPU Rewrite Undef for PHI -; GCN-O2-NEXT: LCSSA Verifier -; GCN-O2-NEXT: Loop-Closed SSA Form Pass ; GCN-O2-NEXT: Analysis if a function is memory bound ; GCN-O2-NEXT: DummyCGSCCPass ; GCN-O2-NEXT: FunctionPass Manager @@ -1225,52 +1221,51 @@ ; GCN-O3-NEXT: GPU Load and Store Vectorizer ; GCN-O3-NEXT: Lower buffer fat pointer operations to buffer resources ; GCN-O3-NEXT: AMDGPU lower intrinsics +; GCN-O3-NEXT: FunctionPass Manager +; GCN-O3-NEXT: Lazy Value Information Analysis +; GCN-O3-NEXT: Lower SwitchInst's to branches +; GCN-O3-NEXT: Lower invoke and unwind, for unwindless code generators +; GCN-O3-NEXT: Remove unreachable blocks from the CFG +; GCN-O3-NEXT: Dominator Tree Construction +; GCN-O3-NEXT: Basic Alias Analysis (stateless AA impl) +; GCN-O3-NEXT: Function Alias Analysis Results +; GCN-O3-NEXT: Flatten the CFG +; GCN-O3-NEXT: Dominator Tree Construction +; GCN-O3-NEXT: Basic Alias Analysis (stateless AA impl) +; GCN-O3-NEXT: Function Alias Analysis Results +; GCN-O3-NEXT: Natural Loop Information +; GCN-O3-NEXT: Code sinking +; GCN-O3-NEXT: Cycle Info Analysis +; GCN-O3-NEXT: Uniformity Analysis +; GCN-O3-NEXT: AMDGPU IR late optimizations +; GCN-O3-NEXT: Post-Dominator Tree Construction +; GCN-O3-NEXT: Uniformity Analysis +; GCN-O3-NEXT: Unify divergent function exit nodes +; GCN-O3-NEXT: Dominator Tree Construction +; GCN-O3-NEXT: Cycle Info Analysis +; GCN-O3-NEXT: Convert irreducible control-flow into natural loops +; GCN-O3-NEXT: Natural Loop Information +; GCN-O3-NEXT: Fixup each natural loop to have a single exit block +; GCN-O3-NEXT: Post-Dominator Tree Construction +; GCN-O3-NEXT: Dominance Frontier Construction +; GCN-O3-NEXT: Detect single entry single exit regions +; GCN-O3-NEXT: Region Pass Manager +; GCN-O3-NEXT: Structurize control flow +; GCN-O3-NEXT: Cycle Info Analysis +; GCN-O3-NEXT: Uniformity Analysis +; GCN-O3-NEXT: Basic Alias Analysis (stateless AA impl) +; GCN-O3-NEXT: Function Alias Analysis Results +; GCN-O3-NEXT: Memory SSA +; GCN-O3-NEXT: AMDGPU Annotate Uniform Values +; GCN-O3-NEXT: Natural Loop Information +; GCN-O3-NEXT: SI annotate control flow +; GCN-O3-NEXT: Cycle Info Analysis +; GCN-O3-NEXT: Uniformity Analysis +; GCN-O3-NEXT: AMDGPU Rewrite Undef for PHI +; GCN-O3-NEXT: LCSSA Verifier +; GCN-O3-NEXT: Loop-Closed SSA Form Pass ; GCN-O3-NEXT: CallGraph Construction ; GCN-O3-NEXT: Call Graph SCC Pass Manager -; GCN-O3-NEXT: DummyCGSCCPass -; GCN-O3-NEXT: FunctionPass Manager -; GCN-O3-NEXT: Lazy Value Information Analysis -; GCN-O3-NEXT: Lower SwitchInst's to branches -; GCN-O3-NEXT: Lower invoke and unwind, for unwindless code generators -; GCN-O3-NEXT: Remove unreachable blocks from the CFG -; GCN-O3-NEXT: Dominator Tree Construction -; GCN-O3-NEXT: Basic Alias Analysis (stateless AA impl) -; GCN-O3-NEXT: Function Alias Analysis Results -; GCN-O3-NEXT: Flatten the CFG -; GCN-O3-NEXT: Dominator Tree Construction -; GCN-O3-NEXT: Basic Alias Analysis (stateless AA impl) -; GCN-O3-NEXT: Function Alias Analysis Results -; GCN-O3-NEXT: Natural Loop Information -; GCN-O3-NEXT: Code sinking -; GCN-O3-NEXT: Cycle Info Analysis -; GCN-O3-NEXT: Uniformity Analysis -; GCN-O3-NEXT: AMDGPU IR late optimizations -; GCN-O3-NEXT: Post-Dominator Tree Construction -; GCN-O3-NEXT: Uniformity Analysis -; GCN-O3-NEXT: Unify divergent function exit nodes -; GCN-O3-NEXT: Dominator Tree Construction -; GCN-O3-NEXT: Cycle Info Analysis -; GCN-O3-NEXT: Convert irreducible control-flow into natural loops -; GCN-O3-NEXT: Natural Loop Information -; GCN-O3-NEXT: Fixup each natural loop to have a single exit block -; GCN-O3-NEXT: Post-Dominator Tree Construction -; GCN-O3-NEXT: Dominance Frontier Construction -; GCN-O3-NEXT: Detect single entry single exit regions -; GCN-O3-NEXT: Region Pass Manager -; GCN-O3-NEXT: Structurize control flow -; GCN-O3-NEXT: Cycle Info Analysis -; GCN-O3-NEXT: Uniformity Analysis -; GCN-O3-NEXT: Basic Alias Analysis (stateless AA impl) -; GCN-O3-NEXT: Function Alias Analysis Results -; GCN-O3-NEXT: Memory SSA -; GCN-O3-NEXT: AMDGPU Annotate Uniform Values -; GCN-O3-NEXT: Natural Loop Information -; GCN-O3-NEXT: SI annotate control flow -; GCN-O3-NEXT: Cycle Info Analysis -; GCN-O3-NEXT: Uniformity Analysis -; GCN-O3-NEXT: AMDGPU Rewrite Undef for PHI -; GCN-O3-NEXT: LCSSA Verifier -; GCN-O3-NEXT: Loop-Closed SSA Form Pass ; GCN-O3-NEXT: Analysis if a function is memory bound ; GCN-O3-NEXT: DummyCGSCCPass ; GCN-O3-NEXT: FunctionPass Manager