From: Yaxun Liu Date: Thu, 19 Oct 2017 15:56:13 +0000 (+0000) Subject: [AMDGPU] Fix bug in enqueued block codegen due to an extra line X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a16acc3f8de0bdf32160291905cad9907e4f1431;p=clang [AMDGPU] Fix bug in enqueued block codegen due to an extra line git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@316165 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/TargetInfo.cpp b/lib/CodeGen/TargetInfo.cpp index 99079f9b27..2651d87389 100644 --- a/lib/CodeGen/TargetInfo.cpp +++ b/lib/CodeGen/TargetInfo.cpp @@ -8985,7 +8985,6 @@ llvm::Function *AMDGPUTargetCodeGenInfo::createEnqueuedBlockKernel( ArgNames.push_back(llvm::MDString::get(C, "block_literal")); for (unsigned I = 1, E = InvokeFT->getNumParams(); I < E; ++I) { ArgTys.push_back(InvokeFT->getParamType(I)); - ArgTys.push_back(BlockTy); ArgTypeNames.push_back(llvm::MDString::get(C, "void*")); AddressQuals.push_back(llvm::ConstantAsMetadata::get(Builder.getInt32(3))); AccessQuals.push_back(llvm::MDString::get(C, "none")); diff --git a/test/CodeGenOpenCL/amdgpu-enqueue-kernel.cl b/test/CodeGenOpenCL/amdgpu-enqueue-kernel.cl index 92f2306f26..b2db4d7827 100644 --- a/test/CodeGenOpenCL/amdgpu-enqueue-kernel.cl +++ b/test/CodeGenOpenCL/amdgpu-enqueue-kernel.cl @@ -18,6 +18,12 @@ kernel void test(global char *a, char b, global long *c, long d) { a[0] = b; c[0] = d; }); + enqueue_kernel(default_queue, flags, ndrange, + ^(local void *lp) { + a[0] = b; + c[0] = d; + ((local int*)lp)[0] = 1; + }, 100); } // CHECK-LABEL: define internal amdgpu_kernel void @__test_block_invoke_kernel(<{ i32, i32, i8 addrspace(4)*, i8 addrspace(1)*, i8 }>) @@ -33,4 +39,7 @@ kernel void test(global char *a, char b, global long *c, long d) { // CHECK-LABEL: define internal amdgpu_kernel void @__test_block_invoke_2_kernel(<{ i32, i32, i8 addrspace(4)*, i8 addrspace(1)*, i64 addrspace(1)*, i64, i8 }>) // CHECK-SAME: #[[ATTR]] !kernel_arg_addr_space !{{.*}} !kernel_arg_access_qual !{{.*}} !kernel_arg_type !{{.*}} !kernel_arg_base_type !{{.*}} !kernel_arg_type_qual !{{.*}} +// CHECK-LABEL: define internal amdgpu_kernel void @__test_block_invoke_3_kernel(<{ i32, i32, i8 addrspace(4)*, i8 addrspace(1)*, i64 addrspace(1)*, i64, i8 }>, i8 addrspace(3)*) +// CHECK-SAME: #[[ATTR]] !kernel_arg_addr_space !{{.*}} !kernel_arg_access_qual !{{.*}} !kernel_arg_type !{{.*}} !kernel_arg_base_type !{{.*}} !kernel_arg_type_qual !{{.*}} + // CHECK: attributes #[[ATTR]] = { nounwind "enqueued-block" }