[polly] r276960 - GPGPU: Generate kernel parameter allocation with right size

Tobias Grosser via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 27 23:47:50 PDT 2016


Author: grosser
Date: Thu Jul 28 01:47:50 2016
New Revision: 276960

URL: http://llvm.org/viewvc/llvm-project?rev=276960&view=rev
Log:
GPGPU: Generate kernel parameter allocation with right size

Before this change we miscounted the number of function parameters.

Modified:
    polly/trunk/lib/CodeGen/PPCGCodeGeneration.cpp
    polly/trunk/test/GPGPU/double-parallel-loop.ll

Modified: polly/trunk/lib/CodeGen/PPCGCodeGeneration.cpp
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/CodeGen/PPCGCodeGeneration.cpp?rev=276960&r1=276959&r2=276960&view=diff
==============================================================================
--- polly/trunk/lib/CodeGen/PPCGCodeGeneration.cpp (original)
+++ polly/trunk/lib/CodeGen/PPCGCodeGeneration.cpp Thu Jul 28 01:47:50 2016
@@ -880,7 +880,8 @@ GPUNodeBuilder::getBlockSizes(ppcg_kerne
 
 Value *GPUNodeBuilder::createLaunchParameters(ppcg_kernel *Kernel,
                                               Function *F) {
-  Type *ArrayTy = ArrayType::get(Builder.getInt8PtrTy(), F->getNumOperands());
+  Type *ArrayTy = ArrayType::get(Builder.getInt8PtrTy(),
+                                 std::distance(F->arg_begin(), F->arg_end()));
 
   BasicBlock *EntryBlock =
       &Builder.GetInsertBlock()->getParent()->getEntryBlock();

Modified: polly/trunk/test/GPGPU/double-parallel-loop.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/GPGPU/double-parallel-loop.ll?rev=276960&r1=276959&r2=276960&view=diff
==============================================================================
--- polly/trunk/test/GPGPU/double-parallel-loop.ll (original)
+++ polly/trunk/test/GPGPU/double-parallel-loop.ll Thu Jul 28 01:47:50 2016
@@ -98,7 +98,7 @@
 ; IR-NEXT:    call void @polly_copyFromHostToDevice(i8* [[HostPtr]], i8* %p_dev_array_MemRef_A, i64 4194304)
 ; IR-NEXT:    [[DevPtr:%.*]]  = call i8* @polly_getDevicePtr(i8* %p_dev_array_MemRef_A)
 ; IR-NEXT:    store i8* [[DevPtr]], i8** %polly_launch_0_param_0
-; IR-NEXT:    [[ParamSlot:%.*]] = getelementptr [0 x i8*], [0 x i8*]* %polly_launch_0_params, i64 0, i64 0
+; IR-NEXT:    [[ParamSlot:%.*]] = getelementptr [1 x i8*], [1 x i8*]* %polly_launch_0_params, i64 0, i64 0
 ; IR-NEXT:    [[ParamTyped:%.*]] = bitcast i8** %polly_launch_0_param_0 to i8*
 ; IR-NEXT:    store i8* [[ParamTyped]], i8** [[ParamSlot]]
 ; IR-NEXT:    call i8* @polly_getKernel




More information about the llvm-commits mailing list