Issue #58168 describes the difficulty diagnosing stack size issues identified by -Wframe-larger-than. For simple code, its easy to understand the stack layout and where space is being allocated, but in more complex programs, where code may be heavily inlined, unrolled, and have duplicated code paths, it is no longer easy to manually inspect the source program and understand where stack space can be attributed. This patch implements a machine function pass that emits remarks with a textual representation of stack slots, and also outputs any available debug information to map source variables to those slots. The new behavior can be used by adding `-Rpass-analysis=stack-frame-layout` to the compiler invocation. Like other remarks the diagnostic information can be saved to a file in a machine readable format by adding -fsave-optimzation-record. Fixes: #58168 Reviewed By: nickdesaulniers, thegameg Differential Revision: https://reviews.llvm.org/D135488
1358 lines
68 KiB
LLVM
1358 lines
68 KiB
LLVM
; When EXPENSIVE_CHECKS are enabled, the machine verifier appears between each
|
|
; pass. Ignore it with 'grep -v'.
|
|
; RUN: llc -O0 -mtriple=amdgcn--amdhsa -disable-verify -debug-pass=Structure < %s 2>&1 \
|
|
; RUN: | grep -v 'Verify generated machine code' | FileCheck -match-full-lines -strict-whitespace -check-prefix=GCN-O0 %s
|
|
; RUN: llc -O1 -mtriple=amdgcn--amdhsa -disable-verify -debug-pass=Structure < %s 2>&1 \
|
|
; RUN: | grep -v 'Verify generated machine code' | FileCheck -match-full-lines -strict-whitespace -check-prefix=GCN-O1 %s
|
|
; RUN: llc -O1 -mtriple=amdgcn--amdhsa -disable-verify -amdgpu-scalar-ir-passes -amdgpu-sdwa-peephole \
|
|
; RUN: -amdgpu-load-store-vectorizer -amdgpu-enable-pre-ra-optimizations -debug-pass=Structure < %s 2>&1 \
|
|
; RUN: | grep -v 'Verify generated machine code' | FileCheck -match-full-lines -strict-whitespace -check-prefix=GCN-O1-OPTS %s
|
|
; RUN: llc -O2 -mtriple=amdgcn--amdhsa -disable-verify -debug-pass=Structure < %s 2>&1 \
|
|
; RUN: | grep -v 'Verify generated machine code' | FileCheck -match-full-lines -strict-whitespace -check-prefix=GCN-O2 %s
|
|
; RUN: llc -O3 -mtriple=amdgcn--amdhsa -disable-verify -debug-pass=Structure < %s 2>&1 \
|
|
; RUN: | grep -v 'Verify generated machine code' | FileCheck -match-full-lines -strict-whitespace -check-prefix=GCN-O3 %s
|
|
|
|
; REQUIRES: asserts
|
|
|
|
; GCN-O0:Target Library Information
|
|
; GCN-O0-NEXT:Target Pass Configuration
|
|
; GCN-O0-NEXT:Machine Module Information
|
|
; GCN-O0-NEXT:Target Transform Information
|
|
; GCN-O0-NEXT:Assumption Cache Tracker
|
|
; GCN-O0-NEXT:Profile summary info
|
|
; GCN-O0-NEXT:Argument Register Usage Information Storage
|
|
; GCN-O0-NEXT:Create Garbage Collector Module Metadata
|
|
; GCN-O0-NEXT:Register Usage Information Storage
|
|
; GCN-O0-NEXT:Machine Branch Probability Analysis
|
|
; GCN-O0-NEXT: ModulePass Manager
|
|
; GCN-O0-NEXT: Pre-ISel Intrinsic Lowering
|
|
; GCN-O0-NEXT: FunctionPass Manager
|
|
; GCN-O0-NEXT: Expand large div/rem
|
|
; GCN-O0-NEXT: Expand large fp convert
|
|
; GCN-O0-NEXT: AMDGPU Printf lowering
|
|
; GCN-O0-NEXT: FunctionPass Manager
|
|
; GCN-O0-NEXT: Dominator Tree Construction
|
|
; GCN-O0-NEXT: Lower ctors and dtors for AMDGPU
|
|
; GCN-O0-NEXT: FunctionPass Manager
|
|
; GCN-O0-NEXT: Early propagate attributes from kernels to functions
|
|
; GCN-O0-NEXT: AMDGPU Lower Intrinsics
|
|
; GCN-O0-NEXT: AMDGPU Inline All Functions
|
|
; GCN-O0-NEXT: CallGraph Construction
|
|
; GCN-O0-NEXT: Call Graph SCC Pass Manager
|
|
; GCN-O0-NEXT: Inliner for always_inline functions
|
|
; GCN-O0-NEXT: A No-Op Barrier Pass
|
|
; GCN-O0-NEXT: Lower OpenCL enqueued blocks
|
|
; GCN-O0-NEXT: Lower uses of LDS variables from non-kernel functions
|
|
; GCN-O0-NEXT: FunctionPass Manager
|
|
; GCN-O0-NEXT: Expand Atomic instructions
|
|
; GCN-O0-NEXT: Lower constant intrinsics
|
|
; GCN-O0-NEXT: Remove unreachable blocks from the CFG
|
|
; GCN-O0-NEXT: Expand vector predication intrinsics
|
|
; GCN-O0-NEXT: Scalarize Masked Memory Intrinsics
|
|
; GCN-O0-NEXT: Expand reduction intrinsics
|
|
; GCN-O0-NEXT: AMDGPU Attributor
|
|
; GCN-O0-NEXT: FunctionPass Manager
|
|
; GCN-O0-NEXT: Cycle Info Analysis
|
|
; GCN-O0-NEXT: CallGraph Construction
|
|
; GCN-O0-NEXT: Call Graph SCC Pass Manager
|
|
; GCN-O0-NEXT: AMDGPU Annotate Kernel Features
|
|
; GCN-O0-NEXT: FunctionPass Manager
|
|
; GCN-O0-NEXT: AMDGPU Lower Kernel Arguments
|
|
; 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: Natural Loop Information
|
|
; GCN-O0-NEXT: Legacy Divergence Analysis
|
|
; GCN-O0-NEXT: Unify divergent function exit nodes
|
|
; GCN-O0-NEXT: Lazy Value Information Analysis
|
|
; GCN-O0-NEXT: Lower SwitchInst's to branches
|
|
; GCN-O0-NEXT: Dominator Tree Construction
|
|
; GCN-O0-NEXT: Natural Loop Information
|
|
; GCN-O0-NEXT: Convert irreducible control-flow into natural loops
|
|
; 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: Post-Dominator Tree Construction
|
|
; GCN-O0-NEXT: Natural Loop Information
|
|
; GCN-O0-NEXT: Legacy Divergence 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: SI annotate control flow
|
|
; GCN-O0-NEXT: Post-Dominator Tree Construction
|
|
; GCN-O0-NEXT: Legacy Divergence 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: Safe Stack instrumentation pass
|
|
; GCN-O0-NEXT: Insert stack protectors
|
|
; GCN-O0-NEXT: Dominator Tree Construction
|
|
; GCN-O0-NEXT: Post-Dominator Tree Construction
|
|
; GCN-O0-NEXT: Natural Loop Information
|
|
; GCN-O0-NEXT: Legacy Divergence Analysis
|
|
; GCN-O0-NEXT: AMDGPU DAG->DAG Pattern Instruction Selection
|
|
; GCN-O0-NEXT: MachineDominator Tree Construction
|
|
; GCN-O0-NEXT: SI Fix SGPR copies
|
|
; GCN-O0-NEXT: MachinePostDominator Tree Construction
|
|
; GCN-O0-NEXT: SI Lower i1 Copies
|
|
; GCN-O0-NEXT: Finalize ISel and expand pseudo-instructions
|
|
; GCN-O0-NEXT: Local Stack Slot Allocation
|
|
; GCN-O0-NEXT: Register Usage Information Propagation
|
|
; GCN-O0-NEXT: Eliminate PHI nodes for register allocation
|
|
; GCN-O0-NEXT: SI Lower control flow pseudo instructions
|
|
; GCN-O0-NEXT: Two-Address instruction pass
|
|
; GCN-O0-NEXT: MachineDominator Tree Construction
|
|
; GCN-O0-NEXT: Slot index numbering
|
|
; GCN-O0-NEXT: Live Interval Analysis
|
|
; GCN-O0-NEXT: MachinePostDominator Tree Construction
|
|
; GCN-O0-NEXT: SI Whole Quad Mode
|
|
; GCN-O0-NEXT: Virtual Register Map
|
|
; GCN-O0-NEXT: Live Register Matrix
|
|
; GCN-O0-NEXT: SI Pre-allocate WWM Registers
|
|
; GCN-O0-NEXT: Fast Register Allocator
|
|
; GCN-O0-NEXT: SI lower SGPR spill instructions
|
|
; GCN-O0-NEXT: Fast Register Allocator
|
|
; GCN-O0-NEXT: SI Fix VGPR copies
|
|
; GCN-O0-NEXT: Remove Redundant DEBUG_VALUE analysis
|
|
; GCN-O0-NEXT: Fixup Statepoint Caller Saved
|
|
; GCN-O0-NEXT: Lazy Machine Block Frequency Analysis
|
|
; GCN-O0-NEXT: Machine Optimization Remark Emitter
|
|
; GCN-O0-NEXT: Prologue/Epilogue Insertion & Frame Finalization
|
|
; GCN-O0-NEXT: Post-RA pseudo instruction expansion pass
|
|
; GCN-O0-NEXT: SI post-RA bundler
|
|
; GCN-O0-NEXT: Insert fentry calls
|
|
; GCN-O0-NEXT: Insert XRay ops
|
|
; GCN-O0-NEXT: SI Memory Legalizer
|
|
; GCN-O0-NEXT: MachineDominator Tree Construction
|
|
; GCN-O0-NEXT: Machine Natural Loop Construction
|
|
; GCN-O0-NEXT: MachinePostDominator Tree Construction
|
|
; GCN-O0-NEXT: SI insert wait instructions
|
|
; GCN-O0-NEXT: Insert required mode register values
|
|
; GCN-O0-NEXT: SI Final Branch Preparation
|
|
; GCN-O0-NEXT: Post RA hazard recognizer
|
|
; GCN-O0-NEXT: Branch relaxation pass
|
|
; GCN-O0-NEXT: Register Usage Information Collector Pass
|
|
; GCN-O0-NEXT: Live DEBUG_VALUE analysis
|
|
; GCN-O0-NEXT: Machine Sanitizer Binary Metadata
|
|
; GCN-O0-NEXT: Lazy Machine Block Frequency Analysis
|
|
; GCN-O0-NEXT: Machine Optimization Remark Emitter
|
|
; GCN-O0-NEXT: Stack Frame Layout Analysis
|
|
; GCN-O0-NEXT: Function register usage analysis
|
|
; GCN-O0-NEXT: FunctionPass Manager
|
|
; GCN-O0-NEXT: Lazy Machine Block Frequency Analysis
|
|
; GCN-O0-NEXT: Machine Optimization Remark Emitter
|
|
; GCN-O0-NEXT: AMDGPU Assembly Printer
|
|
; GCN-O0-NEXT: Free MachineFunction
|
|
; GCN-O0-NEXT:Pass Arguments: -domtree
|
|
; GCN-O0-NEXT: FunctionPass Manager
|
|
; GCN-O0-NEXT: Dominator Tree Construction
|
|
|
|
; GCN-O1:Target Library Information
|
|
; GCN-O1-NEXT:Target Pass Configuration
|
|
; GCN-O1-NEXT:Machine Module Information
|
|
; GCN-O1-NEXT:Target Transform Information
|
|
; GCN-O1-NEXT:Assumption Cache Tracker
|
|
; GCN-O1-NEXT:Profile summary info
|
|
; GCN-O1-NEXT:AMDGPU Address space based Alias Analysis
|
|
; GCN-O1-NEXT:External Alias Analysis
|
|
; GCN-O1-NEXT:Type-Based Alias Analysis
|
|
; GCN-O1-NEXT:Scoped NoAlias Alias Analysis
|
|
; GCN-O1-NEXT:Argument Register Usage Information Storage
|
|
; GCN-O1-NEXT:Create Garbage Collector Module Metadata
|
|
; GCN-O1-NEXT:Machine Branch Probability Analysis
|
|
; GCN-O1-NEXT:Register Usage Information Storage
|
|
; GCN-O1-NEXT:Default Regalloc Eviction Advisor
|
|
; GCN-O1-NEXT:Default Regalloc Priority Advisor
|
|
; GCN-O1-NEXT: ModulePass Manager
|
|
; GCN-O1-NEXT: Pre-ISel Intrinsic Lowering
|
|
; GCN-O1-NEXT: FunctionPass Manager
|
|
; GCN-O1-NEXT: Expand large div/rem
|
|
; GCN-O1-NEXT: Expand large fp convert
|
|
; GCN-O1-NEXT: AMDGPU Printf lowering
|
|
; GCN-O1-NEXT: FunctionPass Manager
|
|
; GCN-O1-NEXT: Dominator Tree Construction
|
|
; GCN-O1-NEXT: Lower ctors and dtors for AMDGPU
|
|
; GCN-O1-NEXT: FunctionPass Manager
|
|
; GCN-O1-NEXT: Early propagate attributes from kernels to functions
|
|
; GCN-O1-NEXT: AMDGPU Lower Intrinsics
|
|
; GCN-O1-NEXT: AMDGPU Inline All Functions
|
|
; GCN-O1-NEXT: CallGraph Construction
|
|
; GCN-O1-NEXT: Call Graph SCC Pass Manager
|
|
; GCN-O1-NEXT: Inliner for always_inline functions
|
|
; GCN-O1-NEXT: A No-Op Barrier Pass
|
|
; GCN-O1-NEXT: Lower OpenCL enqueued blocks
|
|
; GCN-O1-NEXT: Lower uses of LDS variables from non-kernel functions
|
|
; GCN-O1-NEXT: FunctionPass Manager
|
|
; GCN-O1-NEXT: Infer address spaces
|
|
; GCN-O1-NEXT: Expand Atomic instructions
|
|
; GCN-O1-NEXT: AMDGPU Promote Alloca
|
|
; GCN-O1-NEXT: Dominator Tree Construction
|
|
; GCN-O1-NEXT: SROA
|
|
; GCN-O1-NEXT: Post-Dominator Tree Construction
|
|
; GCN-O1-NEXT: Natural Loop Information
|
|
; GCN-O1-NEXT: Legacy Divergence Analysis
|
|
; GCN-O1-NEXT: AMDGPU IR optimizations
|
|
; GCN-O1-NEXT: Basic Alias Analysis (stateless AA impl)
|
|
; GCN-O1-NEXT: Canonicalize natural loops
|
|
; GCN-O1-NEXT: Scalar Evolution Analysis
|
|
; GCN-O1-NEXT: Loop Pass Manager
|
|
; GCN-O1-NEXT: Canonicalize Freeze Instructions in Loops
|
|
; GCN-O1-NEXT: Induction Variable Users
|
|
; GCN-O1-NEXT: Loop Strength Reduction
|
|
; GCN-O1-NEXT: Basic Alias Analysis (stateless AA impl)
|
|
; GCN-O1-NEXT: Function Alias Analysis Results
|
|
; GCN-O1-NEXT: Merge contiguous icmps into a memcmp
|
|
; GCN-O1-NEXT: Natural Loop Information
|
|
; GCN-O1-NEXT: Lazy Branch Probability Analysis
|
|
; GCN-O1-NEXT: Lazy Block Frequency Analysis
|
|
; GCN-O1-NEXT: Expand memcmp() to load/stores
|
|
; GCN-O1-NEXT: Lower constant intrinsics
|
|
; GCN-O1-NEXT: Remove unreachable blocks from the CFG
|
|
; GCN-O1-NEXT: Natural Loop Information
|
|
; GCN-O1-NEXT: Post-Dominator Tree Construction
|
|
; GCN-O1-NEXT: Branch Probability Analysis
|
|
; GCN-O1-NEXT: Block Frequency Analysis
|
|
; GCN-O1-NEXT: Constant Hoisting
|
|
; GCN-O1-NEXT: Replace intrinsics with calls to vector library
|
|
; GCN-O1-NEXT: Partially inline calls to library functions
|
|
; GCN-O1-NEXT: Expand vector predication intrinsics
|
|
; GCN-O1-NEXT: Scalarize Masked Memory Intrinsics
|
|
; GCN-O1-NEXT: Expand reduction intrinsics
|
|
; GCN-O1-NEXT: Natural Loop Information
|
|
; GCN-O1-NEXT: TLS Variable Hoist
|
|
; GCN-O1-NEXT: AMDGPU Attributor
|
|
; GCN-O1-NEXT: FunctionPass Manager
|
|
; GCN-O1-NEXT: Cycle Info Analysis
|
|
; GCN-O1-NEXT: CallGraph Construction
|
|
; GCN-O1-NEXT: Call Graph SCC Pass Manager
|
|
; GCN-O1-NEXT: AMDGPU Annotate Kernel Features
|
|
; GCN-O1-NEXT: FunctionPass Manager
|
|
; GCN-O1-NEXT: AMDGPU Lower Kernel Arguments
|
|
; GCN-O1-NEXT: Dominator Tree Construction
|
|
; GCN-O1-NEXT: Natural Loop Information
|
|
; GCN-O1-NEXT: CodeGen Prepare
|
|
; 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: Post-Dominator Tree Construction
|
|
; GCN-O1-NEXT: Natural Loop Information
|
|
; GCN-O1-NEXT: Legacy Divergence Analysis
|
|
; GCN-O1-NEXT: AMDGPU IR late optimizations
|
|
; GCN-O1-NEXT: Basic Alias Analysis (stateless AA impl)
|
|
; GCN-O1-NEXT: Function Alias Analysis Results
|
|
; GCN-O1-NEXT: Code sinking
|
|
; GCN-O1-NEXT: Legacy Divergence Analysis
|
|
; GCN-O1-NEXT: Unify divergent function exit nodes
|
|
; GCN-O1-NEXT: Lazy Value Information Analysis
|
|
; GCN-O1-NEXT: Lower SwitchInst's to branches
|
|
; GCN-O1-NEXT: Dominator Tree Construction
|
|
; GCN-O1-NEXT: Natural Loop Information
|
|
; GCN-O1-NEXT: Convert irreducible control-flow into natural loops
|
|
; 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: Post-Dominator Tree Construction
|
|
; GCN-O1-NEXT: Natural Loop Information
|
|
; GCN-O1-NEXT: Legacy Divergence 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: SI annotate control flow
|
|
; GCN-O1-NEXT: Post-Dominator Tree Construction
|
|
; GCN-O1-NEXT: Legacy Divergence 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: Safe Stack instrumentation pass
|
|
; GCN-O1-NEXT: Insert stack protectors
|
|
; GCN-O1-NEXT: Dominator Tree Construction
|
|
; GCN-O1-NEXT: Post-Dominator Tree Construction
|
|
; GCN-O1-NEXT: Natural Loop Information
|
|
; GCN-O1-NEXT: Legacy Divergence Analysis
|
|
; GCN-O1-NEXT: Basic Alias Analysis (stateless AA impl)
|
|
; GCN-O1-NEXT: Function Alias Analysis Results
|
|
; GCN-O1-NEXT: Branch Probability Analysis
|
|
; GCN-O1-NEXT: Lazy Branch Probability Analysis
|
|
; GCN-O1-NEXT: Lazy Block Frequency Analysis
|
|
; GCN-O1-NEXT: AMDGPU DAG->DAG Pattern Instruction Selection
|
|
; GCN-O1-NEXT: MachineDominator Tree Construction
|
|
; GCN-O1-NEXT: SI Fix SGPR copies
|
|
; GCN-O1-NEXT: MachinePostDominator Tree Construction
|
|
; GCN-O1-NEXT: SI Lower i1 Copies
|
|
; GCN-O1-NEXT: Finalize ISel and expand pseudo-instructions
|
|
; GCN-O1-NEXT: Lazy Machine Block Frequency Analysis
|
|
; GCN-O1-NEXT: Early Tail Duplication
|
|
; GCN-O1-NEXT: Optimize machine instruction PHIs
|
|
; GCN-O1-NEXT: Slot index numbering
|
|
; GCN-O1-NEXT: Merge disjoint stack slots
|
|
; GCN-O1-NEXT: Local Stack Slot Allocation
|
|
; GCN-O1-NEXT: Remove dead machine instructions
|
|
; GCN-O1-NEXT: MachineDominator Tree Construction
|
|
; GCN-O1-NEXT: Machine Natural Loop Construction
|
|
; GCN-O1-NEXT: Machine Block Frequency Analysis
|
|
; GCN-O1-NEXT: Early Machine Loop Invariant Code Motion
|
|
; GCN-O1-NEXT: MachineDominator Tree Construction
|
|
; GCN-O1-NEXT: Machine Block Frequency Analysis
|
|
; GCN-O1-NEXT: Machine Common Subexpression Elimination
|
|
; GCN-O1-NEXT: MachinePostDominator Tree Construction
|
|
; GCN-O1-NEXT: Machine Cycle Info Analysis
|
|
; GCN-O1-NEXT: Machine code sinking
|
|
; GCN-O1-NEXT: Peephole Optimizations
|
|
; GCN-O1-NEXT: Remove dead machine instructions
|
|
; GCN-O1-NEXT: SI Fold Operands
|
|
; GCN-O1-NEXT: GCN DPP Combine
|
|
; GCN-O1-NEXT: SI Load Store Optimizer
|
|
; GCN-O1-NEXT: Remove dead machine instructions
|
|
; GCN-O1-NEXT: SI Shrink Instructions
|
|
; GCN-O1-NEXT: Register Usage Information Propagation
|
|
; GCN-O1-NEXT: Detect Dead Lanes
|
|
; GCN-O1-NEXT: Remove dead machine instructions
|
|
; GCN-O1-NEXT: Process Implicit Definitions
|
|
; GCN-O1-NEXT: Remove unreachable machine basic blocks
|
|
; GCN-O1-NEXT: Live Variable Analysis
|
|
; GCN-O1-NEXT: MachineDominator Tree Construction
|
|
; GCN-O1-NEXT: SI Optimize VGPR LiveRange
|
|
; GCN-O1-NEXT: Eliminate PHI nodes for register allocation
|
|
; GCN-O1-NEXT: SI Lower control flow pseudo instructions
|
|
; GCN-O1-NEXT: Two-Address instruction pass
|
|
; GCN-O1-NEXT: Slot index numbering
|
|
; GCN-O1-NEXT: Live Interval Analysis
|
|
; GCN-O1-NEXT: Machine Natural Loop Construction
|
|
; GCN-O1-NEXT: Simple Register Coalescing
|
|
; GCN-O1-NEXT: Rename Disconnected Subregister Components
|
|
; GCN-O1-NEXT: Machine Instruction Scheduler
|
|
; GCN-O1-NEXT: MachinePostDominator Tree Construction
|
|
; GCN-O1-NEXT: SI Whole Quad Mode
|
|
; GCN-O1-NEXT: Virtual Register Map
|
|
; GCN-O1-NEXT: Live Register Matrix
|
|
; GCN-O1-NEXT: SI Pre-allocate WWM Registers
|
|
; GCN-O1-NEXT: SI optimize exec mask operations pre-RA
|
|
; GCN-O1-NEXT: Machine Natural Loop Construction
|
|
; GCN-O1-NEXT: Machine Block Frequency Analysis
|
|
; GCN-O1-NEXT: Debug Variable Analysis
|
|
; GCN-O1-NEXT: Live Stack Slot Analysis
|
|
; GCN-O1-NEXT: Virtual Register Map
|
|
; GCN-O1-NEXT: Live Register Matrix
|
|
; GCN-O1-NEXT: Bundle Machine CFG Edges
|
|
; GCN-O1-NEXT: Spill Code Placement Analysis
|
|
; GCN-O1-NEXT: Lazy Machine Block Frequency Analysis
|
|
; GCN-O1-NEXT: Machine Optimization Remark Emitter
|
|
; GCN-O1-NEXT: Greedy Register Allocator
|
|
; GCN-O1-NEXT: Virtual Register Rewriter
|
|
; GCN-O1-NEXT: SI lower SGPR spill instructions
|
|
; GCN-O1-NEXT: Virtual Register Map
|
|
; GCN-O1-NEXT: Live Register Matrix
|
|
; GCN-O1-NEXT: Greedy Register Allocator
|
|
; GCN-O1-NEXT: GCN NSA Reassign
|
|
; GCN-O1-NEXT: Virtual Register Rewriter
|
|
; GCN-O1-NEXT: Stack Slot Coloring
|
|
; GCN-O1-NEXT: Machine Copy Propagation Pass
|
|
; GCN-O1-NEXT: Machine Loop Invariant Code Motion
|
|
; GCN-O1-NEXT: SI Fix VGPR copies
|
|
; GCN-O1-NEXT: SI optimize exec mask operations
|
|
; GCN-O1-NEXT: Remove Redundant DEBUG_VALUE analysis
|
|
; GCN-O1-NEXT: Fixup Statepoint Caller Saved
|
|
; GCN-O1-NEXT: PostRA Machine Sink
|
|
; GCN-O1-NEXT: MachineDominator Tree Construction
|
|
; GCN-O1-NEXT: Machine Natural Loop Construction
|
|
; GCN-O1-NEXT: Machine Block Frequency Analysis
|
|
; GCN-O1-NEXT: MachinePostDominator Tree Construction
|
|
; GCN-O1-NEXT: Lazy Machine Block Frequency Analysis
|
|
; GCN-O1-NEXT: Machine Optimization Remark Emitter
|
|
; GCN-O1-NEXT: Shrink Wrapping analysis
|
|
; GCN-O1-NEXT: Prologue/Epilogue Insertion & Frame Finalization
|
|
; GCN-O1-NEXT: Machine Late Instructions Cleanup Pass
|
|
; GCN-O1-NEXT: Control Flow Optimizer
|
|
; GCN-O1-NEXT: Lazy Machine Block Frequency Analysis
|
|
; GCN-O1-NEXT: Tail Duplication
|
|
; GCN-O1-NEXT: Machine Copy Propagation Pass
|
|
; GCN-O1-NEXT: Post-RA pseudo instruction expansion pass
|
|
; GCN-O1-NEXT: SI Shrink Instructions
|
|
; GCN-O1-NEXT: SI post-RA bundler
|
|
; GCN-O1-NEXT: MachineDominator Tree Construction
|
|
; GCN-O1-NEXT: Machine Natural Loop Construction
|
|
; GCN-O1-NEXT: PostRA Machine Instruction Scheduler
|
|
; GCN-O1-NEXT: Machine Block Frequency Analysis
|
|
; GCN-O1-NEXT: MachinePostDominator Tree Construction
|
|
; GCN-O1-NEXT: Branch Probability Basic Block Placement
|
|
; GCN-O1-NEXT: Insert fentry calls
|
|
; GCN-O1-NEXT: Insert XRay ops
|
|
; GCN-O1-NEXT: GCN Create VOPD Instructions
|
|
; GCN-O1-NEXT: SI Memory Legalizer
|
|
; GCN-O1-NEXT: MachineDominator Tree Construction
|
|
; GCN-O1-NEXT: Machine Natural Loop Construction
|
|
; GCN-O1-NEXT: MachinePostDominator Tree Construction
|
|
; GCN-O1-NEXT: SI insert wait instructions
|
|
; GCN-O1-NEXT: Insert required mode register values
|
|
; GCN-O1-NEXT: SI Insert Hard Clauses
|
|
; GCN-O1-NEXT: SI Final Branch Preparation
|
|
; GCN-O1-NEXT: SI peephole optimizations
|
|
; GCN-O1-NEXT: Post RA hazard recognizer
|
|
; GCN-O1-NEXT: AMDGPU Insert Delay ALU
|
|
; GCN-O1-NEXT: Branch relaxation pass
|
|
; GCN-O1-NEXT: Register Usage Information Collector Pass
|
|
; GCN-O1-NEXT: Live DEBUG_VALUE analysis
|
|
; GCN-O1-NEXT: Machine Sanitizer Binary Metadata
|
|
; GCN-O1-NEXT: Lazy Machine Block Frequency Analysis
|
|
; GCN-O1-NEXT: Machine Optimization Remark Emitter
|
|
; GCN-O1-NEXT: Stack Frame Layout Analysis
|
|
; GCN-O1-NEXT: Function register usage analysis
|
|
; GCN-O1-NEXT: FunctionPass Manager
|
|
; GCN-O1-NEXT: Lazy Machine Block Frequency Analysis
|
|
; GCN-O1-NEXT: Machine Optimization Remark Emitter
|
|
; GCN-O1-NEXT: AMDGPU Assembly Printer
|
|
; GCN-O1-NEXT: Free MachineFunction
|
|
; GCN-O1-NEXT:Pass Arguments: -domtree
|
|
; GCN-O1-NEXT: FunctionPass Manager
|
|
; GCN-O1-NEXT: Dominator Tree Construction
|
|
|
|
; GCN-O1-OPTS:Target Library Information
|
|
; GCN-O1-OPTS-NEXT:Target Pass Configuration
|
|
; GCN-O1-OPTS-NEXT:Machine Module Information
|
|
; GCN-O1-OPTS-NEXT:Target Transform Information
|
|
; GCN-O1-OPTS-NEXT:Assumption Cache Tracker
|
|
; GCN-O1-OPTS-NEXT:Profile summary info
|
|
; GCN-O1-OPTS-NEXT:AMDGPU Address space based Alias Analysis
|
|
; GCN-O1-OPTS-NEXT:External Alias Analysis
|
|
; GCN-O1-OPTS-NEXT:Type-Based Alias Analysis
|
|
; GCN-O1-OPTS-NEXT:Scoped NoAlias Alias Analysis
|
|
; GCN-O1-OPTS-NEXT:Argument Register Usage Information Storage
|
|
; GCN-O1-OPTS-NEXT:Create Garbage Collector Module Metadata
|
|
; GCN-O1-OPTS-NEXT:Machine Branch Probability Analysis
|
|
; GCN-O1-OPTS-NEXT:Register Usage Information Storage
|
|
; GCN-O1-OPTS-NEXT:Default Regalloc Eviction Advisor
|
|
; GCN-O1-OPTS-NEXT:Default Regalloc Priority Advisor
|
|
; GCN-O1-OPTS-NEXT: ModulePass Manager
|
|
; GCN-O1-OPTS-NEXT: Pre-ISel Intrinsic Lowering
|
|
; GCN-O1-OPTS-NEXT: FunctionPass Manager
|
|
; GCN-O1-OPTS-NEXT: Expand large div/rem
|
|
; GCN-O1-OPTS-NEXT: Expand large fp convert
|
|
; GCN-O1-OPTS-NEXT: AMDGPU Printf lowering
|
|
; GCN-O1-OPTS-NEXT: FunctionPass Manager
|
|
; GCN-O1-OPTS-NEXT: Dominator Tree Construction
|
|
; GCN-O1-OPTS-NEXT: Lower ctors and dtors for AMDGPU
|
|
; GCN-O1-OPTS-NEXT: FunctionPass Manager
|
|
; GCN-O1-OPTS-NEXT: Early propagate attributes from kernels to functions
|
|
; GCN-O1-OPTS-NEXT: AMDGPU Lower Intrinsics
|
|
; GCN-O1-OPTS-NEXT: AMDGPU Inline All Functions
|
|
; GCN-O1-OPTS-NEXT: CallGraph Construction
|
|
; GCN-O1-OPTS-NEXT: Call Graph SCC Pass Manager
|
|
; GCN-O1-OPTS-NEXT: Inliner for always_inline functions
|
|
; GCN-O1-OPTS-NEXT: A No-Op Barrier Pass
|
|
; GCN-O1-OPTS-NEXT: Lower OpenCL enqueued blocks
|
|
; GCN-O1-OPTS-NEXT: Lower uses of LDS variables from non-kernel functions
|
|
; GCN-O1-OPTS-NEXT: FunctionPass Manager
|
|
; GCN-O1-OPTS-NEXT: Infer address spaces
|
|
; GCN-O1-OPTS-NEXT: Expand Atomic instructions
|
|
; GCN-O1-OPTS-NEXT: AMDGPU Promote Alloca
|
|
; GCN-O1-OPTS-NEXT: Dominator Tree Construction
|
|
; GCN-O1-OPTS-NEXT: SROA
|
|
; 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: Natural Loop Information
|
|
; GCN-O1-OPTS-NEXT: Canonicalize natural loops
|
|
; GCN-O1-OPTS-NEXT: LCSSA Verifier
|
|
; GCN-O1-OPTS-NEXT: Loop-Closed SSA Form Pass
|
|
; GCN-O1-OPTS-NEXT: Scalar Evolution Analysis
|
|
; GCN-O1-OPTS-NEXT: Lazy Branch Probability Analysis
|
|
; GCN-O1-OPTS-NEXT: Lazy Block Frequency Analysis
|
|
; GCN-O1-OPTS-NEXT: Loop Pass Manager
|
|
; GCN-O1-OPTS-NEXT: Loop Invariant Code Motion
|
|
; GCN-O1-OPTS-NEXT: Split GEPs to a variadic base and a constant offset for better CSE
|
|
; GCN-O1-OPTS-NEXT: Scalar Evolution Analysis
|
|
; GCN-O1-OPTS-NEXT: Straight line strength reduction
|
|
; GCN-O1-OPTS-NEXT: Early CSE
|
|
; GCN-O1-OPTS-NEXT: Scalar Evolution Analysis
|
|
; GCN-O1-OPTS-NEXT: Nary reassociation
|
|
; GCN-O1-OPTS-NEXT: Early CSE
|
|
; GCN-O1-OPTS-NEXT: Post-Dominator Tree Construction
|
|
; GCN-O1-OPTS-NEXT: Legacy Divergence Analysis
|
|
; GCN-O1-OPTS-NEXT: AMDGPU IR optimizations
|
|
; GCN-O1-OPTS-NEXT: Canonicalize natural loops
|
|
; GCN-O1-OPTS-NEXT: Scalar Evolution Analysis
|
|
; GCN-O1-OPTS-NEXT: Loop Pass Manager
|
|
; GCN-O1-OPTS-NEXT: Canonicalize Freeze Instructions in Loops
|
|
; GCN-O1-OPTS-NEXT: Induction Variable Users
|
|
; GCN-O1-OPTS-NEXT: Loop Strength Reduction
|
|
; GCN-O1-OPTS-NEXT: Basic Alias Analysis (stateless AA impl)
|
|
; GCN-O1-OPTS-NEXT: Function Alias Analysis Results
|
|
; GCN-O1-OPTS-NEXT: Merge contiguous icmps into a memcmp
|
|
; GCN-O1-OPTS-NEXT: Natural Loop Information
|
|
; GCN-O1-OPTS-NEXT: Lazy Branch Probability Analysis
|
|
; GCN-O1-OPTS-NEXT: Lazy Block Frequency Analysis
|
|
; GCN-O1-OPTS-NEXT: Expand memcmp() to load/stores
|
|
; GCN-O1-OPTS-NEXT: Lower constant intrinsics
|
|
; GCN-O1-OPTS-NEXT: Remove unreachable blocks from the CFG
|
|
; GCN-O1-OPTS-NEXT: Natural Loop Information
|
|
; GCN-O1-OPTS-NEXT: Post-Dominator Tree Construction
|
|
; GCN-O1-OPTS-NEXT: Branch Probability Analysis
|
|
; GCN-O1-OPTS-NEXT: Block Frequency Analysis
|
|
; GCN-O1-OPTS-NEXT: Constant Hoisting
|
|
; GCN-O1-OPTS-NEXT: Replace intrinsics with calls to vector library
|
|
; GCN-O1-OPTS-NEXT: Partially inline calls to library functions
|
|
; GCN-O1-OPTS-NEXT: Expand vector predication intrinsics
|
|
; GCN-O1-OPTS-NEXT: Scalarize Masked Memory Intrinsics
|
|
; GCN-O1-OPTS-NEXT: Expand reduction intrinsics
|
|
; GCN-O1-OPTS-NEXT: Natural Loop Information
|
|
; GCN-O1-OPTS-NEXT: TLS Variable Hoist
|
|
; GCN-O1-OPTS-NEXT: Early CSE
|
|
; GCN-O1-OPTS-NEXT: AMDGPU Attributor
|
|
; GCN-O1-OPTS-NEXT: FunctionPass Manager
|
|
; GCN-O1-OPTS-NEXT: Cycle Info Analysis
|
|
; GCN-O1-OPTS-NEXT: CallGraph Construction
|
|
; GCN-O1-OPTS-NEXT: Call Graph SCC Pass Manager
|
|
; GCN-O1-OPTS-NEXT: AMDGPU Annotate Kernel Features
|
|
; GCN-O1-OPTS-NEXT: FunctionPass Manager
|
|
; GCN-O1-OPTS-NEXT: AMDGPU Lower Kernel Arguments
|
|
; GCN-O1-OPTS-NEXT: Dominator Tree Construction
|
|
; GCN-O1-OPTS-NEXT: Natural Loop Information
|
|
; GCN-O1-OPTS-NEXT: CodeGen Prepare
|
|
; 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: Scalar Evolution Analysis
|
|
; GCN-O1-OPTS-NEXT: GPU Load and Store Vectorizer
|
|
; 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: Post-Dominator Tree Construction
|
|
; GCN-O1-OPTS-NEXT: Natural Loop Information
|
|
; GCN-O1-OPTS-NEXT: Legacy Divergence Analysis
|
|
; GCN-O1-OPTS-NEXT: AMDGPU IR late optimizations
|
|
; GCN-O1-OPTS-NEXT: Basic Alias Analysis (stateless AA impl)
|
|
; GCN-O1-OPTS-NEXT: Function Alias Analysis Results
|
|
; GCN-O1-OPTS-NEXT: Code sinking
|
|
; GCN-O1-OPTS-NEXT: Legacy Divergence Analysis
|
|
; GCN-O1-OPTS-NEXT: Unify divergent function exit nodes
|
|
; GCN-O1-OPTS-NEXT: Lazy Value Information Analysis
|
|
; GCN-O1-OPTS-NEXT: Lower SwitchInst's to branches
|
|
; GCN-O1-OPTS-NEXT: Dominator Tree Construction
|
|
; GCN-O1-OPTS-NEXT: Natural Loop Information
|
|
; GCN-O1-OPTS-NEXT: Convert irreducible control-flow into natural loops
|
|
; 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: Post-Dominator Tree Construction
|
|
; GCN-O1-OPTS-NEXT: Natural Loop Information
|
|
; GCN-O1-OPTS-NEXT: Legacy Divergence 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: SI annotate control flow
|
|
; GCN-O1-OPTS-NEXT: Post-Dominator Tree Construction
|
|
; GCN-O1-OPTS-NEXT: Legacy Divergence 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: Safe Stack instrumentation pass
|
|
; GCN-O1-OPTS-NEXT: Insert stack protectors
|
|
; GCN-O1-OPTS-NEXT: Dominator Tree Construction
|
|
; GCN-O1-OPTS-NEXT: Post-Dominator Tree Construction
|
|
; GCN-O1-OPTS-NEXT: Natural Loop Information
|
|
; GCN-O1-OPTS-NEXT: Legacy Divergence Analysis
|
|
; GCN-O1-OPTS-NEXT: Basic Alias Analysis (stateless AA impl)
|
|
; GCN-O1-OPTS-NEXT: Function Alias Analysis Results
|
|
; GCN-O1-OPTS-NEXT: Branch Probability Analysis
|
|
; GCN-O1-OPTS-NEXT: Lazy Branch Probability Analysis
|
|
; GCN-O1-OPTS-NEXT: Lazy Block Frequency Analysis
|
|
; GCN-O1-OPTS-NEXT: AMDGPU DAG->DAG Pattern Instruction Selection
|
|
; GCN-O1-OPTS-NEXT: MachineDominator Tree Construction
|
|
; GCN-O1-OPTS-NEXT: SI Fix SGPR copies
|
|
; GCN-O1-OPTS-NEXT: MachinePostDominator Tree Construction
|
|
; GCN-O1-OPTS-NEXT: SI Lower i1 Copies
|
|
; GCN-O1-OPTS-NEXT: Finalize ISel and expand pseudo-instructions
|
|
; GCN-O1-OPTS-NEXT: Lazy Machine Block Frequency Analysis
|
|
; GCN-O1-OPTS-NEXT: Early Tail Duplication
|
|
; GCN-O1-OPTS-NEXT: Optimize machine instruction PHIs
|
|
; GCN-O1-OPTS-NEXT: Slot index numbering
|
|
; GCN-O1-OPTS-NEXT: Merge disjoint stack slots
|
|
; GCN-O1-OPTS-NEXT: Local Stack Slot Allocation
|
|
; GCN-O1-OPTS-NEXT: Remove dead machine instructions
|
|
; GCN-O1-OPTS-NEXT: MachineDominator Tree Construction
|
|
; GCN-O1-OPTS-NEXT: Machine Natural Loop Construction
|
|
; GCN-O1-OPTS-NEXT: Machine Block Frequency Analysis
|
|
; GCN-O1-OPTS-NEXT: Early Machine Loop Invariant Code Motion
|
|
; GCN-O1-OPTS-NEXT: MachineDominator Tree Construction
|
|
; GCN-O1-OPTS-NEXT: Machine Block Frequency Analysis
|
|
; GCN-O1-OPTS-NEXT: Machine Common Subexpression Elimination
|
|
; GCN-O1-OPTS-NEXT: MachinePostDominator Tree Construction
|
|
; GCN-O1-OPTS-NEXT: Machine Cycle Info Analysis
|
|
; GCN-O1-OPTS-NEXT: Machine code sinking
|
|
; GCN-O1-OPTS-NEXT: Peephole Optimizations
|
|
; GCN-O1-OPTS-NEXT: Remove dead machine instructions
|
|
; GCN-O1-OPTS-NEXT: SI Fold Operands
|
|
; GCN-O1-OPTS-NEXT: GCN DPP Combine
|
|
; GCN-O1-OPTS-NEXT: SI Load Store Optimizer
|
|
; GCN-O1-OPTS-NEXT: SI Peephole SDWA
|
|
; GCN-O1-OPTS-NEXT: Machine Block Frequency Analysis
|
|
; GCN-O1-OPTS-NEXT: MachineDominator Tree Construction
|
|
; GCN-O1-OPTS-NEXT: Early Machine Loop Invariant Code Motion
|
|
; GCN-O1-OPTS-NEXT: MachineDominator Tree Construction
|
|
; GCN-O1-OPTS-NEXT: Machine Block Frequency Analysis
|
|
; GCN-O1-OPTS-NEXT: Machine Common Subexpression Elimination
|
|
; GCN-O1-OPTS-NEXT: SI Fold Operands
|
|
; GCN-O1-OPTS-NEXT: Remove dead machine instructions
|
|
; GCN-O1-OPTS-NEXT: SI Shrink Instructions
|
|
; GCN-O1-OPTS-NEXT: Register Usage Information Propagation
|
|
; GCN-O1-OPTS-NEXT: Detect Dead Lanes
|
|
; GCN-O1-OPTS-NEXT: Remove dead machine instructions
|
|
; GCN-O1-OPTS-NEXT: Process Implicit Definitions
|
|
; GCN-O1-OPTS-NEXT: Remove unreachable machine basic blocks
|
|
; GCN-O1-OPTS-NEXT: Live Variable Analysis
|
|
; GCN-O1-OPTS-NEXT: SI Optimize VGPR LiveRange
|
|
; GCN-O1-OPTS-NEXT: Eliminate PHI nodes for register allocation
|
|
; GCN-O1-OPTS-NEXT: SI Lower control flow pseudo instructions
|
|
; GCN-O1-OPTS-NEXT: Two-Address instruction pass
|
|
; GCN-O1-OPTS-NEXT: Slot index numbering
|
|
; GCN-O1-OPTS-NEXT: Live Interval Analysis
|
|
; GCN-O1-OPTS-NEXT: Machine Natural Loop Construction
|
|
; GCN-O1-OPTS-NEXT: Simple Register Coalescing
|
|
; GCN-O1-OPTS-NEXT: Rename Disconnected Subregister Components
|
|
; GCN-O1-OPTS-NEXT: AMDGPU Pre-RA optimizations
|
|
; GCN-O1-OPTS-NEXT: Machine Instruction Scheduler
|
|
; GCN-O1-OPTS-NEXT: MachinePostDominator Tree Construction
|
|
; GCN-O1-OPTS-NEXT: SI Whole Quad Mode
|
|
; GCN-O1-OPTS-NEXT: Virtual Register Map
|
|
; GCN-O1-OPTS-NEXT: Live Register Matrix
|
|
; GCN-O1-OPTS-NEXT: SI Pre-allocate WWM Registers
|
|
; GCN-O1-OPTS-NEXT: SI optimize exec mask operations pre-RA
|
|
; GCN-O1-OPTS-NEXT: Machine Natural Loop Construction
|
|
; GCN-O1-OPTS-NEXT: Machine Block Frequency Analysis
|
|
; GCN-O1-OPTS-NEXT: Debug Variable Analysis
|
|
; GCN-O1-OPTS-NEXT: Live Stack Slot Analysis
|
|
; GCN-O1-OPTS-NEXT: Virtual Register Map
|
|
; GCN-O1-OPTS-NEXT: Live Register Matrix
|
|
; GCN-O1-OPTS-NEXT: Bundle Machine CFG Edges
|
|
; GCN-O1-OPTS-NEXT: Spill Code Placement Analysis
|
|
; GCN-O1-OPTS-NEXT: Lazy Machine Block Frequency Analysis
|
|
; GCN-O1-OPTS-NEXT: Machine Optimization Remark Emitter
|
|
; GCN-O1-OPTS-NEXT: Greedy Register Allocator
|
|
; GCN-O1-OPTS-NEXT: Virtual Register Rewriter
|
|
; GCN-O1-OPTS-NEXT: SI lower SGPR spill instructions
|
|
; GCN-O1-OPTS-NEXT: Virtual Register Map
|
|
; GCN-O1-OPTS-NEXT: Live Register Matrix
|
|
; GCN-O1-OPTS-NEXT: Greedy Register Allocator
|
|
; GCN-O1-OPTS-NEXT: GCN NSA Reassign
|
|
; GCN-O1-OPTS-NEXT: Virtual Register Rewriter
|
|
; GCN-O1-OPTS-NEXT: Stack Slot Coloring
|
|
; GCN-O1-OPTS-NEXT: Machine Copy Propagation Pass
|
|
; GCN-O1-OPTS-NEXT: Machine Loop Invariant Code Motion
|
|
; GCN-O1-OPTS-NEXT: SI Fix VGPR copies
|
|
; GCN-O1-OPTS-NEXT: SI optimize exec mask operations
|
|
; GCN-O1-OPTS-NEXT: Remove Redundant DEBUG_VALUE analysis
|
|
; GCN-O1-OPTS-NEXT: Fixup Statepoint Caller Saved
|
|
; GCN-O1-OPTS-NEXT: PostRA Machine Sink
|
|
; GCN-O1-OPTS-NEXT: MachineDominator Tree Construction
|
|
; GCN-O1-OPTS-NEXT: Machine Natural Loop Construction
|
|
; GCN-O1-OPTS-NEXT: Machine Block Frequency Analysis
|
|
; GCN-O1-OPTS-NEXT: MachinePostDominator Tree Construction
|
|
; GCN-O1-OPTS-NEXT: Lazy Machine Block Frequency Analysis
|
|
; GCN-O1-OPTS-NEXT: Machine Optimization Remark Emitter
|
|
; GCN-O1-OPTS-NEXT: Shrink Wrapping analysis
|
|
; GCN-O1-OPTS-NEXT: Prologue/Epilogue Insertion & Frame Finalization
|
|
; GCN-O1-OPTS-NEXT: Machine Late Instructions Cleanup Pass
|
|
; GCN-O1-OPTS-NEXT: Control Flow Optimizer
|
|
; GCN-O1-OPTS-NEXT: Lazy Machine Block Frequency Analysis
|
|
; GCN-O1-OPTS-NEXT: Tail Duplication
|
|
; GCN-O1-OPTS-NEXT: Machine Copy Propagation Pass
|
|
; GCN-O1-OPTS-NEXT: Post-RA pseudo instruction expansion pass
|
|
; GCN-O1-OPTS-NEXT: SI Shrink Instructions
|
|
; GCN-O1-OPTS-NEXT: SI post-RA bundler
|
|
; GCN-O1-OPTS-NEXT: MachineDominator Tree Construction
|
|
; GCN-O1-OPTS-NEXT: Machine Natural Loop Construction
|
|
; GCN-O1-OPTS-NEXT: PostRA Machine Instruction Scheduler
|
|
; GCN-O1-OPTS-NEXT: Machine Block Frequency Analysis
|
|
; GCN-O1-OPTS-NEXT: MachinePostDominator Tree Construction
|
|
; GCN-O1-OPTS-NEXT: Branch Probability Basic Block Placement
|
|
; GCN-O1-OPTS-NEXT: Insert fentry calls
|
|
; GCN-O1-OPTS-NEXT: Insert XRay ops
|
|
; GCN-O1-OPTS-NEXT: GCN Create VOPD Instructions
|
|
; GCN-O1-OPTS-NEXT: SI Memory Legalizer
|
|
; GCN-O1-OPTS-NEXT: MachineDominator Tree Construction
|
|
; GCN-O1-OPTS-NEXT: Machine Natural Loop Construction
|
|
; GCN-O1-OPTS-NEXT: MachinePostDominator Tree Construction
|
|
; GCN-O1-OPTS-NEXT: SI insert wait instructions
|
|
; GCN-O1-OPTS-NEXT: Insert required mode register values
|
|
; GCN-O1-OPTS-NEXT: SI Insert Hard Clauses
|
|
; GCN-O1-OPTS-NEXT: SI Final Branch Preparation
|
|
; GCN-O1-OPTS-NEXT: SI peephole optimizations
|
|
; GCN-O1-OPTS-NEXT: Post RA hazard recognizer
|
|
; GCN-O1-OPTS-NEXT: AMDGPU Insert Delay ALU
|
|
; GCN-O1-OPTS-NEXT: Branch relaxation pass
|
|
; GCN-O1-OPTS-NEXT: Register Usage Information Collector Pass
|
|
; GCN-O1-OPTS-NEXT: Live DEBUG_VALUE analysis
|
|
; GCN-O1-OPTS-NEXT: Machine Sanitizer Binary Metadata
|
|
; GCN-O1-OPTS-NEXT: Lazy Machine Block Frequency Analysis
|
|
; GCN-O1-OPTS-NEXT: Machine Optimization Remark Emitter
|
|
; GCN-O1-OPTS-NEXT: Stack Frame Layout Analysis
|
|
; GCN-O1-OPTS-NEXT: Function register usage analysis
|
|
; GCN-O1-OPTS-NEXT: FunctionPass Manager
|
|
; GCN-O1-OPTS-NEXT: Lazy Machine Block Frequency Analysis
|
|
; GCN-O1-OPTS-NEXT: Machine Optimization Remark Emitter
|
|
; GCN-O1-OPTS-NEXT: AMDGPU Assembly Printer
|
|
; GCN-O1-OPTS-NEXT: Free MachineFunction
|
|
; GCN-O1-OPTS-NEXT:Pass Arguments: -domtree
|
|
; GCN-O1-OPTS-NEXT: FunctionPass Manager
|
|
; GCN-O1-OPTS-NEXT: Dominator Tree Construction
|
|
|
|
; GCN-O2:Target Library Information
|
|
; GCN-O2-NEXT:Target Pass Configuration
|
|
; GCN-O2-NEXT:Machine Module Information
|
|
; GCN-O2-NEXT:Target Transform Information
|
|
; GCN-O2-NEXT:Assumption Cache Tracker
|
|
; GCN-O2-NEXT:Profile summary info
|
|
; GCN-O2-NEXT:AMDGPU Address space based Alias Analysis
|
|
; GCN-O2-NEXT:External Alias Analysis
|
|
; GCN-O2-NEXT:Type-Based Alias Analysis
|
|
; GCN-O2-NEXT:Scoped NoAlias Alias Analysis
|
|
; GCN-O2-NEXT:Argument Register Usage Information Storage
|
|
; GCN-O2-NEXT:Create Garbage Collector Module Metadata
|
|
; GCN-O2-NEXT:Machine Branch Probability Analysis
|
|
; GCN-O2-NEXT:Register Usage Information Storage
|
|
; GCN-O2-NEXT:Default Regalloc Eviction Advisor
|
|
; GCN-O2-NEXT:Default Regalloc Priority Advisor
|
|
; GCN-O2-NEXT: ModulePass Manager
|
|
; GCN-O2-NEXT: Pre-ISel Intrinsic Lowering
|
|
; GCN-O2-NEXT: FunctionPass Manager
|
|
; GCN-O2-NEXT: Expand large div/rem
|
|
; GCN-O2-NEXT: Expand large fp convert
|
|
; GCN-O2-NEXT: AMDGPU Printf lowering
|
|
; GCN-O2-NEXT: FunctionPass Manager
|
|
; GCN-O2-NEXT: Dominator Tree Construction
|
|
; GCN-O2-NEXT: Lower ctors and dtors for AMDGPU
|
|
; GCN-O2-NEXT: FunctionPass Manager
|
|
; GCN-O2-NEXT: Early propagate attributes from kernels to functions
|
|
; GCN-O2-NEXT: AMDGPU Lower Intrinsics
|
|
; GCN-O2-NEXT: AMDGPU Inline All Functions
|
|
; GCN-O2-NEXT: CallGraph Construction
|
|
; GCN-O2-NEXT: Call Graph SCC Pass Manager
|
|
; GCN-O2-NEXT: Inliner for always_inline functions
|
|
; GCN-O2-NEXT: A No-Op Barrier Pass
|
|
; GCN-O2-NEXT: Lower OpenCL enqueued blocks
|
|
; GCN-O2-NEXT: Lower uses of LDS variables from non-kernel functions
|
|
; GCN-O2-NEXT: FunctionPass Manager
|
|
; GCN-O2-NEXT: Infer address spaces
|
|
; GCN-O2-NEXT: Expand Atomic instructions
|
|
; GCN-O2-NEXT: AMDGPU Promote Alloca
|
|
; GCN-O2-NEXT: Dominator Tree Construction
|
|
; GCN-O2-NEXT: SROA
|
|
; GCN-O2-NEXT: Basic Alias Analysis (stateless AA impl)
|
|
; GCN-O2-NEXT: Function Alias Analysis Results
|
|
; GCN-O2-NEXT: Memory SSA
|
|
; GCN-O2-NEXT: Natural Loop Information
|
|
; GCN-O2-NEXT: Canonicalize natural loops
|
|
; GCN-O2-NEXT: LCSSA Verifier
|
|
; GCN-O2-NEXT: Loop-Closed SSA Form Pass
|
|
; GCN-O2-NEXT: Scalar Evolution Analysis
|
|
; GCN-O2-NEXT: Lazy Branch Probability Analysis
|
|
; GCN-O2-NEXT: Lazy Block Frequency Analysis
|
|
; GCN-O2-NEXT: Loop Pass Manager
|
|
; GCN-O2-NEXT: Loop Invariant Code Motion
|
|
; GCN-O2-NEXT: Split GEPs to a variadic base and a constant offset for better CSE
|
|
; GCN-O2-NEXT: Scalar Evolution Analysis
|
|
; GCN-O2-NEXT: Straight line strength reduction
|
|
; GCN-O2-NEXT: Early CSE
|
|
; GCN-O2-NEXT: Scalar Evolution Analysis
|
|
; GCN-O2-NEXT: Nary reassociation
|
|
; GCN-O2-NEXT: Early CSE
|
|
; GCN-O2-NEXT: Post-Dominator Tree Construction
|
|
; GCN-O2-NEXT: Legacy Divergence Analysis
|
|
; GCN-O2-NEXT: AMDGPU IR optimizations
|
|
; GCN-O2-NEXT: Canonicalize natural loops
|
|
; GCN-O2-NEXT: Scalar Evolution Analysis
|
|
; GCN-O2-NEXT: Loop Pass Manager
|
|
; GCN-O2-NEXT: Canonicalize Freeze Instructions in Loops
|
|
; GCN-O2-NEXT: Induction Variable Users
|
|
; GCN-O2-NEXT: Loop Strength Reduction
|
|
; GCN-O2-NEXT: Basic Alias Analysis (stateless AA impl)
|
|
; GCN-O2-NEXT: Function Alias Analysis Results
|
|
; GCN-O2-NEXT: Merge contiguous icmps into a memcmp
|
|
; GCN-O2-NEXT: Natural Loop Information
|
|
; GCN-O2-NEXT: Lazy Branch Probability Analysis
|
|
; GCN-O2-NEXT: Lazy Block Frequency Analysis
|
|
; GCN-O2-NEXT: Expand memcmp() to load/stores
|
|
; GCN-O2-NEXT: Lower constant intrinsics
|
|
; GCN-O2-NEXT: Remove unreachable blocks from the CFG
|
|
; GCN-O2-NEXT: Natural Loop Information
|
|
; GCN-O2-NEXT: Post-Dominator Tree Construction
|
|
; GCN-O2-NEXT: Branch Probability Analysis
|
|
; GCN-O2-NEXT: Block Frequency Analysis
|
|
; GCN-O2-NEXT: Constant Hoisting
|
|
; GCN-O2-NEXT: Replace intrinsics with calls to vector library
|
|
; GCN-O2-NEXT: Partially inline calls to library functions
|
|
; GCN-O2-NEXT: Expand vector predication intrinsics
|
|
; GCN-O2-NEXT: Scalarize Masked Memory Intrinsics
|
|
; GCN-O2-NEXT: Expand reduction intrinsics
|
|
; GCN-O2-NEXT: Natural Loop Information
|
|
; GCN-O2-NEXT: TLS Variable Hoist
|
|
; GCN-O2-NEXT: Early CSE
|
|
; GCN-O2-NEXT: AMDGPU Attributor
|
|
; GCN-O2-NEXT: FunctionPass Manager
|
|
; GCN-O2-NEXT: Cycle Info Analysis
|
|
; GCN-O2-NEXT: CallGraph Construction
|
|
; GCN-O2-NEXT: Call Graph SCC Pass Manager
|
|
; GCN-O2-NEXT: AMDGPU Annotate Kernel Features
|
|
; GCN-O2-NEXT: FunctionPass Manager
|
|
; GCN-O2-NEXT: AMDGPU Lower Kernel Arguments
|
|
; GCN-O2-NEXT: Dominator Tree Construction
|
|
; GCN-O2-NEXT: Natural Loop Information
|
|
; GCN-O2-NEXT: CodeGen Prepare
|
|
; 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: Scalar Evolution Analysis
|
|
; GCN-O2-NEXT: GPU Load and Store Vectorizer
|
|
; 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: Post-Dominator Tree Construction
|
|
; GCN-O2-NEXT: Natural Loop Information
|
|
; GCN-O2-NEXT: Legacy Divergence Analysis
|
|
; GCN-O2-NEXT: AMDGPU IR late optimizations
|
|
; GCN-O2-NEXT: Basic Alias Analysis (stateless AA impl)
|
|
; GCN-O2-NEXT: Function Alias Analysis Results
|
|
; GCN-O2-NEXT: Code sinking
|
|
; GCN-O2-NEXT: Legacy Divergence Analysis
|
|
; GCN-O2-NEXT: Unify divergent function exit nodes
|
|
; GCN-O2-NEXT: Lazy Value Information Analysis
|
|
; GCN-O2-NEXT: Lower SwitchInst's to branches
|
|
; GCN-O2-NEXT: Dominator Tree Construction
|
|
; GCN-O2-NEXT: Natural Loop Information
|
|
; GCN-O2-NEXT: Convert irreducible control-flow into natural loops
|
|
; 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: Post-Dominator Tree Construction
|
|
; GCN-O2-NEXT: Natural Loop Information
|
|
; GCN-O2-NEXT: Legacy Divergence 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: SI annotate control flow
|
|
; GCN-O2-NEXT: Post-Dominator Tree Construction
|
|
; GCN-O2-NEXT: Legacy Divergence 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
|
|
; GCN-O2-NEXT: Safe Stack instrumentation pass
|
|
; GCN-O2-NEXT: Insert stack protectors
|
|
; GCN-O2-NEXT: Dominator Tree Construction
|
|
; GCN-O2-NEXT: Post-Dominator Tree Construction
|
|
; GCN-O2-NEXT: Natural Loop Information
|
|
; GCN-O2-NEXT: Legacy Divergence Analysis
|
|
; GCN-O2-NEXT: Basic Alias Analysis (stateless AA impl)
|
|
; GCN-O2-NEXT: Function Alias Analysis Results
|
|
; GCN-O2-NEXT: Branch Probability Analysis
|
|
; GCN-O2-NEXT: Lazy Branch Probability Analysis
|
|
; GCN-O2-NEXT: Lazy Block Frequency Analysis
|
|
; GCN-O2-NEXT: AMDGPU DAG->DAG Pattern Instruction Selection
|
|
; GCN-O2-NEXT: MachineDominator Tree Construction
|
|
; GCN-O2-NEXT: SI Fix SGPR copies
|
|
; GCN-O2-NEXT: MachinePostDominator Tree Construction
|
|
; GCN-O2-NEXT: SI Lower i1 Copies
|
|
; GCN-O2-NEXT: Finalize ISel and expand pseudo-instructions
|
|
; GCN-O2-NEXT: Lazy Machine Block Frequency Analysis
|
|
; GCN-O2-NEXT: Early Tail Duplication
|
|
; GCN-O2-NEXT: Optimize machine instruction PHIs
|
|
; GCN-O2-NEXT: Slot index numbering
|
|
; GCN-O2-NEXT: Merge disjoint stack slots
|
|
; GCN-O2-NEXT: Local Stack Slot Allocation
|
|
; GCN-O2-NEXT: Remove dead machine instructions
|
|
; GCN-O2-NEXT: MachineDominator Tree Construction
|
|
; GCN-O2-NEXT: Machine Natural Loop Construction
|
|
; GCN-O2-NEXT: Machine Block Frequency Analysis
|
|
; GCN-O2-NEXT: Early Machine Loop Invariant Code Motion
|
|
; GCN-O2-NEXT: MachineDominator Tree Construction
|
|
; GCN-O2-NEXT: Machine Block Frequency Analysis
|
|
; GCN-O2-NEXT: Machine Common Subexpression Elimination
|
|
; GCN-O2-NEXT: MachinePostDominator Tree Construction
|
|
; GCN-O2-NEXT: Machine Cycle Info Analysis
|
|
; GCN-O2-NEXT: Machine code sinking
|
|
; GCN-O2-NEXT: Peephole Optimizations
|
|
; GCN-O2-NEXT: Remove dead machine instructions
|
|
; GCN-O2-NEXT: SI Fold Operands
|
|
; GCN-O2-NEXT: GCN DPP Combine
|
|
; GCN-O2-NEXT: SI Load Store Optimizer
|
|
; GCN-O2-NEXT: SI Peephole SDWA
|
|
; GCN-O2-NEXT: Machine Block Frequency Analysis
|
|
; GCN-O2-NEXT: MachineDominator Tree Construction
|
|
; GCN-O2-NEXT: Early Machine Loop Invariant Code Motion
|
|
; GCN-O2-NEXT: MachineDominator Tree Construction
|
|
; GCN-O2-NEXT: Machine Block Frequency Analysis
|
|
; GCN-O2-NEXT: Machine Common Subexpression Elimination
|
|
; GCN-O2-NEXT: SI Fold Operands
|
|
; GCN-O2-NEXT: Remove dead machine instructions
|
|
; GCN-O2-NEXT: SI Shrink Instructions
|
|
; GCN-O2-NEXT: Register Usage Information Propagation
|
|
; GCN-O2-NEXT: Detect Dead Lanes
|
|
; GCN-O2-NEXT: Remove dead machine instructions
|
|
; GCN-O2-NEXT: Process Implicit Definitions
|
|
; GCN-O2-NEXT: Remove unreachable machine basic blocks
|
|
; GCN-O2-NEXT: Live Variable Analysis
|
|
; GCN-O2-NEXT: SI Optimize VGPR LiveRange
|
|
; GCN-O2-NEXT: Eliminate PHI nodes for register allocation
|
|
; GCN-O2-NEXT: SI Lower control flow pseudo instructions
|
|
; GCN-O2-NEXT: Two-Address instruction pass
|
|
; GCN-O2-NEXT: Slot index numbering
|
|
; GCN-O2-NEXT: Live Interval Analysis
|
|
; GCN-O2-NEXT: Machine Natural Loop Construction
|
|
; GCN-O2-NEXT: Simple Register Coalescing
|
|
; GCN-O2-NEXT: Rename Disconnected Subregister Components
|
|
; GCN-O2-NEXT: AMDGPU Pre-RA optimizations
|
|
; GCN-O2-NEXT: Machine Instruction Scheduler
|
|
; GCN-O2-NEXT: MachinePostDominator Tree Construction
|
|
; GCN-O2-NEXT: SI Whole Quad Mode
|
|
; GCN-O2-NEXT: Virtual Register Map
|
|
; GCN-O2-NEXT: Live Register Matrix
|
|
; GCN-O2-NEXT: SI Pre-allocate WWM Registers
|
|
; GCN-O2-NEXT: SI optimize exec mask operations pre-RA
|
|
; GCN-O2-NEXT: SI Form memory clauses
|
|
; GCN-O2-NEXT: Machine Natural Loop Construction
|
|
; GCN-O2-NEXT: Machine Block Frequency Analysis
|
|
; GCN-O2-NEXT: Debug Variable Analysis
|
|
; GCN-O2-NEXT: Live Stack Slot Analysis
|
|
; GCN-O2-NEXT: Virtual Register Map
|
|
; GCN-O2-NEXT: Live Register Matrix
|
|
; GCN-O2-NEXT: Bundle Machine CFG Edges
|
|
; GCN-O2-NEXT: Spill Code Placement Analysis
|
|
; GCN-O2-NEXT: Lazy Machine Block Frequency Analysis
|
|
; GCN-O2-NEXT: Machine Optimization Remark Emitter
|
|
; GCN-O2-NEXT: Greedy Register Allocator
|
|
; GCN-O2-NEXT: Virtual Register Rewriter
|
|
; GCN-O2-NEXT: SI lower SGPR spill instructions
|
|
; GCN-O2-NEXT: Virtual Register Map
|
|
; GCN-O2-NEXT: Live Register Matrix
|
|
; GCN-O2-NEXT: Greedy Register Allocator
|
|
; GCN-O2-NEXT: GCN NSA Reassign
|
|
; GCN-O2-NEXT: Virtual Register Rewriter
|
|
; GCN-O2-NEXT: Stack Slot Coloring
|
|
; GCN-O2-NEXT: Machine Copy Propagation Pass
|
|
; GCN-O2-NEXT: Machine Loop Invariant Code Motion
|
|
; GCN-O2-NEXT: SI Fix VGPR copies
|
|
; GCN-O2-NEXT: SI optimize exec mask operations
|
|
; GCN-O2-NEXT: Remove Redundant DEBUG_VALUE analysis
|
|
; GCN-O2-NEXT: Fixup Statepoint Caller Saved
|
|
; GCN-O2-NEXT: PostRA Machine Sink
|
|
; GCN-O2-NEXT: MachineDominator Tree Construction
|
|
; GCN-O2-NEXT: Machine Natural Loop Construction
|
|
; GCN-O2-NEXT: Machine Block Frequency Analysis
|
|
; GCN-O2-NEXT: MachinePostDominator Tree Construction
|
|
; GCN-O2-NEXT: Lazy Machine Block Frequency Analysis
|
|
; GCN-O2-NEXT: Machine Optimization Remark Emitter
|
|
; GCN-O2-NEXT: Shrink Wrapping analysis
|
|
; GCN-O2-NEXT: Prologue/Epilogue Insertion & Frame Finalization
|
|
; GCN-O2-NEXT: Machine Late Instructions Cleanup Pass
|
|
; GCN-O2-NEXT: Control Flow Optimizer
|
|
; GCN-O2-NEXT: Lazy Machine Block Frequency Analysis
|
|
; GCN-O2-NEXT: Tail Duplication
|
|
; GCN-O2-NEXT: Machine Copy Propagation Pass
|
|
; GCN-O2-NEXT: Post-RA pseudo instruction expansion pass
|
|
; GCN-O2-NEXT: SI Shrink Instructions
|
|
; GCN-O2-NEXT: SI post-RA bundler
|
|
; GCN-O2-NEXT: MachineDominator Tree Construction
|
|
; GCN-O2-NEXT: Machine Natural Loop Construction
|
|
; GCN-O2-NEXT: PostRA Machine Instruction Scheduler
|
|
; GCN-O2-NEXT: Machine Block Frequency Analysis
|
|
; GCN-O2-NEXT: MachinePostDominator Tree Construction
|
|
; GCN-O2-NEXT: Branch Probability Basic Block Placement
|
|
; GCN-O2-NEXT: Insert fentry calls
|
|
; GCN-O2-NEXT: Insert XRay ops
|
|
; GCN-O2-NEXT: GCN Create VOPD Instructions
|
|
; GCN-O2-NEXT: SI Memory Legalizer
|
|
; GCN-O2-NEXT: MachineDominator Tree Construction
|
|
; GCN-O2-NEXT: Machine Natural Loop Construction
|
|
; GCN-O2-NEXT: MachinePostDominator Tree Construction
|
|
; GCN-O2-NEXT: SI insert wait instructions
|
|
; GCN-O2-NEXT: Insert required mode register values
|
|
; GCN-O2-NEXT: SI Insert Hard Clauses
|
|
; GCN-O2-NEXT: SI Final Branch Preparation
|
|
; GCN-O2-NEXT: SI peephole optimizations
|
|
; GCN-O2-NEXT: Post RA hazard recognizer
|
|
; GCN-O2-NEXT: Release VGPRs
|
|
; GCN-O2-NEXT: AMDGPU Insert Delay ALU
|
|
; GCN-O2-NEXT: Branch relaxation pass
|
|
; GCN-O2-NEXT: Register Usage Information Collector Pass
|
|
; GCN-O2-NEXT: Live DEBUG_VALUE analysis
|
|
; GCN-O2-NEXT: Machine Sanitizer Binary Metadata
|
|
; GCN-O2-NEXT: Lazy Machine Block Frequency Analysis
|
|
; GCN-O2-NEXT: Machine Optimization Remark Emitter
|
|
; GCN-O2-NEXT: Stack Frame Layout Analysis
|
|
; GCN-O2-NEXT: Function register usage analysis
|
|
; GCN-O2-NEXT: FunctionPass Manager
|
|
; GCN-O2-NEXT: Lazy Machine Block Frequency Analysis
|
|
; GCN-O2-NEXT: Machine Optimization Remark Emitter
|
|
; GCN-O2-NEXT: AMDGPU Assembly Printer
|
|
; GCN-O2-NEXT: Free MachineFunction
|
|
; GCN-O2-NEXT:Pass Arguments: -domtree
|
|
; GCN-O2-NEXT: FunctionPass Manager
|
|
; GCN-O2-NEXT: Dominator Tree Construction
|
|
|
|
; GCN-O3:Target Library Information
|
|
; GCN-O3-NEXT:Target Pass Configuration
|
|
; GCN-O3-NEXT:Machine Module Information
|
|
; GCN-O3-NEXT:Target Transform Information
|
|
; GCN-O3-NEXT:Assumption Cache Tracker
|
|
; GCN-O3-NEXT:Profile summary info
|
|
; GCN-O3-NEXT:AMDGPU Address space based Alias Analysis
|
|
; GCN-O3-NEXT:External Alias Analysis
|
|
; GCN-O3-NEXT:Type-Based Alias Analysis
|
|
; GCN-O3-NEXT:Scoped NoAlias Alias Analysis
|
|
; GCN-O3-NEXT:Argument Register Usage Information Storage
|
|
; GCN-O3-NEXT:Create Garbage Collector Module Metadata
|
|
; GCN-O3-NEXT:Machine Branch Probability Analysis
|
|
; GCN-O3-NEXT:Register Usage Information Storage
|
|
; GCN-O3-NEXT:Default Regalloc Eviction Advisor
|
|
; GCN-O3-NEXT:Default Regalloc Priority Advisor
|
|
; GCN-O3-NEXT: ModulePass Manager
|
|
; GCN-O3-NEXT: Pre-ISel Intrinsic Lowering
|
|
; GCN-O3-NEXT: FunctionPass Manager
|
|
; GCN-O3-NEXT: Expand large div/rem
|
|
; GCN-O3-NEXT: Expand large fp convert
|
|
; GCN-O3-NEXT: AMDGPU Printf lowering
|
|
; GCN-O3-NEXT: FunctionPass Manager
|
|
; GCN-O3-NEXT: Dominator Tree Construction
|
|
; GCN-O3-NEXT: Lower ctors and dtors for AMDGPU
|
|
; GCN-O3-NEXT: FunctionPass Manager
|
|
; GCN-O3-NEXT: Early propagate attributes from kernels to functions
|
|
; GCN-O3-NEXT: AMDGPU Lower Intrinsics
|
|
; GCN-O3-NEXT: AMDGPU Inline All Functions
|
|
; GCN-O3-NEXT: CallGraph Construction
|
|
; GCN-O3-NEXT: Call Graph SCC Pass Manager
|
|
; GCN-O3-NEXT: Inliner for always_inline functions
|
|
; GCN-O3-NEXT: A No-Op Barrier Pass
|
|
; GCN-O3-NEXT: Lower OpenCL enqueued blocks
|
|
; GCN-O3-NEXT: Lower uses of LDS variables from non-kernel functions
|
|
; GCN-O3-NEXT: FunctionPass Manager
|
|
; GCN-O3-NEXT: Infer address spaces
|
|
; GCN-O3-NEXT: Expand Atomic instructions
|
|
; GCN-O3-NEXT: AMDGPU Promote Alloca
|
|
; GCN-O3-NEXT: Dominator Tree Construction
|
|
; GCN-O3-NEXT: SROA
|
|
; GCN-O3-NEXT: Basic Alias Analysis (stateless AA impl)
|
|
; GCN-O3-NEXT: Function Alias Analysis Results
|
|
; GCN-O3-NEXT: Memory SSA
|
|
; GCN-O3-NEXT: Natural Loop Information
|
|
; GCN-O3-NEXT: Canonicalize natural loops
|
|
; GCN-O3-NEXT: LCSSA Verifier
|
|
; GCN-O3-NEXT: Loop-Closed SSA Form Pass
|
|
; GCN-O3-NEXT: Scalar Evolution Analysis
|
|
; GCN-O3-NEXT: Lazy Branch Probability Analysis
|
|
; GCN-O3-NEXT: Lazy Block Frequency Analysis
|
|
; GCN-O3-NEXT: Loop Pass Manager
|
|
; GCN-O3-NEXT: Loop Invariant Code Motion
|
|
; GCN-O3-NEXT: Split GEPs to a variadic base and a constant offset for better CSE
|
|
; GCN-O3-NEXT: Scalar Evolution Analysis
|
|
; GCN-O3-NEXT: Straight line strength reduction
|
|
; GCN-O3-NEXT: Function Alias Analysis Results
|
|
; GCN-O3-NEXT: Memory Dependence Analysis
|
|
; GCN-O3-NEXT: Optimization Remark Emitter
|
|
; GCN-O3-NEXT: Global Value Numbering
|
|
; GCN-O3-NEXT: Scalar Evolution Analysis
|
|
; GCN-O3-NEXT: Nary reassociation
|
|
; GCN-O3-NEXT: Early CSE
|
|
; GCN-O3-NEXT: Post-Dominator Tree Construction
|
|
; GCN-O3-NEXT: Legacy Divergence Analysis
|
|
; GCN-O3-NEXT: AMDGPU IR optimizations
|
|
; GCN-O3-NEXT: Basic Alias Analysis (stateless AA impl)
|
|
; GCN-O3-NEXT: Canonicalize natural loops
|
|
; GCN-O3-NEXT: Scalar Evolution Analysis
|
|
; GCN-O3-NEXT: Loop Pass Manager
|
|
; GCN-O3-NEXT: Canonicalize Freeze Instructions in Loops
|
|
; GCN-O3-NEXT: Induction Variable Users
|
|
; GCN-O3-NEXT: Loop Strength Reduction
|
|
; GCN-O3-NEXT: Basic Alias Analysis (stateless AA impl)
|
|
; GCN-O3-NEXT: Function Alias Analysis Results
|
|
; GCN-O3-NEXT: Merge contiguous icmps into a memcmp
|
|
; GCN-O3-NEXT: Natural Loop Information
|
|
; GCN-O3-NEXT: Lazy Branch Probability Analysis
|
|
; GCN-O3-NEXT: Lazy Block Frequency Analysis
|
|
; GCN-O3-NEXT: Expand memcmp() to load/stores
|
|
; GCN-O3-NEXT: Lower constant intrinsics
|
|
; GCN-O3-NEXT: Remove unreachable blocks from the CFG
|
|
; GCN-O3-NEXT: Natural Loop Information
|
|
; GCN-O3-NEXT: Post-Dominator Tree Construction
|
|
; GCN-O3-NEXT: Branch Probability Analysis
|
|
; GCN-O3-NEXT: Block Frequency Analysis
|
|
; GCN-O3-NEXT: Constant Hoisting
|
|
; GCN-O3-NEXT: Replace intrinsics with calls to vector library
|
|
; GCN-O3-NEXT: Partially inline calls to library functions
|
|
; GCN-O3-NEXT: Expand vector predication intrinsics
|
|
; GCN-O3-NEXT: Scalarize Masked Memory Intrinsics
|
|
; GCN-O3-NEXT: Expand reduction intrinsics
|
|
; GCN-O3-NEXT: Natural Loop Information
|
|
; GCN-O3-NEXT: TLS Variable Hoist
|
|
; GCN-O3-NEXT: Basic Alias Analysis (stateless AA impl)
|
|
; GCN-O3-NEXT: Function Alias Analysis Results
|
|
; GCN-O3-NEXT: Memory Dependence Analysis
|
|
; GCN-O3-NEXT: Lazy Branch Probability Analysis
|
|
; GCN-O3-NEXT: Lazy Block Frequency Analysis
|
|
; GCN-O3-NEXT: Optimization Remark Emitter
|
|
; GCN-O3-NEXT: Global Value Numbering
|
|
; GCN-O3-NEXT: AMDGPU Attributor
|
|
; GCN-O3-NEXT: FunctionPass Manager
|
|
; GCN-O3-NEXT: Cycle Info Analysis
|
|
; GCN-O3-NEXT: CallGraph Construction
|
|
; GCN-O3-NEXT: Call Graph SCC Pass Manager
|
|
; GCN-O3-NEXT: AMDGPU Annotate Kernel Features
|
|
; GCN-O3-NEXT: FunctionPass Manager
|
|
; GCN-O3-NEXT: AMDGPU Lower Kernel Arguments
|
|
; GCN-O3-NEXT: Dominator Tree Construction
|
|
; GCN-O3-NEXT: Natural Loop Information
|
|
; GCN-O3-NEXT: CodeGen Prepare
|
|
; 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: Scalar Evolution Analysis
|
|
; GCN-O3-NEXT: GPU Load and Store Vectorizer
|
|
; 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: Post-Dominator Tree Construction
|
|
; GCN-O3-NEXT: Natural Loop Information
|
|
; GCN-O3-NEXT: Legacy Divergence Analysis
|
|
; GCN-O3-NEXT: AMDGPU IR late optimizations
|
|
; GCN-O3-NEXT: Basic Alias Analysis (stateless AA impl)
|
|
; GCN-O3-NEXT: Function Alias Analysis Results
|
|
; GCN-O3-NEXT: Code sinking
|
|
; GCN-O3-NEXT: Legacy Divergence Analysis
|
|
; GCN-O3-NEXT: Unify divergent function exit nodes
|
|
; GCN-O3-NEXT: Lazy Value Information Analysis
|
|
; GCN-O3-NEXT: Lower SwitchInst's to branches
|
|
; GCN-O3-NEXT: Dominator Tree Construction
|
|
; GCN-O3-NEXT: Natural Loop Information
|
|
; GCN-O3-NEXT: Convert irreducible control-flow into natural loops
|
|
; 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: Post-Dominator Tree Construction
|
|
; GCN-O3-NEXT: Natural Loop Information
|
|
; GCN-O3-NEXT: Legacy Divergence 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: SI annotate control flow
|
|
; GCN-O3-NEXT: Post-Dominator Tree Construction
|
|
; GCN-O3-NEXT: Legacy Divergence 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
|
|
; GCN-O3-NEXT: Safe Stack instrumentation pass
|
|
; GCN-O3-NEXT: Insert stack protectors
|
|
; GCN-O3-NEXT: Dominator Tree Construction
|
|
; GCN-O3-NEXT: Post-Dominator Tree Construction
|
|
; GCN-O3-NEXT: Natural Loop Information
|
|
; GCN-O3-NEXT: Legacy Divergence Analysis
|
|
; GCN-O3-NEXT: Basic Alias Analysis (stateless AA impl)
|
|
; GCN-O3-NEXT: Function Alias Analysis Results
|
|
; GCN-O3-NEXT: Branch Probability Analysis
|
|
; GCN-O3-NEXT: Lazy Branch Probability Analysis
|
|
; GCN-O3-NEXT: Lazy Block Frequency Analysis
|
|
; GCN-O3-NEXT: AMDGPU DAG->DAG Pattern Instruction Selection
|
|
; GCN-O3-NEXT: MachineDominator Tree Construction
|
|
; GCN-O3-NEXT: SI Fix SGPR copies
|
|
; GCN-O3-NEXT: MachinePostDominator Tree Construction
|
|
; GCN-O3-NEXT: SI Lower i1 Copies
|
|
; GCN-O3-NEXT: Finalize ISel and expand pseudo-instructions
|
|
; GCN-O3-NEXT: Lazy Machine Block Frequency Analysis
|
|
; GCN-O3-NEXT: Early Tail Duplication
|
|
; GCN-O3-NEXT: Optimize machine instruction PHIs
|
|
; GCN-O3-NEXT: Slot index numbering
|
|
; GCN-O3-NEXT: Merge disjoint stack slots
|
|
; GCN-O3-NEXT: Local Stack Slot Allocation
|
|
; GCN-O3-NEXT: Remove dead machine instructions
|
|
; GCN-O3-NEXT: MachineDominator Tree Construction
|
|
; GCN-O3-NEXT: Machine Natural Loop Construction
|
|
; GCN-O3-NEXT: Machine Block Frequency Analysis
|
|
; GCN-O3-NEXT: Early Machine Loop Invariant Code Motion
|
|
; GCN-O3-NEXT: MachineDominator Tree Construction
|
|
; GCN-O3-NEXT: Machine Block Frequency Analysis
|
|
; GCN-O3-NEXT: Machine Common Subexpression Elimination
|
|
; GCN-O3-NEXT: MachinePostDominator Tree Construction
|
|
; GCN-O3-NEXT: Machine Cycle Info Analysis
|
|
; GCN-O3-NEXT: Machine code sinking
|
|
; GCN-O3-NEXT: Peephole Optimizations
|
|
; GCN-O3-NEXT: Remove dead machine instructions
|
|
; GCN-O3-NEXT: SI Fold Operands
|
|
; GCN-O3-NEXT: GCN DPP Combine
|
|
; GCN-O3-NEXT: SI Load Store Optimizer
|
|
; GCN-O3-NEXT: SI Peephole SDWA
|
|
; GCN-O3-NEXT: Machine Block Frequency Analysis
|
|
; GCN-O3-NEXT: MachineDominator Tree Construction
|
|
; GCN-O3-NEXT: Early Machine Loop Invariant Code Motion
|
|
; GCN-O3-NEXT: MachineDominator Tree Construction
|
|
; GCN-O3-NEXT: Machine Block Frequency Analysis
|
|
; GCN-O3-NEXT: Machine Common Subexpression Elimination
|
|
; GCN-O3-NEXT: SI Fold Operands
|
|
; GCN-O3-NEXT: Remove dead machine instructions
|
|
; GCN-O3-NEXT: SI Shrink Instructions
|
|
; GCN-O3-NEXT: Register Usage Information Propagation
|
|
; GCN-O3-NEXT: Detect Dead Lanes
|
|
; GCN-O3-NEXT: Remove dead machine instructions
|
|
; GCN-O3-NEXT: Process Implicit Definitions
|
|
; GCN-O3-NEXT: Remove unreachable machine basic blocks
|
|
; GCN-O3-NEXT: Live Variable Analysis
|
|
; GCN-O3-NEXT: SI Optimize VGPR LiveRange
|
|
; GCN-O3-NEXT: Eliminate PHI nodes for register allocation
|
|
; GCN-O3-NEXT: SI Lower control flow pseudo instructions
|
|
; GCN-O3-NEXT: Two-Address instruction pass
|
|
; GCN-O3-NEXT: Slot index numbering
|
|
; GCN-O3-NEXT: Live Interval Analysis
|
|
; GCN-O3-NEXT: Machine Natural Loop Construction
|
|
; GCN-O3-NEXT: Simple Register Coalescing
|
|
; GCN-O3-NEXT: Rename Disconnected Subregister Components
|
|
; GCN-O3-NEXT: AMDGPU Pre-RA optimizations
|
|
; GCN-O3-NEXT: Machine Instruction Scheduler
|
|
; GCN-O3-NEXT: MachinePostDominator Tree Construction
|
|
; GCN-O3-NEXT: SI Whole Quad Mode
|
|
; GCN-O3-NEXT: Virtual Register Map
|
|
; GCN-O3-NEXT: Live Register Matrix
|
|
; GCN-O3-NEXT: SI Pre-allocate WWM Registers
|
|
; GCN-O3-NEXT: SI optimize exec mask operations pre-RA
|
|
; GCN-O3-NEXT: SI Form memory clauses
|
|
; GCN-O3-NEXT: Machine Natural Loop Construction
|
|
; GCN-O3-NEXT: Machine Block Frequency Analysis
|
|
; GCN-O3-NEXT: Debug Variable Analysis
|
|
; GCN-O3-NEXT: Live Stack Slot Analysis
|
|
; GCN-O3-NEXT: Virtual Register Map
|
|
; GCN-O3-NEXT: Live Register Matrix
|
|
; GCN-O3-NEXT: Bundle Machine CFG Edges
|
|
; GCN-O3-NEXT: Spill Code Placement Analysis
|
|
; GCN-O3-NEXT: Lazy Machine Block Frequency Analysis
|
|
; GCN-O3-NEXT: Machine Optimization Remark Emitter
|
|
; GCN-O3-NEXT: Greedy Register Allocator
|
|
; GCN-O3-NEXT: Virtual Register Rewriter
|
|
; GCN-O3-NEXT: SI lower SGPR spill instructions
|
|
; GCN-O3-NEXT: Virtual Register Map
|
|
; GCN-O3-NEXT: Live Register Matrix
|
|
; GCN-O3-NEXT: Greedy Register Allocator
|
|
; GCN-O3-NEXT: GCN NSA Reassign
|
|
; GCN-O3-NEXT: Virtual Register Rewriter
|
|
; GCN-O3-NEXT: Stack Slot Coloring
|
|
; GCN-O3-NEXT: Machine Copy Propagation Pass
|
|
; GCN-O3-NEXT: Machine Loop Invariant Code Motion
|
|
; GCN-O3-NEXT: SI Fix VGPR copies
|
|
; GCN-O3-NEXT: SI optimize exec mask operations
|
|
; GCN-O3-NEXT: Remove Redundant DEBUG_VALUE analysis
|
|
; GCN-O3-NEXT: Fixup Statepoint Caller Saved
|
|
; GCN-O3-NEXT: PostRA Machine Sink
|
|
; GCN-O3-NEXT: MachineDominator Tree Construction
|
|
; GCN-O3-NEXT: Machine Natural Loop Construction
|
|
; GCN-O3-NEXT: Machine Block Frequency Analysis
|
|
; GCN-O3-NEXT: MachinePostDominator Tree Construction
|
|
; GCN-O3-NEXT: Lazy Machine Block Frequency Analysis
|
|
; GCN-O3-NEXT: Machine Optimization Remark Emitter
|
|
; GCN-O3-NEXT: Shrink Wrapping analysis
|
|
; GCN-O3-NEXT: Prologue/Epilogue Insertion & Frame Finalization
|
|
; GCN-O3-NEXT: Machine Late Instructions Cleanup Pass
|
|
; GCN-O3-NEXT: Control Flow Optimizer
|
|
; GCN-O3-NEXT: Lazy Machine Block Frequency Analysis
|
|
; GCN-O3-NEXT: Tail Duplication
|
|
; GCN-O3-NEXT: Machine Copy Propagation Pass
|
|
; GCN-O3-NEXT: Post-RA pseudo instruction expansion pass
|
|
; GCN-O3-NEXT: SI Shrink Instructions
|
|
; GCN-O3-NEXT: SI post-RA bundler
|
|
; GCN-O3-NEXT: MachineDominator Tree Construction
|
|
; GCN-O3-NEXT: Machine Natural Loop Construction
|
|
; GCN-O3-NEXT: PostRA Machine Instruction Scheduler
|
|
; GCN-O3-NEXT: Machine Block Frequency Analysis
|
|
; GCN-O3-NEXT: MachinePostDominator Tree Construction
|
|
; GCN-O3-NEXT: Branch Probability Basic Block Placement
|
|
; GCN-O3-NEXT: Insert fentry calls
|
|
; GCN-O3-NEXT: Insert XRay ops
|
|
; GCN-O3-NEXT: GCN Create VOPD Instructions
|
|
; GCN-O3-NEXT: SI Memory Legalizer
|
|
; GCN-O3-NEXT: MachineDominator Tree Construction
|
|
; GCN-O3-NEXT: Machine Natural Loop Construction
|
|
; GCN-O3-NEXT: MachinePostDominator Tree Construction
|
|
; GCN-O3-NEXT: SI insert wait instructions
|
|
; GCN-O3-NEXT: Insert required mode register values
|
|
; GCN-O3-NEXT: SI Insert Hard Clauses
|
|
; GCN-O3-NEXT: SI Final Branch Preparation
|
|
; GCN-O3-NEXT: SI peephole optimizations
|
|
; GCN-O3-NEXT: Post RA hazard recognizer
|
|
; GCN-O3-NEXT: Release VGPRs
|
|
; GCN-O3-NEXT: AMDGPU Insert Delay ALU
|
|
; GCN-O3-NEXT: Branch relaxation pass
|
|
; GCN-O3-NEXT: Register Usage Information Collector Pass
|
|
; GCN-O3-NEXT: Live DEBUG_VALUE analysis
|
|
; GCN-O3-NEXT: Machine Sanitizer Binary Metadata
|
|
; GCN-O3-NEXT: Lazy Machine Block Frequency Analysis
|
|
; GCN-O3-NEXT: Machine Optimization Remark Emitter
|
|
; GCN-O3-NEXT: Stack Frame Layout Analysis
|
|
; GCN-O3-NEXT: Function register usage analysis
|
|
; GCN-O3-NEXT: FunctionPass Manager
|
|
; GCN-O3-NEXT: Lazy Machine Block Frequency Analysis
|
|
; GCN-O3-NEXT: Machine Optimization Remark Emitter
|
|
; GCN-O3-NEXT: AMDGPU Assembly Printer
|
|
; GCN-O3-NEXT: Free MachineFunction
|
|
; GCN-O3-NEXT:Pass Arguments: -domtree
|
|
; GCN-O3-NEXT: FunctionPass Manager
|
|
; GCN-O3-NEXT: Dominator Tree Construction
|
|
|
|
define void @empty() {
|
|
ret void
|
|
}
|