diff --git a/llvm/projects/visc-rt/visc-rt.cpp b/llvm/projects/visc-rt/visc-rt.cpp index 80bc859e8049b557a2f2f1553b5fda5bc9b1de9e..2d5e07bb2c3b1a5401ebe684a75391c9c03959dd 100644 --- a/llvm/projects/visc-rt/visc-rt.cpp +++ b/llvm/projects/visc-rt/visc-rt.cpp @@ -2,6 +2,7 @@ #include <cstdlib> #include <cstdio> #include <string> +#include <assert.h> #include <CL/cl.h> //#include "visc-rt.h" @@ -95,6 +96,8 @@ void llvm_visc_ptx_argument_scalar(void* graphID, void* input, int arg_index, si extern "C" void* llvm_visc_ptx_argument_ptr(void* graphID, void* input, int arg_index, size_t size, bool isInput, bool isOutput) { printf("Set Pointer Input. Argument Index = %d, Ptr = %p, Size = %lu\n", arg_index, input, size); + // Size should be non-zero + assert(size != 0); printf("\tInput: %d, Output: %d\n", isInput, isOutput); DFNodeContext_PTX* Context = (DFNodeContext_PTX*) graphID; cl_int errcode; @@ -104,10 +107,6 @@ void* llvm_visc_ptx_argument_ptr(void* graphID, void* input, int arg_index, size else if(isOutput) clFlags = CL_MEM_READ_WRITE; else clFlags = CL_MEM_READ_WRITE | CL_MEM_COPY_HOST_PTR; - if(input == NULL) { - printf("Found NULL input value!!"); - input = NULL; - } cl_mem d_input = clCreateBuffer(Context->clGPUContext, clFlags, size, input, &errcode); checkErr(errcode, CL_SUCCESS, "Failure to allocate memory on device"); errcode |= clSetKernelArg(Context->clKernel, arg_index, sizeof(cl_mem), (void*)&d_input);