diff --git a/llvm/projects/visc-rt/visc-rt.cpp b/llvm/projects/visc-rt/visc-rt.cpp
index f753d9ad1d38d3178d3e3a4f27ff4f1006a18987..d7e3cd530ccd032057a1fa3602562103883fa24f 100644
--- a/llvm/projects/visc-rt/visc-rt.cpp
+++ b/llvm/projects/visc-rt/visc-rt.cpp
@@ -195,7 +195,7 @@ static char* LoadProgSource(const char* Filename, size_t* szFinalLength)
 }
 
 extern "C"
-void* llvm_visc_ptx_launch(const char* Filename) {
+void* llvm_visc_ptx_launch(const char* FileName, const char* KernelName) {
   // Initialize OpenCL
 
   // OpenCL specific variables
@@ -262,7 +262,7 @@ void* llvm_visc_ptx_launch(const char* Filename) {
   Context->clCommandQue = clCreateCommandQueue(Context->clGPUContext, clDevices[0], 0, &errcode);
   checkErr(errcode, CL_SUCCESS, "Failure to create command queue");
 
-  char *programSource = LoadProgSource(Filename, &kernelLength);
+  char *programSource = LoadProgSource(FileName, &kernelLength);
   checkErr(programSource != NULL, 1 /*bool true*/, "Failure to load Program Binary");
   
   cl_int binaryStatus;
@@ -275,7 +275,7 @@ void* llvm_visc_ptx_launch(const char* Filename) {
   errcode = clBuildProgram(Context->clProgram, 0, NULL, NULL, NULL, NULL);
   checkErr(errcode, CL_SUCCESS, "Failure to build program");
 
-  Context->clKernel = clCreateKernel(Context->clProgram, "matrixMul", &errcode);
+  Context->clKernel = clCreateKernel(Context->clProgram, KernelName, &errcode);
   checkErr(errcode, CL_SUCCESS, "Failure to create kernel");