diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2018-03-10 01:47:22 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2018-03-10 01:47:22 +0000 |
commit | 5034f5fddab316b12887b39b129ebbca999500e2 (patch) | |
tree | 584249c06b7532f2fe96b2bf0bcc02d33634142d /test/CodeGenOpenCL | |
parent | 8fdc88794b44e70bdb93c6cf04baf3c1e3251d8b (diff) |
Revert r326946. It caused stack overflows by significantly increasing the size of a CallArgList.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@327195 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGenOpenCL')
-rw-r--r-- | test/CodeGenOpenCL/addr-space-struct-arg.cl | 39 | ||||
-rw-r--r-- | test/CodeGenOpenCL/byval.cl | 1 |
2 files changed, 3 insertions, 37 deletions
diff --git a/test/CodeGenOpenCL/addr-space-struct-arg.cl b/test/CodeGenOpenCL/addr-space-struct-arg.cl index f8d7073f92..01ae1b32ed 100644 --- a/test/CodeGenOpenCL/addr-space-struct-arg.cl +++ b/test/CodeGenOpenCL/addr-space-struct-arg.cl @@ -1,6 +1,5 @@ // RUN: %clang_cc1 %s -emit-llvm -o - -O0 -finclude-default-header -ffake-address-space-map -triple i686-pc-darwin | FileCheck -enable-var-scope -check-prefixes=COM,X86 %s -// RUN: %clang_cc1 %s -emit-llvm -o - -O0 -finclude-default-header -triple amdgcn | FileCheck -enable-var-scope -check-prefixes=COM,AMDGCN %s -// RUN: %clang_cc1 %s -emit-llvm -o - -cl-std=CL2.0 -O0 -finclude-default-header -triple amdgcn | FileCheck -enable-var-scope -check-prefixes=COM,AMDGCN,AMDGCN20 %s +// RUN: %clang_cc1 %s -emit-llvm -o - -O0 -finclude-default-header -triple amdgcn-amdhsa-amd | FileCheck -enable-var-scope -check-prefixes=COM,AMDGCN %s typedef struct { int cells[9]; @@ -36,9 +35,6 @@ struct LargeStructTwoMember { int2 y[20]; }; -#if __OPENCL_C_VERSION__ >= 200 -struct LargeStructOneMember g_s; -#endif // X86-LABEL: define void @foo(%struct.Mat4X4* noalias sret %agg.result, %struct.Mat3X3* byval align 4 %in) // AMDGCN-LABEL: define %struct.Mat4X4 @foo([9 x i32] %in.coerce) @@ -84,42 +80,10 @@ void FuncOneMember(struct StructOneMember u) { } // AMDGCN-LABEL: define void @FuncOneLargeMember(%struct.LargeStructOneMember addrspace(5)* byval align 8 %u) -// AMDGCN-NOT: addrspacecast -// AMDGCN: store <2 x i32> %{{.*}}, <2 x i32> addrspace(5)* void FuncOneLargeMember(struct LargeStructOneMember u) { u.x[0] = (int2)(0, 0); } -// AMDGCN20-LABEL: define void @test_indirect_arg_globl() -// AMDGCN20: %[[byval_temp:.*]] = alloca %struct.LargeStructOneMember, align 8, addrspace(5) -// AMDGCN20: %[[r0:.*]] = bitcast %struct.LargeStructOneMember addrspace(5)* %[[byval_temp]] to i8 addrspace(5)* -// AMDGCN20: call void @llvm.memcpy.p5i8.p1i8.i64(i8 addrspace(5)* align 8 %[[r0]], i8 addrspace(1)* align 8 bitcast (%struct.LargeStructOneMember addrspace(1)* @g_s to i8 addrspace(1)*), i64 800, i1 false) -// AMDGCN20: call void @FuncOneLargeMember(%struct.LargeStructOneMember addrspace(5)* byval align 8 %[[byval_temp]]) -#if __OPENCL_C_VERSION__ >= 200 -void test_indirect_arg_globl(void) { - FuncOneLargeMember(g_s); -} -#endif - -// AMDGCN-LABEL: define amdgpu_kernel void @test_indirect_arg_local() -// AMDGCN: %[[byval_temp:.*]] = alloca %struct.LargeStructOneMember, align 8, addrspace(5) -// AMDGCN: %[[r0:.*]] = bitcast %struct.LargeStructOneMember addrspace(5)* %[[byval_temp]] to i8 addrspace(5)* -// AMDGCN: call void @llvm.memcpy.p5i8.p3i8.i64(i8 addrspace(5)* align 8 %[[r0]], i8 addrspace(3)* align 8 bitcast (%struct.LargeStructOneMember addrspace(3)* @test_indirect_arg_local.l_s to i8 addrspace(3)*), i64 800, i1 false) -// AMDGCN: call void @FuncOneLargeMember(%struct.LargeStructOneMember addrspace(5)* byval align 8 %[[byval_temp]]) -kernel void test_indirect_arg_local(void) { - local struct LargeStructOneMember l_s; - FuncOneLargeMember(l_s); -} - -// AMDGCN-LABEL: define void @test_indirect_arg_private() -// AMDGCN: %[[p_s:.*]] = alloca %struct.LargeStructOneMember, align 8, addrspace(5) -// AMDGCN-NOT: @llvm.memcpy -// AMDGCN-NEXT: call void @FuncOneLargeMember(%struct.LargeStructOneMember addrspace(5)* byval align 8 %[[p_s]]) -void test_indirect_arg_private(void) { - struct LargeStructOneMember p_s; - FuncOneLargeMember(p_s); -} - // AMDGCN-LABEL: define amdgpu_kernel void @KernelOneMember // AMDGCN-SAME: (<2 x i32> %[[u_coerce:.*]]) // AMDGCN: %[[u:.*]] = alloca %struct.StructOneMember, align 8, addrspace(5) @@ -148,6 +112,7 @@ void FuncLargeTwoMember(struct LargeStructTwoMember u) { u.y[0] = (int2)(0, 0); } + // AMDGCN-LABEL: define amdgpu_kernel void @KernelTwoMember // AMDGCN-SAME: (%struct.StructTwoMember %[[u_coerce:.*]]) // AMDGCN: %[[u:.*]] = alloca %struct.StructTwoMember, align 8, addrspace(5) diff --git a/test/CodeGenOpenCL/byval.cl b/test/CodeGenOpenCL/byval.cl index 05c72c514c..592d96ffa6 100644 --- a/test/CodeGenOpenCL/byval.cl +++ b/test/CodeGenOpenCL/byval.cl @@ -1,4 +1,5 @@ // RUN: %clang_cc1 -emit-llvm -o - -triple amdgcn %s | FileCheck %s +// RUN: %clang_cc1 -emit-llvm -o - -triple amdgcn---opencl %s | FileCheck %s struct A { int x[100]; |