From a5a423fcd5bb6453feed382fda1d8b9701fc921d Mon Sep 17 00:00:00 2001
From: Prakalp Srivastava <psrivas2@illinois.edu>
Date: Fri, 21 Nov 2014 18:39:53 +0000
Subject: [PATCH] (1) visc-rt.cpp modified to have correct opencl read/write
 flags depending on     in out attributes of arguments (2) check-point commit
 in preparing mri-q benchmark

---
 llvm/projects/visc-rt/visc-rt.cpp                           | 6 +++---
 .../VISC/parboil/benchmarks/mri-q/src/opencl/kernels.cl     | 1 +
 llvm/test/VISC/parboil/benchmarks/mri-q/src/opencl/macros.h | 4 ++--
 3 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/llvm/projects/visc-rt/visc-rt.cpp b/llvm/projects/visc-rt/visc-rt.cpp
index ef9990785f..9bfc0ba9ab 100644
--- a/llvm/projects/visc-rt/visc-rt.cpp
+++ b/llvm/projects/visc-rt/visc-rt.cpp
@@ -113,9 +113,9 @@ void* llvm_visc_ptx_argument_ptr(void* graphID, void* input, int arg_index, size
   cl_int errcode;
   cl_mem_flags clFlags;
   if(isInput && isOutput) clFlags = CL_MEM_READ_WRITE | CL_MEM_COPY_HOST_PTR;
-  else if(isInput)        clFlags = CL_MEM_READ_WRITE | CL_MEM_COPY_HOST_PTR;
-  else if(isOutput)       clFlags = CL_MEM_READ_WRITE;
-  else                    clFlags = CL_MEM_READ_WRITE | CL_MEM_COPY_HOST_PTR;
+  else if(isInput)        clFlags = CL_MEM_READ_ONLY | CL_MEM_COPY_HOST_PTR;
+  else if(isOutput)       clFlags = CL_MEM_WRITE_ONLY;
+  else                    clFlags = CL_MEM_READ_ONLY | CL_MEM_COPY_HOST_PTR;
 
   cl_mem d_input = clCreateBuffer(Context->clGPUContext, clFlags, size, input, &errcode);
   checkErr(errcode, CL_SUCCESS, "Failure to allocate memory on device");
diff --git a/llvm/test/VISC/parboil/benchmarks/mri-q/src/opencl/kernels.cl b/llvm/test/VISC/parboil/benchmarks/mri-q/src/opencl/kernels.cl
index 37455d5843..b7a91a5abb 100644
--- a/llvm/test/VISC/parboil/benchmarks/mri-q/src/opencl/kernels.cl
+++ b/llvm/test/VISC/parboil/benchmarks/mri-q/src/opencl/kernels.cl
@@ -1,6 +1,7 @@
 #include "macros.h"
 
 #define NC  4
+#define KERNEL_Q_K_ELEMS_PER_GRID 256
 #define COARSE_GENERAL
 // #define COARSE_SPEC NC
 
diff --git a/llvm/test/VISC/parboil/benchmarks/mri-q/src/opencl/macros.h b/llvm/test/VISC/parboil/benchmarks/mri-q/src/opencl/macros.h
index 9ba2c5a3be..89c0e376b5 100644
--- a/llvm/test/VISC/parboil/benchmarks/mri-q/src/opencl/macros.h
+++ b/llvm/test/VISC/parboil/benchmarks/mri-q/src/opencl/macros.h
@@ -1,5 +1,5 @@
 #ifndef __MACROS__
-#define __MACROS__
+//#define __MACROS__
 
 #define PI   3.1415926535897932384626433832795029f
 #define PIx2 6.2831853071795864769252867665590058f
@@ -9,7 +9,7 @@
 
 #define KERNEL_PHI_MAG_THREADS_PER_BLOCK 256 /* 512 */
 #define KERNEL_Q_THREADS_PER_BLOCK 256
-#define KERNEL_Q_K_ELEMS_PER_GRID 1024
+#define KERNEL_Q_K_ELEMS_PER_GRID 256
 
 struct kValues {
   float Kx;
-- 
GitLab