]> granicus.if.org Git - clang/commitdiff
[AMDGPU] Fix bug in enqueued block codegen due to an extra line
authorYaxun Liu <Yaxun.Liu@amd.com>
Thu, 19 Oct 2017 15:56:13 +0000 (15:56 +0000)
committerYaxun Liu <Yaxun.Liu@amd.com>
Thu, 19 Oct 2017 15:56:13 +0000 (15:56 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@316165 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/TargetInfo.cpp
test/CodeGenOpenCL/amdgpu-enqueue-kernel.cl

index 99079f9b27f23a47bb10c3d1de28c80cfc5f187f..2651d87389ef6550ad600aa882fda4db8308485b 100644 (file)
@@ -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"));
index 92f2306f26d8514774776f5938f14be03f5f90df..b2db4d7827192448e9c75e9d604e249d6354e5de 100644 (file)
@@ -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" }