summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2019-02-28 00:40:32 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2019-02-28 00:40:32 +0000
commit5d567dc137d20a9d9654076fbdab8ceddb6748dc (patch)
tree534574f474432e9994f8a43feb77446ffdbed183 /llvm/test/CodeGen
parent2fc498a652dc66d99b6581e295e4f020142e3304 (diff)
downloadbcm5719-llvm-5d567dc137d20a9d9654076fbdab8ceddb6748dc.tar.gz
bcm5719-llvm-5d567dc137d20a9d9654076fbdab8ceddb6748dc.zip
AMDGPU: Enable function calls by default
Fixes some crashes on illegal call situations which are unfortunately still valid IR. llvm-svn: 355051
Diffstat (limited to 'llvm/test/CodeGen')
-rw-r--r--llvm/test/CodeGen/AMDGPU/amdgpu-function-calls-option.ll27
-rw-r--r--llvm/test/CodeGen/AMDGPU/amdgpu-inline.ll4
-rw-r--r--llvm/test/CodeGen/AMDGPU/call-graph-register-usage.ll4
-rw-r--r--llvm/test/CodeGen/AMDGPU/force-alwaysinline-lds-global-address.ll4
-rw-r--r--llvm/test/CodeGen/AMDGPU/inline-calls.ll11
5 files changed, 39 insertions, 11 deletions
diff --git a/llvm/test/CodeGen/AMDGPU/amdgpu-function-calls-option.ll b/llvm/test/CodeGen/AMDGPU/amdgpu-function-calls-option.ll
new file mode 100644
index 00000000000..df1b401e3ac
--- /dev/null
+++ b/llvm/test/CodeGen/AMDGPU/amdgpu-function-calls-option.ll
@@ -0,0 +1,27 @@
+; RUN: llc -mtriple=amdgcn-amd-amdhsa -amdgpu-function-calls < %s | FileCheck -check-prefix=CALLS %s
+; RUN: llc -mtriple=amdgcn-amd-amdhsa < %s | FileCheck -check-prefix=CALLS %s
+; RUN: llc -mtriple=amdgcn-amd-amdhsa -amdgpu-function-calls=0 < %s | FileCheck -check-prefix=NOCALLS %s
+; RUN: llc -mtriple=r600-mesa-mesa3d < %s | FileCheck -check-prefix=NOCALLS %s
+; RUN: llc -mtriple=r600-mesa-mesa3d -amdgpu-function-calls=0 < %s | FileCheck -check-prefix=NOCALLS %s
+
+; CALLS-LABEL: callee:
+; CALLS: ;;#ASMSTART
+; CALLS: ;;#ASMEND
+
+; NOCALLS-NOT: callee
+; R600-NOT: callee
+define internal void @callee() {
+ call void asm sideeffect "", ""()
+ ret void
+}
+
+; CALLS-LABEL: kernel:
+; CALLS: s_swappc_b64
+
+; NOCALLS-LABEL: kernel:
+; NOCALLS: ;;#ASMSTART
+; NOCALLS: ;;#ASMEND
+define amdgpu_kernel void @kernel() {
+ call void @callee()
+ ret void
+}
diff --git a/llvm/test/CodeGen/AMDGPU/amdgpu-inline.ll b/llvm/test/CodeGen/AMDGPU/amdgpu-inline.ll
index 9d81cd54f83..75c16d006ae 100644
--- a/llvm/test/CodeGen/AMDGPU/amdgpu-inline.ll
+++ b/llvm/test/CodeGen/AMDGPU/amdgpu-inline.ll
@@ -1,5 +1,5 @@
-; RUN: opt -mtriple=amdgcn--amdhsa -data-layout=A5 -O3 -S -amdgpu-function-calls -inline-threshold=1 < %s | FileCheck -check-prefix=GCN -check-prefix=GCN-INL1 %s
-; RUN: opt -mtriple=amdgcn--amdhsa -data-layout=A5 -O3 -S -amdgpu-function-calls < %s | FileCheck -check-prefix=GCN -check-prefix=GCN-INLDEF %s
+; RUN: opt -mtriple=amdgcn--amdhsa -data-layout=A5 -O3 -S -inline-threshold=1 < %s | FileCheck -check-prefix=GCN -check-prefix=GCN-INL1 %s
+; RUN: opt -mtriple=amdgcn--amdhsa -data-layout=A5 -O3 -S < %s | FileCheck -check-prefix=GCN -check-prefix=GCN-INLDEF %s
define coldcc float @foo(float %x, float %y) {
entry:
diff --git a/llvm/test/CodeGen/AMDGPU/call-graph-register-usage.ll b/llvm/test/CodeGen/AMDGPU/call-graph-register-usage.ll
index c4c30a66755..384d9dd4576 100644
--- a/llvm/test/CodeGen/AMDGPU/call-graph-register-usage.ll
+++ b/llvm/test/CodeGen/AMDGPU/call-graph-register-usage.ll
@@ -84,7 +84,7 @@ define void @indirect_use_10_vgpr() #0 {
; GCN-LABEL: {{^}}indirect_2_level_use_10_vgpr:
; GCN: is_dynamic_callstack = 0
-; GCN: ; NumVgprs: 10
+; GCN: ; NumVgprs: 33
define amdgpu_kernel void @indirect_2_level_use_10_vgpr() #0 {
call void @indirect_use_10_vgpr()
ret void
@@ -225,6 +225,6 @@ define amdgpu_kernel void @usage_direct_recursion(i32 %n) #0 {
}
-attributes #0 = { nounwind norecurse }
+attributes #0 = { nounwind noinline norecurse }
attributes #1 = { nounwind noinline norecurse }
attributes #2 = { nounwind noinline }
diff --git a/llvm/test/CodeGen/AMDGPU/force-alwaysinline-lds-global-address.ll b/llvm/test/CodeGen/AMDGPU/force-alwaysinline-lds-global-address.ll
index 84e88067580..f525ca5f803 100644
--- a/llvm/test/CodeGen/AMDGPU/force-alwaysinline-lds-global-address.ll
+++ b/llvm/test/CodeGen/AMDGPU/force-alwaysinline-lds-global-address.ll
@@ -1,5 +1,5 @@
-; RUN: opt -S -mtriple=amdgcn-amd-amdhsa -amdgpu-function-calls -amdgpu-always-inline %s | FileCheck -check-prefixes=CALLS-ENABLED,ALL %s
-; RUN: opt -S -mtriple=amdgcn-amd-amdhsa -amdgpu-function-calls -amdgpu-stress-function-calls -amdgpu-always-inline %s | FileCheck -check-prefixes=STRESS-CALLS,ALL %s
+; RUN: opt -S -mtriple=amdgcn-amd-amdhsa -amdgpu-always-inline %s | FileCheck -check-prefixes=CALLS-ENABLED,ALL %s
+; RUN: opt -S -mtriple=amdgcn-amd-amdhsa -amdgpu-stress-function-calls -amdgpu-always-inline %s | FileCheck -check-prefixes=STRESS-CALLS,ALL %s
target datalayout = "e-p:64:64-p1:64:64-p2:32:32-p3:32:32-p4:64:64-p5:32:32-p6:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64-S32-A5"
diff --git a/llvm/test/CodeGen/AMDGPU/inline-calls.ll b/llvm/test/CodeGen/AMDGPU/inline-calls.ll
index 924cd1f11c5..233485a2020 100644
--- a/llvm/test/CodeGen/AMDGPU/inline-calls.ll
+++ b/llvm/test/CodeGen/AMDGPU/inline-calls.ll
@@ -2,15 +2,15 @@
; RUN: llc -march=amdgcn -mcpu=tonga -verify-machineinstrs < %s | FileCheck %s
; RUN: llc -march=r600 -mcpu=redwood -verify-machineinstrs < %s | FileCheck %s
-; CHECK-NOT: {{^}}func:
+; ALL-NOT: {{^}}func:
define internal i32 @func(i32 %a) {
entry:
%tmp0 = add i32 %a, 1
ret i32 %tmp0
}
-; CHECK: {{^}}kernel:
-; CHECK-NOT: call
+; ALL: {{^}}kernel:
+; GCN-NOT: s_swappc_b64
define amdgpu_kernel void @kernel(i32 addrspace(1)* %out) {
entry:
%tmp0 = call i32 @func(i32 1)
@@ -19,10 +19,11 @@ entry:
}
; CHECK-NOT: func_alias
+; ALL-NOT: func_alias
@func_alias = alias i32 (i32), i32 (i32)* @func
-; CHECK: {{^}}kernel3:
-; CHECK-NOT: call
+; ALL: {{^}}kernel3:
+; GCN-NOT: s_swappc_b64
define amdgpu_kernel void @kernel3(i32 addrspace(1)* %out) {
entry:
%tmp0 = call i32 @func_alias(i32 1)
OpenPOWER on IntegriCloud