And dependent commits. Details in D150388. This reverts commit 825b7f0ca5f2211ec3c93139f98d1e24048c225c. This reverts commit 7a98f084c4d121244ef7286bc6503b6a181d446e. This reverts commit b4a62b1fa546312d882fa12dfdcd015177d66826. This reverts commit b7836d856206ec39509d42529f958c920368166b. No conflicts in the code, few tests had conflicts in autogenerated CHECKs: llvm/test/CodeGen/Thumb2/mve-float32regloops.ll llvm/test/CodeGen/AMDGPU/fix-frame-reg-in-custom-csr-spills.ll Reviewed By: alexfh Differential Revision: https://reviews.llvm.org/D156381
108 lines
4.3 KiB
LLVM
108 lines
4.3 KiB
LLVM
; REQUIRES: asserts
|
|
|
|
; RUN: llc -verify-machineinstrs=0 -mtriple=amdgcn-amd-amdhsa -debug-pass=Structure -o /dev/null %s 2>&1 | FileCheck -check-prefix=DEFAULT %s
|
|
; RUN: llc -verify-machineinstrs=0 -sgpr-regalloc=greedy -vgpr-regalloc=greedy -mtriple=amdgcn-amd-amdhsa -debug-pass=Structure -o /dev/null %s 2>&1 | FileCheck -check-prefix=DEFAULT %s
|
|
|
|
; RUN: llc -verify-machineinstrs=0 -O0 -mtriple=amdgcn-amd-amdhsa -debug-pass=Structure -o /dev/null %s 2>&1 | FileCheck -check-prefix=O0 %s
|
|
|
|
; RUN: llc -verify-machineinstrs=0 -vgpr-regalloc=basic -mtriple=amdgcn-amd-amdhsa -debug-pass=Structure -o /dev/null %s 2>&1 | FileCheck -check-prefix=DEFAULT-BASIC %s
|
|
; RUN: llc -verify-machineinstrs=0 -sgpr-regalloc=basic -mtriple=amdgcn-amd-amdhsa -debug-pass=Structure -o /dev/null %s 2>&1 | FileCheck -check-prefix=BASIC-DEFAULT %s
|
|
; RUN: llc -verify-machineinstrs=0 -sgpr-regalloc=basic -vgpr-regalloc=basic -mtriple=amdgcn-amd-amdhsa -debug-pass=Structure -o /dev/null %s 2>&1 | FileCheck -check-prefix=BASIC-BASIC %s
|
|
|
|
; RUN: not --crash llc -verify-machineinstrs=0 -regalloc=basic -mtriple=amdgcn-amd-amdhsa -debug-pass=Structure -o /dev/null %s 2>&1 | FileCheck -check-prefix=REGALLOC %s
|
|
; RUN: not --crash llc -verify-machineinstrs=0 -regalloc=fast -O0 -mtriple=amdgcn-amd-amdhsa -debug-pass=Structure -o /dev/null %s 2>&1 | FileCheck -check-prefix=REGALLOC %s
|
|
|
|
|
|
; REGALLOC: -regalloc not supported with amdgcn. Use -sgpr-regalloc and -vgpr-regalloc
|
|
|
|
; DEFAULT: Greedy Register Allocator
|
|
; DEFAULT-NEXT: Virtual Register Rewriter
|
|
; DEFAULT-NEXT: SI lower SGPR spill instructions
|
|
; DEFAULT-NEXT: Virtual Register Map
|
|
; DEFAULT-NEXT: Live Register Matrix
|
|
; DEFAULT-NEXT: Greedy Register Allocator
|
|
; DEFAULT-NEXT: GCN NSA Reassign
|
|
; DEFAULT-NEXT: Virtual Register Rewriter
|
|
; DEFAULT-NEXT: Stack Slot Coloring
|
|
|
|
; O0: Fast Register Allocator
|
|
; O0-NEXT: SI lower SGPR spill instructions
|
|
; O0-NEXT: Fast Register Allocator
|
|
; O0-NEXT: SI Fix VGPR copies
|
|
|
|
|
|
|
|
|
|
; BASIC-DEFAULT: Debug Variable Analysis
|
|
; BASIC-DEFAULT-NEXT: Live Stack Slot Analysis
|
|
; BASIC-DEFAULT-NEXT: Machine Natural Loop Construction
|
|
; BASIC-DEFAULT-NEXT: Machine Block Frequency Analysis
|
|
; BASIC-DEFAULT-NEXT: Virtual Register Map
|
|
; BASIC-DEFAULT-NEXT: Live Register Matrix
|
|
; BASIC-DEFAULT-NEXT: Basic Register Allocator
|
|
; BASIC-DEFAULT-NEXT: Virtual Register Rewriter
|
|
; BASIC-DEFAULT-NEXT: SI lower SGPR spill instructions
|
|
; BASIC-DEFAULT-NEXT: Virtual Register Map
|
|
; BASIC-DEFAULT-NEXT: Live Register Matrix
|
|
; BASIC-DEFAULT-NEXT: Bundle Machine CFG Edges
|
|
; BASIC-DEFAULT-NEXT: Spill Code Placement Analysis
|
|
; BASIC-DEFAULT-NEXT: Lazy Machine Block Frequency Analysis
|
|
; BASIC-DEFAULT-NEXT: Machine Optimization Remark Emitter
|
|
; BASIC-DEFAULT-NEXT: Greedy Register Allocator
|
|
; BASIC-DEFAULT-NEXT: GCN NSA Reassign
|
|
; BASIC-DEFAULT-NEXT: Virtual Register Rewriter
|
|
; BASIC-DEFAULT-NEXT: Stack Slot Coloring
|
|
|
|
|
|
|
|
; DEFAULT-BASIC: Greedy Register Allocator
|
|
; DEFAULT-BASIC-NEXT: Virtual Register Rewriter
|
|
; DEFAULT-BASIC-NEXT: SI lower SGPR spill instructions
|
|
; DEFAULT-BASIC-NEXT: Virtual Register Map
|
|
; DEFAULT-BASIC-NEXT: Live Register Matrix
|
|
; DEFAULT-BASIC-NEXT: Basic Register Allocator
|
|
; DEFAULT-BASIC-NEXT: GCN NSA Reassign
|
|
; DEFAULT-BASIC-NEXT: Virtual Register Rewriter
|
|
; DEFAULT-BASIC-NEXT: Stack Slot Coloring
|
|
|
|
|
|
|
|
; BASIC-BASIC: Debug Variable Analysis
|
|
; BASIC-BASIC-NEXT: Live Stack Slot Analysis
|
|
; BASIC-BASIC-NEXT: Machine Natural Loop Construction
|
|
; BASIC-BASIC-NEXT: Machine Block Frequency Analysis
|
|
; BASIC-BASIC-NEXT: Virtual Register Map
|
|
; BASIC-BASIC-NEXT: Live Register Matrix
|
|
; BASIC-BASIC-NEXT: Basic Register Allocator
|
|
; BASIC-BASIC-NEXT: Virtual Register Rewriter
|
|
; BASIC-BASIC-NEXT: SI lower SGPR spill instructions
|
|
; BASIC-BASIC-NEXT: Virtual Register Map
|
|
; BASIC-BASIC-NEXT: Live Register Matrix
|
|
; BASIC-BASIC-NEXT: Basic Register Allocator
|
|
; BASIC-BASIC-NEXT: GCN NSA Reassign
|
|
; BASIC-BASIC-NEXT: Virtual Register Rewriter
|
|
; BASIC-BASIC-NEXT: Stack Slot Coloring
|
|
|
|
|
|
declare void @bar()
|
|
|
|
; Something with some CSR SGPR spills
|
|
define void @foo() {
|
|
call void asm sideeffect "; clobber", "~{s33}"()
|
|
call void @bar()
|
|
ret void
|
|
}
|
|
|
|
; Block live out spills with fast regalloc
|
|
define amdgpu_kernel void @control_flow(i1 %cond) {
|
|
%s33 = call i32 asm sideeffect "; clobber", "={s33}"()
|
|
br i1 %cond, label %bb0, label %bb1
|
|
|
|
bb0:
|
|
call void asm sideeffect "; use %0", "s"(i32 %s33)
|
|
br label %bb1
|
|
|
|
bb1:
|
|
ret void
|
|
}
|