From 643387cc27d9a3d71abffc1507902911081ec0a9 Mon Sep 17 00:00:00 2001
From: Prakalp Srivastava <psrivas2@illinois.edu>
Date: Fri, 11 Mar 2016 16:14:43 -0600
Subject: [PATCH] Fixed bugs in reading command line args in tpacf opencl
 versions

---
 .../benchmarks/tpacf/src/opencl_base/main.cc  | 19 +++++++++++-------
 .../tpacf/src/opencl_nvidia/main.cc           | 20 ++++++++++++-------
 2 files changed, 25 insertions(+), 14 deletions(-)

diff --git a/llvm/test/VISC/parboil/benchmarks/tpacf/src/opencl_base/main.cc b/llvm/test/VISC/parboil/benchmarks/tpacf/src/opencl_base/main.cc
index ce3484dd5f..d080a28db3 100644
--- a/llvm/test/VISC/parboil/benchmarks/tpacf/src/opencl_base/main.cc
+++ b/llvm/test/VISC/parboil/benchmarks/tpacf/src/opencl_base/main.cc
@@ -65,10 +65,8 @@ int
 main( int argc, char** argv) 
 {
   struct pb_TimerSet timers;
-  struct pb_Parameters *params;
 
   pb_InitializeTimerSet( &timers );
-  params = pb_ReadParameters( &argc, argv );
 
   options args;
   parse_args(argc, argv, &args);
@@ -83,6 +81,8 @@ main( int argc, char** argv)
   printf("Max distance: %f arcmin\n", max_arcmin);
   printf("Bins per dec: %i\n", bins_per_dec);
   printf("Total bins  : %i\n", NUM_BINS);
+  printf("Total elements  : %i\n", NUM_ELEMENTS);
+  printf("Total sets  : %i\n", NUM_SETS);
 
   //read in files 
   unsigned mem_size = (1+NUM_SETS)*num_elements*sizeof(struct cartesian);
@@ -98,7 +98,8 @@ main( int argc, char** argv)
     
   // go through and read all data and random points into h_all_data
   pb_SwitchToTimer( &timers, pb_TimerID_IO );
-  readdatafile(params->inpFiles[0], working, num_elements);
+  strcat(args.data_name, ".1");
+  readdatafile(args.data_name, working, num_elements);
   pb_SwitchToTimer( &timers, pb_TimerID_COMPUTE );
 
   working += num_elements;
@@ -106,7 +107,12 @@ main( int argc, char** argv)
     {
       pb_SwitchToTimer( &timers, pb_TimerID_IO );
       char fileName[50];
-      readdatafile(params->inpFiles[i+1], working, num_elements);
+      char suffix[10];
+      sprintf(suffix, ".%d", i+1);
+      strcpy(fileName, args.random_name); 
+      strcat(fileName, suffix);
+      //printf("Read random data from: %s\n", fileName);
+      readdatafile(fileName, working, num_elements);
       pb_SwitchToTimer( &timers, pb_TimerID_COMPUTE );
 
       working += num_elements;
@@ -235,10 +241,10 @@ main( int argc, char** argv)
     }
 
   FILE *outfile;
-  if ((outfile = fopen(params->outFile, "w")) == NULL)
+  if ((outfile = fopen(args.output_name, "w")) == NULL)
     {
       fprintf(stderr, "Unable to open output file %s for writing, "
-	      "assuming stdout\n", params->outFile);
+	      "assuming stdout\n", args.output_name);
       outfile = stdout;
     }
   
@@ -271,6 +277,5 @@ main( int argc, char** argv)
 
   pb_SwitchToTimer(&timers, pb_TimerID_NONE);
   pb_PrintTimerSet(&timers);
-  pb_FreeParameters(params);
 }
 
diff --git a/llvm/test/VISC/parboil/benchmarks/tpacf/src/opencl_nvidia/main.cc b/llvm/test/VISC/parboil/benchmarks/tpacf/src/opencl_nvidia/main.cc
index 36e879c527..c931d9e8f3 100644
--- a/llvm/test/VISC/parboil/benchmarks/tpacf/src/opencl_nvidia/main.cc
+++ b/llvm/test/VISC/parboil/benchmarks/tpacf/src/opencl_nvidia/main.cc
@@ -65,10 +65,8 @@ int
 main( int argc, char** argv) 
 {
   struct pb_TimerSet timers;
-  struct pb_Parameters *params;
 
   pb_InitializeTimerSet( &timers );
-  params = pb_ReadParameters( &argc, argv );
 
   options args;
   parse_args(argc, argv, &args);
@@ -83,6 +81,8 @@ main( int argc, char** argv)
   printf("Max distance: %f arcmin\n", max_arcmin);
   printf("Bins per dec: %i\n", bins_per_dec);
   printf("Total bins  : %i\n", NUM_BINS);
+  printf("Total elements  : %i\n", NUM_ELEMENTS);
+  printf("Total sets  : %i\n", NUM_SETS);
 
   //read in files 
   unsigned mem_size = (1+NUM_SETS)*num_elements*sizeof(struct cartesian);
@@ -98,7 +98,8 @@ main( int argc, char** argv)
     
   // go through and read all data and random points into h_all_data
   pb_SwitchToTimer( &timers, pb_TimerID_IO );
-  readdatafile(params->inpFiles[0], working, num_elements);
+  strcat(args.data_name, ".1");
+  readdatafile(args.data_name, working, num_elements);
   pb_SwitchToTimer( &timers, pb_TimerID_COMPUTE );
 
   working += num_elements;
@@ -106,13 +107,19 @@ main( int argc, char** argv)
     {
       pb_SwitchToTimer( &timers, pb_TimerID_IO );
       char fileName[50];
-      readdatafile(params->inpFiles[i+1], working, num_elements);
+      char suffix[10];
+      sprintf(suffix, ".%d", i+1);
+      strcpy(fileName, args.random_name); 
+      strcat(fileName, suffix);
+      //printf("Read random data from: %s\n", fileName);
+      readdatafile(fileName, working, num_elements);
       pb_SwitchToTimer( &timers, pb_TimerID_COMPUTE );
 
       working += num_elements;
     }
 
   // split into x, y, and z arrays
+  // AOS to SOA transformation
   float * h_x_data = (float*) malloc (3*f_mem_size);
   float * h_y_data = h_x_data + NUM_ELEMENTS*(NUM_SETS+1);
   float * h_z_data = h_y_data + NUM_ELEMENTS*(NUM_SETS+1);
@@ -235,10 +242,10 @@ main( int argc, char** argv)
     }
 
   FILE *outfile;
-  if ((outfile = fopen(params->outFile, "w")) == NULL)
+  if ((outfile = fopen(args.output_name, "w")) == NULL)
     {
       fprintf(stderr, "Unable to open output file %s for writing, "
-	      "assuming stdout\n", params->outFile);
+	      "assuming stdout\n", args.output_name);
       outfile = stdout;
     }
   
@@ -271,6 +278,5 @@ main( int argc, char** argv)
 
   pb_SwitchToTimer(&timers, pb_TimerID_NONE);
   pb_PrintTimerSet(&timers);
-  pb_FreeParameters(params);
 }
 
-- 
GitLab