diff --git a/llvm/projects/hpvm-tensor-rt/docs/Changes.md b/llvm/projects/hpvm-tensor-rt/docs/Changes.md
new file mode 100644
index 0000000000000000000000000000000000000000..ebf0295ed664bf618195d79a461b58b576b0c071
--- /dev/null
+++ b/llvm/projects/hpvm-tensor-rt/docs/Changes.md
@@ -0,0 +1,62 @@
+# Header Files Needing Modification
+
+- llvm/include/IR/IntrisicsVISC.td
+  - Add Tensor intrinsics here
+
+- bechmarks/common/include/visc.h - Benchmarks header
+  - Include tensor intrinsic declarations
+
+- Header files for "PROMISE_TARGET" and "CUDNN_TARGET" Hints
+  - /include/SupportVISC/DFG2LLVM.h
+  - /include/SupportVISC/VISCUtils.h
+  - /include/SupportVISC/VISCHint.h
+
+
+
+
+# Passes Needing Modification
+
+- GenVISC
+  * Handle Tensor Intrinsics
+  * Add Declarations for Intrinsic Functions called (at top)
+  * Modify runOnModule to include rules for functions -> intrinsics
+
+
+- ClearDFG
+  * Incorporate new changes for visc.node.id
+
+
+# New Passes to Incorporate in LLVM-9 Branch
+
+- lib/Transforms/DFG2LLVM_CUDNN
+- lib/Transforms/DFG2LLVM_WrapperAPI
+- lib/Transforms/FusedNodesHPVM
+
+** Changes needed:
+- Modify paths to tensor_runtime.ll
+- Use "hpvm" instead of "visc" intrinsics
+
+
+# Projects to Move
+
+- hpvm-tensor-rt
+  * Make sure to not move 'tuner_results' and 'model_params' subdirectories
+
+- gpu_profiler
+
+- soc_simlator
+
+- Keras (wait on it)
+
+
+
+# Build System
+
+- Add rules to /lib/Transforms/CMakeLists.txt
+- Add rules to /llvm/projects/CmakeLists.txt
+- Automate the generation of 'tensor_runtime.ll`
+- Add CUDNN, CUDA paths to the template environment setup file
+- Move to using Cmake-3.17 (earlier 3.15)
+
+
+
diff --git a/llvm/projects/hpvm-tensor-rt/lib/tensor_runtime.ll b/llvm/projects/hpvm-tensor-rt/lib/tensor_runtime.ll
index 42325406bd3308a7bc5f165b491da85cd1024f27..efef5f2c2f53d4812edfa4b6d231ca5a1cc52371 100644
--- a/llvm/projects/hpvm-tensor-rt/lib/tensor_runtime.ll
+++ b/llvm/projects/hpvm-tensor-rt/lib/tensor_runtime.ll
@@ -67,6 +67,10 @@ entry:
   %FCLayer = alloca i8*, align 8
   %ConvLayer_ = alloca i8*, align 8
   %ConvLayer2 = alloca i8*, align 8
+<<<<<<< HEAD
+=======
+  %GroupConvLayer = alloca i8*, align 8
+>>>>>>> 2a31471f4de89edd9180689d139be7ca65b0df08
   %FCLayer2 = alloca i8*, align 8
   %AddWrapper = alloca i8*, align 8
   %ReluWrapper = alloca i8*, align 8
@@ -122,6 +126,10 @@ entry:
   store i8* bitcast (i8* (i8*, float, float, i8*, float, float, i8*, float, float, i32, float, float, i32)* @FCLayer_PROMISE to i8*), i8** %FCLayer, align 8
   store i8* bitcast (i8* (i8*, i8*, i8*, i8*, i32, i32, i32, i32, i32, i32, i32, float, float)* @wrapper_ConvLayer to i8*), i8** %ConvLayer_, align 8
   store i8* bitcast (i8* (i8*, i8*, i8*, i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, float)* @wrapper_ConvLayer2 to i8*), i8** %ConvLayer2, align 8
+<<<<<<< HEAD
+=======
+  store i8* bitcast (i8* (i8*, i8*, i8*, i32, i32, i32, i32, i32, i32)* @wrapper_tensorGroupConvolution to i8*), i8** %GroupConvLayer, align 8
+>>>>>>> 2a31471f4de89edd9180689d139be7ca65b0df08
   store i8* bitcast (i8* (i8*, i8*, i8*, i8*, i32, float, float)* @wrapper_FCLayer to i8*), i8** %FCLayer2, align 8
   store i8* bitcast (i8* (i8*, i8*, i8*)* @wrapper_tensorAdd to i8*), i8** %AddWrapper, align 8
   store i8* bitcast (i8* (i8*, i8*)* @wrapper_tensorRelu to i8*), i8** %ReluWrapper, align 8
@@ -219,6 +227,8 @@ declare i8* @wrapper_ConvLayer(i8*, i8*, i8*, i8*, i32, i32, i32, i32, i32, i32,
 
 declare i8* @wrapper_ConvLayer2(i8*, i8*, i8*, i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, float) #1
 
+declare i8* @wrapper_tensorGroupConvolution(i8*, i8*, i8*, i32, i32, i32, i32, i32, i32) #1
+
 declare i8* @wrapper_FCLayer(i8*, i8*, i8*, i8*, i32, float, float) #1
 
 declare i8* @wrapper_tensorAdd(i8*, i8*, i8*) #1
diff --git a/llvm/projects/hpvm-tensor-rt/tensor_runtime/include/tensor_signatures.cc b/llvm/projects/hpvm-tensor-rt/tensor_runtime/include/tensor_signatures.cc
index 9c4cf97908a129e421e61d29177e7a4359a860e6..478a7ba037702fd74d6dffb489ca093a49405449 100644
--- a/llvm/projects/hpvm-tensor-rt/tensor_runtime/include/tensor_signatures.cc
+++ b/llvm/projects/hpvm-tensor-rt/tensor_runtime/include/tensor_signatures.cc
@@ -47,6 +47,10 @@ void dummyFunction() {
 
   void *ConvLayer_ = (void *)&wrapper_ConvLayer;
   void *ConvLayer2 = (void *)&wrapper_ConvLayer2;
+<<<<<<< HEAD
+=======
+  void *GroupConvLayer = (void *)&wrapper_tensorGroupConvolution;
+>>>>>>> 2a31471f4de89edd9180689d139be7ca65b0df08
 
   void *FCLayer2 = (void *)&wrapper_FCLayer;
   void *AddWrapper = (void *)&wrapper_tensorAdd;
diff --git a/llvm/projects/keras/cmake_template/CMakeLists.txt b/llvm/projects/keras/cmake_template/CMakeLists.txt
index 67ce4a848b4de67c15cc2a8de032f6dd063d6fc7..0cdee697ce2d663775f0283e96f35c45fd467986 100644
--- a/llvm/projects/keras/cmake_template/CMakeLists.txt
+++ b/llvm/projects/keras/cmake_template/CMakeLists.txt
@@ -50,7 +50,7 @@ find_library(TENSOR_LIB
   )
 
 
-set(LINK_LIBS cudart cudnn cufft cublas stdc++fs curand)
+set(LINK_LIBS cudart cudnn cufft cublas stdc++fs curand -pthread)
 
 #### Image Processing Benchmarks
 
diff --git a/llvm/projects/keras/frontend/approxhpvm_translator.py b/llvm/projects/keras/frontend/approxhpvm_translator.py
index bd30ad2a44392bd71395958c8b58c24d8d9d66ad..e60d6adb994ee4da56765a1fa365b14a792863d2 100644
--- a/llvm/projects/keras/frontend/approxhpvm_translator.py
+++ b/llvm/projects/keras/frontend/approxhpvm_translator.py
@@ -21,6 +21,7 @@ class DFG:
 
 
   def hasSingleInput(self, layer):
+
     layer_name = layer.__class__.__name__
     
     singleInLayers = {}
@@ -57,12 +58,12 @@ class DFG:
     inbound_node_name = inbound_node_name.split("/")[0]
     if inbound_node_name in self.node_map:
       inbound_node = self.node_map[inbound_node_name]
-      print (inbound_node_name, " found!")
+      DEBUG (inbound_node_name, " found!")
       inbound_node.add_output(dfg_node)
       dfg_node.add_input(inbound_node)
       
     else:
-      print ("--inbound node NOT FOUND!")
+      DEBUG ("--inbound node NOT FOUND!")
 
       
 
@@ -75,12 +76,12 @@ class DFG:
 
     if self.hasMultipleInputs(layer):  
       for j in range(len(layer.input)):
-        print(type(layer.input[j]))
-        print(layer.input[j].op.name)        
+        DEBUG (type(layer.input[j]))
+        DEBUG (layer.input[j].op.name)        
         self.add_dfg_edge(layer.input[j].op.name, dfg_node)
 
     else:
-      print (layer.input.name)        
+      DEBUG (layer.input.name)        
       self.add_dfg_edge(layer.input.name, dfg_node)
 
     # Adding DFG node to name mapping
@@ -104,8 +105,8 @@ class DFG:
       return
       
     if self.predVisited(cur_node, visited_nodes):
-      print(cur_node.layer_type)
-      print(cur_node.layer_name)
+      DEBUG (cur_node.layer_type)
+      DEBUG (cur_node.layer_name)
       visited_nodes[cur_node.layer_name] = True
 
       # Invoking traversal on outbound nodes
@@ -119,7 +120,7 @@ class DFG:
         
   #Build and  Print the DFG in reverse postorder
   def buildDFG(self):
-    print ("\n\n ****** Traversing and Printing DFG ******* \n\n")
+    DEBUG ("\n\n ****** Traversing and Printing DFG ******* \n\n")
     visited_nodes = {}
     # Starting traversal at the DFG root node
     self.traverseNode(self.root_node, visited_nodes)
@@ -144,42 +145,42 @@ class DFGNode:
       layer_type = layer.__class__.__name__
       self.layer_type = layer_type # layer type e.g., conv2d, add, dense
       self.layer_name = layer.name  # unique layer identifier
-      print (self.layer_name)
+      DEBUG (self.layer_name)
 
       if layer_type == "Conv2D" or layer_type == "DepthwiseConv2D" or  layer_type == "Dense":
         self.weights = layer.get_weights()[0]
-        print("\t", self.weights.shape)
+        DEBUG ("\t", self.weights.shape)
         self.use_bias = layer.use_bias
         
         if layer.use_bias:
           self.use_bias = layer.use_bias
           self.bias_weights = layer.get_weights()[1]
-          print("\t", self.bias_weights.shape)
+          DEBUG ("\t", self.bias_weights.shape)
         
           
       if layer_type == "Conv2D" or layer_type == "DepthwiseConv2D":
         self.padding = layer.padding
         self.strides = layer.strides
-        print("\t", self.strides)
-        print("\tPadding = ", self.padding)
+        DEBUG ("\t", self.strides)
+        DEBUG ("\tPadding = ", self.padding)
 
         
       if layer_type == "MaxPooling2D" or layer_type == "AveragePooling2D":
         self.pool_size = layer.pool_size
         self.strides = layer.strides
-        print("\t pool_size = ", self.pool_size)
-        print("\t strides = ", self.strides)
+        DEBUG ("\t pool_size = ", self.pool_size)
+        DEBUG ("\t strides = ", self.strides)
 
         
       if layerHasActivationAttr(self):
         self.activation_type = layer.activation.__name__
-        print ("\t Activation = ", self.activation_type)
+        DEBUG ("\t Activation = ", self.activation_type)
   
 
       if layer_type == "ZeroPadding2D":
-        print ("***ZeroPaddding \n");
+        DEBUG ("***ZeroPaddding \n");
         self.padding = layer.padding
-        print ("padding = ", self.padding);
+        DEBUG ("padding = ", self.padding);
         
       if layer_type == "BatchNormalization":
         self.epsilon = layer.epsilon
@@ -264,12 +265,12 @@ class TensorRtTranslator:
   
   def getSingleInputName(self, cur_node):
 
-    print (cur_node.layer_name)
+    DEBUG (cur_node.layer_name)
     # Assumption: If no inputs, the previous layer must be input layer
     if len(cur_node.inputs) == 0:
       return "input"
 
-    print ("Input_type = ", cur_node.inputs[0].layer_type)
+    DEBUG ("Input_type = ", cur_node.inputs[0].layer_type)
 
     # NOTE: Assuming the 'inference' phase - hence skipping Dropout
     pred_layer_type = cur_node.inputs[0].layer_type
@@ -295,12 +296,12 @@ class TensorRtTranslator:
 
   def getPrevLayerPadding(self, cur_node):
 
-    print (cur_node.layer_name)
+    DEBUG (cur_node.layer_name)
     # Assumption: If no inputs, the previous layer must be input layer
     if len(cur_node.inputs) == 0:
       return None
 
-    print ("Input_type = ", cur_node.inputs[0].layer_type)
+    DEBUG ("Input_type = ", cur_node.inputs[0].layer_type)
     if cur_node.inputs[0].layer_type == "ZeroPadding2D": 
       pred_padding = cur_node.inputs[0].padding
       return pred_padding
@@ -483,9 +484,7 @@ class TensorRtTranslator:
       self.program_str += inst_str
 
       
-    
-      
-      
+            
           
      
   def codegenNode(self, dfg, cur_node, visited_nodes):
@@ -494,12 +493,11 @@ class TensorRtTranslator:
     if cur_node.layer_name in visited_nodes:
       return
 
-    print ("-visiting = ", cur_node.layer_name, "\n")
+    DEBUG ("-visiting = ", cur_node.layer_name, "\n")
     
     if dfg.predVisited(cur_node, visited_nodes):
       
       visited_nodes[cur_node.layer_name] = True
-
       self.genNodeCalls(cur_node)
 
       # Invoking traversal on outbound nodes
@@ -510,11 +508,13 @@ class TensorRtTranslator:
   # Print the DFG in reverse postorder
   def codegen(self, dfg):
 
-    print ("\n\n ****** Codegen for HPVM Tensor Rt ******* \n\n")
+    print ("\n *** Starting Codegen for HPVM Tensor Rt *** \n")
     visited_nodes = {}
     # Starting traversal at the DFG root node
     self.codegenNode(dfg, dfg.root_node, visited_nodes)
 
+    print ("\n\n --- Codegen Completed --- \n\n")
+
 
     
     
@@ -531,7 +531,7 @@ class TensorRtTranslator:
         w_name = layer_name + "_w"
         
         self.filter_names[w_name] = 1
-        print (weights.shape, w_name)
+        DEBUG (weights.shape, w_name)
 
         N = weights.shape[3]
         C = weights.shape[2]
@@ -563,7 +563,7 @@ class TensorRtTranslator:
           b_name = layer_name + "_b"
 
           self.filter_names[b_name] = 1
-          print (bias_weights.shape, b_name)
+          DEBUG (bias_weights.shape, b_name)
 
           unique_file_name = b_name + ".bin"
           dumpFcBias(prefix + unique_file_name, bias_weights, bias_weights.shape[0])
@@ -584,7 +584,7 @@ class TensorRtTranslator:
         w_name = layer_name + "_w"
 
         self.filter_names[w_name] = 1
-        print (weights.shape, w_name)
+        DEBUG (weights.shape, w_name)
 
         H = weights.shape[0]
         W = weights.shape[1]
@@ -606,7 +606,7 @@ class TensorRtTranslator:
           b_name = layer_name + "_b"
 
           self.filter_names[b_name] = 1
-          print (bias_weights.shape, b_name)
+          DEBUG (bias_weights.shape, b_name)
 
           unique_file_name = b_name + ".bin"
           dumpFcBias(prefix + unique_file_name, bias_weights, bias_weights.shape[0])
@@ -862,7 +862,7 @@ def reloadModelParams(model, reload_dir, x_test, y_test):
   for i in range(len(model.layers)):
     layer = model.layers[i]
     layer_name = layer.name
-    print ("*layer_name = ", layer_name)
+    DEBUG ("*layer_name = ", layer_name)
 
     if "conv" not in layer_name and "dense" not in layer_name:
       continue
@@ -870,9 +870,6 @@ def reloadModelParams(model, reload_dir, x_test, y_test):
     w_path = reload_dir + layer_name + "_w.bin"
     b_path = reload_dir + layer_name + "_b.bin"
    
-    print ("** w_path = ", w_path)
-    print ("** b_path = ", b_path)
-
     w_arr = np.fromfile(w_path, dtype='float32')
     b_arr = np.fromfile(b_path, dtype='float32')
 
@@ -885,7 +882,7 @@ def reloadModelParams(model, reload_dir, x_test, y_test):
       b_arr = np.reshape(b_arr, b_shape)
     
       w_arr = np.transpose(w_arr, (2,3,1,0))
-      print ("old_shape = ", w_shape, " new_shape = ", w_arr.shape)
+      DEBUG ("old_shape = ", w_shape, " new_shape = ", w_arr.shape)
 
     if "dense" in layer_name:      
       w_arr = np.reshape(w_arr, w_shape)
@@ -921,7 +918,6 @@ def getUniquePath(weights_dir):
 
     weights_dir = getUniquePath(weights_dir)
       
-  #print (weights_dir)
   
   return weights_dir
   
@@ -950,8 +946,8 @@ def translate_to_approxhpvm(model, weights_dir, test_data=None, test_labels=None
   dfg.buildDFG()
 
 
-  print ("test_data.shape = ", test_data.shape, "\n")
-  print ("test_labels.shape = ", test_labels.shape, "\n")
+  DEBUG ("test_data.shape = ", test_data.shape, "\n")
+  DEBUG ("test_labels.shape = ", test_labels.shape, "\n")
 
   tensorRtTranslator = TensorRtTranslator(dfg)    
   tensorRtTranslator.translate(model, weights_dir, test_data, test_labels)
@@ -959,13 +955,17 @@ def translate_to_approxhpvm(model, weights_dir, test_data=None, test_labels=None
   input_str = tensorRtTranslator.getInputStr()
 
 
-  promiseRtTranslator = PromiseRtTranslator(dfg, weight_str)    
-  promiseRtTranslator.translate(model, weights_dir, test_data)
+  #promiseRtTranslator = PromiseRtTranslator(dfg, weight_str)    
+  #promiseRtTranslator.translate(model, weights_dir, test_data)
 
   filter_names = tensorRtTranslator.getFilterNames()
   hpvmTranslator = HPVMTranslator(dfg, weight_str, input_str, filter_names)    
   hpvmTranslator.translate(model, weights_dir, test_data)
-  
+
+  print ("-- Weight Files Under : ", weights_dir)
+  print ("-- TensorRT src : ", weights_dir + "/src.cc")
+  print ("-- ApproxHPVM src  : ", weights_dir + "approxhpvm_src.cc")
+
   
   return weights_dir
 
diff --git a/llvm/projects/keras/frontend/hpvm_dfg_translator.py b/llvm/projects/keras/frontend/hpvm_dfg_translator.py
index 233652600a564f2ca2533030b1f623b4aab06f48..65574a98881f010bf7cd67df344517803de8c67c 100644
--- a/llvm/projects/keras/frontend/hpvm_dfg_translator.py
+++ b/llvm/projects/keras/frontend/hpvm_dfg_translator.py
@@ -59,12 +59,12 @@ class HPVMTranslator:
     
       
   def getSingleInputName(self, cur_node):
-    print (cur_node.layer_name)
+    DEBUG (cur_node.layer_name)
     # Assumption: If no inputs, the previous layer must be input layer
     if len(cur_node.inputs) == 0:
       return "input"
 
-    print ("Input_type = ", cur_node.inputs[0].layer_type)
+    DEBUG ("Input_type = ", cur_node.inputs[0].layer_type)
 
     pred_layer_type = cur_node.inputs[0].layer_type
     # NOTE: Assuming the 'inference' phase - hence skipping Dropout
@@ -90,12 +90,12 @@ class HPVMTranslator:
 
 
   def getPrevLayerPadding(self, cur_node):
-    print (cur_node.layer_name)
+    DEBUG (cur_node.layer_name)
     # Assumption: If no inputs, the previous layer must be input layer
     if len(cur_node.inputs) == 0:
       return None
 
-    print ("Input_type = ", cur_node.inputs[0].layer_type)
+    DEBUG ("Input_type = ", cur_node.inputs[0].layer_type)
     if cur_node.inputs[0].layer_type == "ZeroPadding2D": 
       pred_padding = cur_node.inputs[0].padding
       return pred_padding
@@ -166,7 +166,7 @@ class HPVMTranslator:
         node_header_str += ", "
         
     node_header_str += ") { \n" 
-    node_header_str += "  __visc__hint(visc::CUDNN_TARGET); \n"
+    node_header_str += "  __visc__hint(visc::PROMISE_TARGET); \n"
     node_header_str += "  __visc__attributes(" + str(num_params) + ", "
 
     for i in range(num_params):
@@ -215,8 +215,8 @@ class HPVMTranslator:
   # Fix: replace deprecated  genHpvmNodeEdges with  genHpvmEdges
   def genHpvmNodeEdges(self, out_var_name, input_var_name, input_var_name2):
 
-    print ("input_var_name2 = ", input_var_name2)
-    print ("input_var_name = ", input_var_name)
+    DEBUG ("input_var_name2 = ", input_var_name2)
+    DEBUG ("input_var_name = ", input_var_name)
     
     hpvm_edge_str = "\n  void* " + out_var_name + " = "
     hpvm_edge_str += "__visc__createNodeND(0, " + out_var_name + "_node); \n\n"
@@ -462,7 +462,7 @@ class HPVMTranslator:
     if layer_type == "MaxPooling2D":
       func_name = "__visc__tensor_pool_max"     
     if layer_type == "AveragePooling2D":
-      func_name = "__visc__tensor_pool_avg"
+      func_name = "__visc__tensor_pool_mean"
       
     inst_str += "  void* r = " + func_name + "(t1, "
     inst_str += str(pool_size[0]) + ", " + str(pool_size[1]) + ", "
@@ -531,11 +531,13 @@ class HPVMTranslator:
         
   # Print the DFG in reverse postorder
   def codegen(self, dfg):
-    print ("\n\n ****** Codegen for ApproxHPVM DFG Representation ******* \n\n")
+    print ("\n *** Starting Codegen for ApproxHPVM DFG Representation *** \n")
     visited_nodes = {}
     # Starting traversal at the DFG root node
     self.codegenNode(dfg, dfg.root_node, visited_nodes)
 
+    print ("\n --- Codegen Completed --- \n")
+
 
       
 
@@ -648,7 +650,7 @@ class HPVMTranslator:
     program_str = self.file_header_str + self.node_str + self.root_str
     program_str += self.root_struct_str + self.main_func_str
 
-    print (program_str)
+    DEBUG (program_str)
     
     f = open(dir_prefix + "/approxhpvm_src.cc", "w+")
     f.write(program_str)
diff --git a/llvm/projects/keras/frontend/promise_translator.py b/llvm/projects/keras/frontend/promise_translator.py
index 54982bd7c7f906d5fe27ddb052ae303575c260ba..30acf47cd8aeedaaae8ee1ba0fda637a7d931940 100644
--- a/llvm/projects/keras/frontend/promise_translator.py
+++ b/llvm/projects/keras/frontend/promise_translator.py
@@ -386,11 +386,8 @@ class PromiseRtTranslator:
     if len(cur_node.inputs) == 0:
       return "input"
 
-    #print ("Input_type = ", cur_node.inputs[0].layer_type)
-
     pred_layer_type = cur_node.inputs[0].layer_type
     # FIXME: Assuming the 'inference' phase - hence skipping Dropout
-    #if pred_layer_type == "Flatten" or pred_layer_type == "Dropout":
     if self.isSkipLayer(pred_layer_type):
       cur_node = self.getPrevActiveLayer(cur_node)
 
@@ -1056,8 +1053,6 @@ class PromiseRtTranslator:
       
       # Inference over test set
       layer_outs = functor([x_test[start:end], 1.])
-
-      ###layer_outs = functor([x_test[start:end]])
     
       # NOTE: Saving quant ranges for input
       min_val = np.amin(x_test)
@@ -1096,12 +1091,9 @@ class PromiseRtTranslator:
           min_val = range[0]
         if range[1] > max_val:
           max_val = range[1]
-
-        # print ("****** min = ", range[0], "  max = ", range[1])
         
       self.quant_ranges[layer_name] = (min_val, max_val)    
 
-
       print ("---- min = ", min_val, "  max = ", max_val, " ----- \n\n")
 
       ind += 1
@@ -1123,20 +1115,6 @@ class PromiseRtTranslator:
       print ("layer_shape = ", layer.input.shape)
       self.layer_input_sizes[layer_name] = layer.input.shape
 
-    #inp = model.input                                           # input placeholder
-    #inputs = []
-    # functor = K.function([inp, K.learning_phase()], outputs )   # evaluation function
-    # functor2 = K.function([inp, K.learning_phase()], inputs )   # evaluation function
-    # Testing
-    # layer_outs = functor([x_test, 1.])
-    # layer_inputs = functor2([x_test, 1.])
-
-    #index = 0
-    #for layer_in in layer_inputs:
-    #  print ("layer_in = ", layer_in.shape)
-    #  layer_name = model.layers[index].name
-    #  self.layer_input_sizes[layer_name] = layer_in.shape
-    #  index += 1
 
     
 
@@ -1323,7 +1301,6 @@ class PromiseRtTranslator:
     
     self.findQuantizeRanges(model, x_test)
     
-    #self.traverseSuccessors(root_node, state)
     self.handleLayers(root_node, state)
 
     print ("\n *** Generated PROMISE Layers **** \n ")
@@ -1335,4 +1312,4 @@ class PromiseRtTranslator:
     
     
 
-    #print (self.layer_size_str)
+    
diff --git a/llvm/projects/keras/frontend/utils.py b/llvm/projects/keras/frontend/utils.py
index ffc338c19ea60df7c53430ac38b613c2daef402e..9a2c13715ee351b61f8d7aaffc148a90a45ee233 100644
--- a/llvm/projects/keras/frontend/utils.py
+++ b/llvm/projects/keras/frontend/utils.py
@@ -1,6 +1,13 @@
 
 
 
+def DEBUG(str, *args):
+
+  debug = False
+  if debug:
+    print (str, *args)
+
+
 
 def nodeHasBias(cur_node):
     
@@ -45,7 +52,6 @@ def genActivationCallStr(input_var, output_var, activation_type):
   inst_str = "void* " + output_var + " = "
   inst_str += "tensor" + func_name + "(" + input_var + "); \n"
 
-  print ("***** inst_str = ", inst_str, "\n")
     
   return inst_str
 
diff --git a/llvm/projects/keras/frontend/weight_utils.py b/llvm/projects/keras/frontend/weight_utils.py
index 69c1ee5469f317a4b5d8fd3e080ddae6bb8c83d9..dd22765386e2172572ad0feec201c7dec407a909 100644
--- a/llvm/projects/keras/frontend/weight_utils.py
+++ b/llvm/projects/keras/frontend/weight_utils.py
@@ -6,17 +6,16 @@ from keras.optimizers import Adam
 
 
 def dumpLabels(file_name, Y_test):
+
+    print ("Dumping Labels File = ", file_name)
     
-    f = open(file_name, "wb")
-    
+    f = open(file_name, "wb")    
     labels_map = {}    
     for label in Y_test:
         label_val = 0
         if len(Y_test.shape) > 1:        
-          #label_val = np.int8(label[0])
           label_val = np.int32(label[0])
         else:
-          #label_val = np.int8(label)
           label_val = np.int32(label)
          
         if label_val not in labels_map:
@@ -28,7 +27,7 @@ def dumpLabels(file_name, Y_test):
     f.close()
     
 
-    
+"""    
 def dumpData(file_name, X_test):
 
     N = X_test.shape[0]
@@ -37,8 +36,8 @@ def dumpData(file_name, X_test):
     W = X_test.shape[3]
  
     print ("*DumpData")
-    print("-min_val = ", np.amin(X_test))
-    print("-max_val = ", np.amax(X_test))
+    #print("-min_val = ", np.amin(X_test))
+    #print("-max_val = ", np.amax(X_test))
     
     f = open(file_name, "wb")
     for i in range(N):
@@ -50,35 +49,34 @@ def dumpData(file_name, X_test):
 
     f.close()
 
+"""
+
 
 
-"""
 def dumpData(file_name, X_test):
 
-    N = X_test.shape[0]
-    C = X_test.shape[1]
-    H = X_test.shape[2]
-    W = X_test.shape[3]
- 
-    print ("*DumpData")
-    print("-min_val = ", np.amin(X_test))
-    print("-max_val = ", np.amax(X_test))
+    print ("*Dumping Input File = ", file_name)
+    #print("-min_val = ", np.amin(X_test))
+    #print("-max_val = ", np.amax(X_test))
 
     f = open(file_name, "wb")
 
+    X_test = X_test.flatten()
+    X_test = X_test.astype(np.float32)
     X_test.tofile(f)    
 
     f.close()
 
-"""  
+
   
-    
+"""    
 def dumpConvWeights(file_name, weights, N, C, H, W):
 
     print (weights.shape)
     print ("*DumpConvWeights")
-    print("-min_val = ", np.amin(weights))
-    print("-max_val = ", np.amax(weights))
+
+    #print("-min_val = ", np.amin(weights))
+    #print("-max_val = ", np.amax(weights))
 
     
     f = open(file_name, "wb")
@@ -90,15 +88,33 @@ def dumpConvWeights(file_name, weights, N, C, H, W):
 
     f.close()
 
+"""
+
+
+def dumpConvWeights(file_name, X_test, N, C, H, W):
+
+    print ("*Dumping Conv Weights to file = ", file_name)
+    #print("-min_val = ", np.amin(X_test))
+    #print("-max_val = ", np.amax(X_test))
+
+    f = open(file_name, "wb")
+
+    X_test = np.transpose(X_test, (3, 2, 0, 1))
+    X_test = X_test.flatten()
+    X_test = X_test.astype(np.float32)
+    X_test.tofile(f)    
 
+    f.close()
+
+
+    
     
 def dumpFcWeights(file_name, weights, H, W):
 
-    print (weights.shape)
-    print ("*DumpFcWeights")
-    print("-min_val = ", np.amin(weights))
-    print("-max_val = ", np.amax(weights))
-
+    print ("*Dumping FC weights to = ", file_name)
+    
+    #print("-min_val = ", np.amin(weights))
+    #print("-max_val = ", np.amax(weights))
 
     f = open(file_name, "wb")
     for i in range(H):
@@ -111,11 +127,7 @@ def dumpFcWeights(file_name, weights, H, W):
     
 def dumpFcBias(file_name, bias, W):
 
-    print (bias.shape)
-    print ("*DumpFcBias")
-    print("-min_val = ", np.amin(bias))
-    print("-max_val = ", np.amax(bias))
-
+    print ("*Dump Bias Weights = ", file_name)
 
     f = open(file_name, "wb")
     for i in range(W):
@@ -159,19 +171,19 @@ def dumpCalibrationData2(file_name, test_data, labels_fname, test_labels):
 
 
 # Loads Existing HPVM FP32 weights
-def dumpHPVMToKerasModel(model, reload_dir, output_model, X_test, Y_test):
+def reloadHPVMWeights(model, reload_dir, output_model, X_test, Y_test):
 
   print ("***** Reloading pre-trained HPVM weights ****")
   
   for i in range(len(model.layers)):
     layer = model.layers[i]
     layer_name = layer.name
-    print ("*layer_name = ", layer_name)
+    #-- print ("*layer_name = ", layer_name)
     if "conv" not in layer_name and "dense" not in layer_name:
       continue
     
     w_path = reload_dir + layer_name + "_w.bin"
-    print ("** w_path = ", w_path)    
+    #-- print ("** w_path = ", w_path)    
     w_arr = np.fromfile(w_path, dtype='float32')
     
     b_path = reload_dir + layer_name + "_b.bin"
diff --git a/llvm/projects/keras/keras_environment.yml b/llvm/projects/keras/keras_environment.yml
index b0aa451b76f83618f69e8eb95ff86163b658a33a..1f56f758bef1f136f4fe71f04fe17ed0e770f7db 100644
--- a/llvm/projects/keras/keras_environment.yml
+++ b/llvm/projects/keras/keras_environment.yml
@@ -4,316 +4,29 @@ channels:
   - conda-forge
   - defaults
 dependencies:
-  - absl-py=0.6.1=py36_0
-  - anaconda-project=0.8.2=py36_0
-  - asn1crypto=0.24.0=py36_0
-  - automat=0.7.0=py36_0
-  - babel=2.6.0=py36_0
-  - backports=1.0=py36_1
-  - backports.os=0.1.1=py36_0
-  - beautifulsoup4=4.6.3=py36_0
-  - bkcharts=0.2=py36_0
-  - blaze=0.11.3=py36_0
-  - conda=4.5.11=py36_0
-  - conda-env=2.6.0=1
-  - contextlib2=0.5.5=py36_0
-  - cycler=0.10.0=py36_0
-  - dill=0.2.8.2=py36_0
-  - docutils=0.14=py36_0
-  - entrypoints=0.2.3=py36_2
-  - et_xmlfile=1.0.1=py36_0
-  - idna=2.7=py36_0
-  - imageio=2.4.1=py36_0
-  - importlib_metadata=0.6=py36_0
-  - ipython_genutils=0.2.0=py36_0
-  - isort=4.3.4=py36_0
-  - jdcal=1.4=py36_0
-  - jedi=0.13.1=py36_0
-  - jinja2=2.10=py36_0
-  - jmespath=0.9.3=py36_0
-  - jsonschema=2.6.0=py36_0
-  - keyring=16.0.0=py36_0
-  - libgcc=7.2.0=h69d50b8_2
-  - libgfortran=3.0.0=1
-  - locket=0.2.0=py36_1
-  - more-itertools=4.3.0=py36_0
-  - nbconvert=5.3.1=py36_0
-  - nbformat=4.4.0=py36_0
-  - nose=1.3.7=py36_2
-  - notebook=5.7.0=py36_0
-  - numpydoc=0.8.0=py36_0
-  - odo=0.5.1=py36_0
-  - pathlib2=2.3.2=py36_0
-  - pexpect=4.6.0=py36_0
-  - pickleshare=0.7.5=py36_0
-  - ply=3.11=py36_0
-  - ptyprocess=0.6.0=py36_0
-  - pycodestyle=2.4.0=py36_0
-  - pygments=2.2.0=py36_0
-  - pylint=2.1.1=py36_0
-  - pyopenssl=18.0.0=py36_0
-  - qtconsole=4.4.2=py36_0
-  - requests=2.19.1=py36_0
-  - s3transfer=0.1.13=py36_0
-  - secretstorage=3.1.0=py36_0
-  - setuptools=40.5.0=py36_0
-  - singledispatch=3.4.0.3=py36_0
-  - six=1.11.0=py36_1
-  - snowballstemmer=1.2.1=py36_0
-  - sortedcollections=1.0.1=py36_0
-  - sphinx=1.8.1=py36_0
-  - spyder=3.3.1=py36_1
-  - sympy=1.3=py36_0
-  - tblib=1.3.2=py36_0
-  - termcolor=1.1.0=py36_1
-  - terminado=0.8.1=py36_1
-  - testpath=0.4.2=py36_0
   - torchvision=0.2.1=py36_0
-  - traitlets=4.3.2=py36_0
-  - typing=3.6.4=py36_0
-  - unicodecsv=0.14.1=py36_0
-  - urllib3=1.23=py36_0
-  - wcwidth=0.1.7=py36_0
-  - wheel=0.32.2=py36_0
-  - widgetsnbextension=3.4.2=py36_0
-  - xlwt=1.3.0=py36_0
-  - _license=1.1=py36_1
   - _tflow_select=2.1.0=gpu
-  - alabaster=0.7.12=py36_0
-  - anaconda-client=1.7.2=py36_0
-  - anaconda=custom=py36hbbc8b67_0
-  - anaconda-navigator=1.9.2=py36_0
-  - appdirs=1.4.3=py36h28b3542_0
-  - astor=0.7.1=py36_0
-  - astroid=2.0.4=py36_0
-  - astropy=3.0.5=py36h7b6447c_0
-  - atomicwrites=1.2.1=py36_0
-  - attrs=18.2.0=py36h28b3542_0
-  - backcall=0.1.0=py36_0
-  - backports.shutil_get_terminal_size=1.0.0=py36_2
-  - bitarray=0.8.3=py36h14c3975_0
-  - blas=1.0=mkl
-  - bleach=3.0.2=py36_0
-  - blosc=1.14.4=hdbcaa40_0
-  - bokeh=1.0.1=py36_0
-  - boto=2.49.0=py36_0
-  - boto3=1.9.35=py36_0
-  - botocore=1.12.35=py36_0
-  - bottleneck=1.2.1=py36h035aef0_1
-  - bz2file=0.98=py36_1
-  - bzip2=1.0.6=h14c3975_5
-  - ca-certificates=2018.03.07=0
-  - cairo=1.14.12=h8948797_3
-  - certifi=2018.10.15=py36_0
-  - cffi=1.11.5=py36he75722e_1
-  - chardet=3.0.4=py36_1
-  - chest=0.2.3=py36_1
-  - click=7.0=py36_0
-  - cloudpickle=0.6.1=py36_0
-  - clyent=1.2.2=py36_1
-  - colorama=0.4.0=py36_0
-  - configobj=5.0.6=py36_1
-  - constantly=15.1.0=py36h28b3542_0
-  - cryptography=2.3.1=py36hc365091_0
-  - cudatoolkit=9.0=h13b8566_0
-  - cudnn=7.1.2=cuda9.0_0
-  - cupti=9.0.176=0
-  - curl=7.61.0=h84994c4_0
-  - cython=0.29=py36he6710b0_0
-  - cytoolz=0.9.0.1=py36h14c3975_1
-  - dask=0.20.0=py36_0
-  - dask-core=0.20.0=py36_0
-  - datashape=0.5.4=py36_1
-  - dbus=1.13.2=h714fa37_1
-  - decorator=4.3.0=py36_0
-  - defusedxml=0.5.0=py36_1
-  - distributed=1.24.0=py36_0
-  - expat=2.2.6=he6710b0_0
-  - fastcache=1.0.2=py36h14c3975_2
-  - filelock=3.0.10=py36_0
-  - flask=1.0.2=py36_1
-  - flask-cors=3.0.6=py36_0
-  - fontconfig=2.13.0=h9420a91_0
-  - freetype=2.9.1=h8a8886c_1
-  - fribidi=1.0.5=h7b6447c_0
-  - gast=0.2.0=py36_0
-  - gensim=3.4.0=py36h14c3975_0
-  - get_terminal_size=1.0.0=haa9412d_0
-  - gevent=1.3.7=py36h7b6447c_1
-  - glib=2.56.2=hd408876_0
-  - glob2=0.6=py36_1
-  - gmp=6.1.2=h6c8ec71_1
-  - gmpy2=2.0.8=py36h10f8cd9_2
-  - graphite2=1.3.12=h23475e2_2
-  - greenlet=0.4.15=py36h7b6447c_0
-  - grpcio=1.12.1=py36hdbcaa40_0
-  - gst-plugins-base=1.14.0=hbbd80ab_1
-  - gstreamer=1.14.0=hb453b48_1
-  - h5py=2.8.0=py36h989c5e5_3
-  - harfbuzz=1.8.8=hffaf4a1_0
-  - hdf5=1.10.2=hba1933b_1
-  - heapdict=1.0.0=py36_2
-  - html5lib=1.0.1=py36_0
-  - hyperlink=18.0.0=py36_0
-  - icu=58.2=h9c2bf20_1
-  - imagesize=1.1.0=py36_0
-  - incremental=17.5.0=py36_0
-  - ipykernel=5.1.0=py36h39e3cac_0
-  - ipython=7.1.1=py36h39e3cac_0
-  - ipywidgets=7.4.2=py36_0
-  - itsdangerous=1.1.0=py36_0
-  - jbig=2.1=hdba287a_0
-  - jeepney=0.4=py36_0
-  - jpeg=9b=h024ee3a_2
   - keras=2.1.6=py36_0
   - keras-applications=1.0.6=py36_0
   - keras-preprocessing=1.0.5=py36_0
-  - kiwisolver=1.0.1=py36hf484d3e_0
-  - lazy-object-proxy=1.3.1=py36h14c3975_2
-  - libcurl=7.61.0=h1ad7b7a_0
-  - libedit=3.1.20170329=h6b74fdf_2
-  - libffi=3.2.1=hd88cf55_4
-  - libgcc-ng=8.2.0=hdf63c60_1
-  - libgfortran-ng=7.3.0=hdf63c60_0
-  - libiconv=1.15=h63c8f33_5
-  - libpng=1.6.35=hbc83047_0
-  - libprotobuf=3.6.1=hd408876_0
-  - libsodium=1.0.16=h1bed415_0
-  - libssh2=1.8.0=h9cfc8f7_4
-  - libstdcxx-ng=8.2.0=hdf63c60_1
-  - libtiff=4.0.9=he85c1e1_2
-  - libtool=2.4.6=h7b6447c_5
-  - libuuid=1.0.3=h1bed415_2
-  - libxcb=1.13=h1bed415_1
-  - libxml2=2.9.8=h26e45fe_1
-  - libxslt=1.1.32=h1312cb7_0
-  - llvmlite=0.25.0=py36hd408876_0
-  - lxml=4.2.5=py36hefd8a0e_0
-  - lzo=2.10=h49e0be7_2
-  - markdown=3.0.1=py36_0
-  - markupsafe=1.0=py36h14c3975_1
-  - matplotlib=3.0.1=py36h5429711_0
-  - mccabe=0.6.1=py36_1
-  - mistune=0.8.4=py36h7b6447c_0
   - mkl=2018.0.3=1
   - mkl-service=1.1.2=py36h90e4bf4_5
   - mkl_fft=1.0.6=py36h7dd41cf_0
   - mkl_random=1.0.1=py36h4414c95_1
-  - mpc=1.1.0=h10f8cd9_1
-  - mpfr=4.0.1=hdf1c602_3
-  - mpmath=1.0.0=py36_2
-  - msgpack-python=0.5.6=py36h6bb024c_1
-  - multipledispatch=0.6.0=py36_0
-  - navigator-updater=0.2.1=py36_0
-  - nccl=1.3.5=cuda9.0_0
   - ncurses=6.1=hf484d3e_0
-  - networkx=2.2=py36_1
-  - ninja=1.8.2=py36h6bb024c_1
-  - nltk=3.3.0=py36_0
-  - numba=0.40.0=py36h962f231_0
-  - numexpr=2.6.8=py36hd89afb7_0
   - numpy=1.15.3=py36h1d66e8a_0
   - numpy-base=1.15.3=py36h81de0dd_0
-  - olefile=0.46=py36_0
-  - openpyxl=2.5.9=py36_0
-  - openssl=1.0.2p=h14c3975_0
-  - packaging=18.0=py36_0
   - pandas=0.23.4=py36h04863e7_0
-  - pandoc=2.2.3.2=0
-  - pandocfilters=1.4.2=py36_1
-  - pango=1.42.4=h049681c_0
-  - parso=0.3.1=py36_0
-  - partd=0.3.9=py36_0
-  - patchelf=0.9=he6710b0_3
-  - path.py=11.5.0=py36_0
-  - patsy=0.5.1=py36_0
-  - pcre=8.42=h439df22_0
-  - pep8=1.7.1=py36_0
-  - pillow=5.3.0=py36h34e0f95_0
   - pip=18.1=py36_0
-  - pixman=0.34.0=hceecf20_3
-  - pkginfo=1.4.2=py36_1
-  - pluggy=0.8.0=py36_0
-  - prometheus_client=0.4.2=py36_0
-  - prompt_toolkit=2.0.7=py36_0
-  - protobuf=3.6.1=py36he6710b0_0
   - psutil=5.4.8=py36h7b6447c_0
   - py=1.7.0=py36_0
-  - pyasn1=0.4.4=py36h28b3542_0
-  - pyasn1-modules=0.2.2=py36_0
-  - pycosat=0.6.3=py36h14c3975_0
-  - pycparser=2.19=py36_0
-  - pycrypto=2.6.1=py36h14c3975_9
-  - pycurl=7.43.0.2=py36hb7f436b_0
-  - pyflakes=2.0.0=py36_0
-  - pyhamcrest=1.9.0=py36_2
-  - pyodbc=4.0.24=py36he6710b0_0
-  - pyparsing=2.2.2=py36_0
-  - pyqt=5.9.2=py36h05f1152_2
-  - pysocks=1.6.8=py36_0
-  - pytables=3.4.4=py36ha205bf6_0
-  - pytest=3.9.3=py36_0
-  - pytest-arraydiff=0.2=py36h39e3cac_0
-  - pytest-astropy=0.4.0=py36_0
-  - pytest-doctestplus=0.1.3=py36_0
-  - pytest-openfiles=0.3.0=py36_0
-  - pytest-remotedata=0.3.1=py36_0
   - python=3.6.6=h6e4f718_2
-  - python-dateutil=2.7.5=py36_0
   - pytorch=0.4.1=py36ha74772b_0
-  - pytz=2018.7=py36_0
-  - pywavelets=1.0.1=py36hdd07704_0
-  - pyyaml=3.13=py36h14c3975_0
-  - pyzmq=17.1.2=py36h14c3975_0
-  - qt=5.9.6=h8703b6f_2
-  - qtawesome=0.5.2=py36_0
-  - qtpy=1.5.2=py36_0
-  - readline=7.0=h7b6447c_5
-  - redis=5.0.0=h7b6447c_0
-  - redis-py=2.10.6=py36_0
-  - rope=0.11.0=py36_0
-  - ruamel_yaml=0.15.46=py36h14c3975_0
-  - scikit-image=0.14.0=py36hf484d3e_1
-  - scikit-learn=0.20.0=py36h4989274_1
   - scipy=1.1.0=py36hfa4b5c9_1
-  - seaborn=0.9.0=py36_0
-  - send2trash=1.5.0=py36_0
-  - service_identity=17.0.0=py36h28b3542_0
-  - simplegeneric=0.8.1=py36_2
-  - sip=4.19.8=py36hf484d3e_0
-  - smart_open=1.7.1=py36_0
-  - snappy=1.1.7=hbae5bb6_3
-  - sockjs-tornado=1.0.6=py36_0
-  - sortedcontainers=2.0.5=py36_0
-  - sphinxcontrib=1.0=py36_1
-  - sphinxcontrib-websupport=1.1.0=py36_1
-  - spyder-kernels=0.2.6=py36_0
-  - sqlalchemy=1.2.12=py36h7b6447c_0
-  - sqlite=3.25.2=h7b6447c_0
-  - statsmodels=0.9.0=py36h035aef0_0
-  - tensorboard=1.11.0=py36hf484d3e_0
-  - tensorflow=1.11.0=gpu_py36h4459f94_0
-  - tensorflow-base=1.11.0=gpu_py36h8e0ae2d_0
-  - tensorflow-gpu=1.11.0=h0d30ee6_0
-  - tk=8.6.8=hbc83047_0
-  - toolz=0.9.0=py36_0
-  - tornado=5.1.1=py36h7b6447c_0
-  - tqdm=4.28.1=py36h28b3542_0
-  - twisted=18.9.0=py36h7b6447c_0
-  - typed-ast=1.1.0=py36h14c3975_0
-  - unixodbc=2.3.7=h14c3975_0
-  - webencodings=0.5.1=py36_1
-  - werkzeug=0.14.1=py36_0
-  - wrapt=1.10.11=py36h14c3975_2
-  - xlrd=1.1.0=py36_1
-  - xlsxwriter=1.1.2=py36_0
-  - xz=5.2.4=h14c3975_4
-  - yaml=0.1.7=had09818_2
-  - zeromq=4.2.5=hf484d3e_1
-  - zict=0.1.3=py36_0
-  - zlib=1.2.11=ha838bed_2
-  - zope=1.0=py36_1
-  - zope.interface=4.6.0=py36h7b6447c_0
+  - tensorboard=1.14
+  - tensorflow=1.14
+  - tensorflow-base=1.14
+  - tensorflow-gpu=1.14
   - cuda91=1.0=h4c16780_0
   - pip:
     - msgpack==0.5.6
diff --git a/llvm/projects/keras/keras_environment_minimal.yml b/llvm/projects/keras/keras_environment_minimal.yml
deleted file mode 100644
index 1f56f758bef1f136f4fe71f04fe17ed0e770f7db..0000000000000000000000000000000000000000
--- a/llvm/projects/keras/keras_environment_minimal.yml
+++ /dev/null
@@ -1,35 +0,0 @@
-name: approxhpvm_keras
-channels:
-  - pytorch
-  - conda-forge
-  - defaults
-dependencies:
-  - torchvision=0.2.1=py36_0
-  - _tflow_select=2.1.0=gpu
-  - keras=2.1.6=py36_0
-  - keras-applications=1.0.6=py36_0
-  - keras-preprocessing=1.0.5=py36_0
-  - mkl=2018.0.3=1
-  - mkl-service=1.1.2=py36h90e4bf4_5
-  - mkl_fft=1.0.6=py36h7dd41cf_0
-  - mkl_random=1.0.1=py36h4414c95_1
-  - ncurses=6.1=hf484d3e_0
-  - numpy=1.15.3=py36h1d66e8a_0
-  - numpy-base=1.15.3=py36h81de0dd_0
-  - pandas=0.23.4=py36h04863e7_0
-  - pip=18.1=py36_0
-  - psutil=5.4.8=py36h7b6447c_0
-  - py=1.7.0=py36_0
-  - python=3.6.6=h6e4f718_2
-  - pytorch=0.4.1=py36ha74772b_0
-  - scipy=1.1.0=py36hfa4b5c9_1
-  - tensorboard=1.14
-  - tensorflow=1.14
-  - tensorflow-base=1.14
-  - tensorflow-gpu=1.14
-  - cuda91=1.0=h4c16780_0
-  - pip:
-    - msgpack==0.5.6
-    - tables==3.4.4
-    - torch==0.4.1
-
diff --git a/llvm/projects/keras/generated/vgg16/approxhpvm_src.cc b/llvm/projects/keras/legacy/generated/vgg16/approxhpvm_src.cc
similarity index 100%
rename from llvm/projects/keras/generated/vgg16/approxhpvm_src.cc
rename to llvm/projects/keras/legacy/generated/vgg16/approxhpvm_src.cc
diff --git a/llvm/projects/keras/generated/vgg16/src.cc b/llvm/projects/keras/legacy/generated/vgg16/src.cc
similarity index 100%
rename from llvm/projects/keras/generated/vgg16/src.cc
rename to llvm/projects/keras/legacy/generated/vgg16/src.cc
diff --git a/llvm/projects/keras/legacy/keras_environment.yml b/llvm/projects/keras/legacy/keras_environment.yml
new file mode 100644
index 0000000000000000000000000000000000000000..caa3a773dfd8c7a82571a923bb1941997ba59ca9
--- /dev/null
+++ b/llvm/projects/keras/legacy/keras_environment.yml
@@ -0,0 +1,321 @@
+name: approxhpvm_keras
+channels:
+  - pytorch
+  - conda-forge
+  - defaults
+dependencies:
+  - absl-py=0.6.1=py36_0
+  - anaconda-project=0.8.2=py36_0
+  - asn1crypto=0.24.0=py36_0
+  - automat=0.7.0=py36_0
+  - babel=2.6.0=py36_0
+  - backports=1.0=py36_1
+  - backports.os=0.1.1=py36_0
+  - beautifulsoup4=4.6.3=py36_0
+  - bkcharts=0.2=py36_0
+  - blaze=0.11.3=py36_0
+  - conda=4.5.11=py36_0
+  - conda-env=2.6.0=1
+  - contextlib2=0.5.5=py36_0
+  - cycler=0.10.0=py36_0
+  - dill=0.2.8.2=py36_0
+  - docutils=0.14=py36_0
+  - entrypoints=0.2.3=py36_2
+  - et_xmlfile=1.0.1=py36_0
+  - idna=2.7=py36_0
+  - imageio=2.4.1=py36_0
+  - importlib_metadata=0.6=py36_0
+  - ipython_genutils=0.2.0=py36_0
+  - isort=4.3.4=py36_0
+  - jdcal=1.4=py36_0
+  - jedi=0.13.1=py36_0
+  - jinja2=2.10=py36_0
+  - jmespath=0.9.3=py36_0
+  - jsonschema=2.6.0=py36_0
+  - keyring=16.0.0=py36_0
+  - libgcc=7.2.0=h69d50b8_2
+  - libgfortran=3.0.0=1
+  - locket=0.2.0=py36_1
+  - more-itertools=4.3.0=py36_0
+  - nbconvert=5.3.1=py36_0
+  - nbformat=4.4.0=py36_0
+  - nose=1.3.7=py36_2
+  - notebook=5.7.0=py36_0
+  - numpydoc=0.8.0=py36_0
+  - odo=0.5.1=py36_0
+  - pathlib2=2.3.2=py36_0
+  - pexpect=4.6.0=py36_0
+  - pickleshare=0.7.5=py36_0
+  - ply=3.11=py36_0
+  - ptyprocess=0.6.0=py36_0
+  - pycodestyle=2.4.0=py36_0
+  - pygments=2.2.0=py36_0
+  - pylint=2.1.1=py36_0
+  - pyopenssl=18.0.0=py36_0
+  - qtconsole=4.4.2=py36_0
+  - requests=2.19.1=py36_0
+  - s3transfer=0.1.13=py36_0
+  - secretstorage=3.1.0=py36_0
+  - setuptools=40.5.0=py36_0
+  - singledispatch=3.4.0.3=py36_0
+  - six=1.11.0=py36_1
+  - snowballstemmer=1.2.1=py36_0
+  - sortedcollections=1.0.1=py36_0
+  - sphinx=1.8.1=py36_0
+  - spyder=3.3.1=py36_1
+  - sympy=1.3=py36_0
+  - tblib=1.3.2=py36_0
+  - termcolor=1.1.0=py36_1
+  - terminado=0.8.1=py36_1
+  - testpath=0.4.2=py36_0
+  - torchvision=0.2.1=py36_0
+  - traitlets=4.3.2=py36_0
+  - typing=3.6.4=py36_0
+  - unicodecsv=0.14.1=py36_0
+  - urllib3=1.23=py36_0
+  - wcwidth=0.1.7=py36_0
+  - wheel=0.32.2=py36_0
+  - widgetsnbextension=3.4.2=py36_0
+  - xlwt=1.3.0=py36_0
+  - _tflow_select=2.1.0=gpu
+  - alabaster=0.7.12=py36_0
+  - anaconda-client=1.7.2=py36_0
+  - anaconda=custom=py36hbbc8b67_0
+  - anaconda-navigator=1.9.2=py36_0
+  - appdirs=1.4.3=py36h28b3542_0
+  - astor=0.7.1=py36_0
+  - astroid=2.0.4=py36_0
+  - astropy=3.0.5=py36h7b6447c_0
+  - atomicwrites=1.2.1=py36_0
+  - attrs=18.2.0=py36h28b3542_0
+  - backcall=0.1.0=py36_0
+  - backports.shutil_get_terminal_size=1.0.0=py36_2
+  - bitarray=0.8.3=py36h14c3975_0
+  - blas=1.0=mkl
+  - bleach=3.0.2=py36_0
+  - blosc=1.14.4=hdbcaa40_0
+  - bokeh=1.0.1=py36_0
+  - boto=2.49.0=py36_0
+  - boto3=1.9.35=py36_0
+  - botocore=1.12.35=py36_0
+  - bottleneck=1.2.1=py36h035aef0_1
+  - bz2file=0.98=py36_1
+  - bzip2=1.0.6=h14c3975_5
+  - ca-certificates=2018.03.07=0
+  - cairo=1.14.12=h8948797_3
+  - certifi=2018.10.15=py36_0
+  - cffi=1.11.5=py36he75722e_1
+  - chardet=3.0.4=py36_1
+  - chest=0.2.3=py36_1
+  - click=7.0=py36_0
+  - cloudpickle=0.6.1=py36_0
+  - clyent=1.2.2=py36_1
+  - colorama=0.4.0=py36_0
+  - configobj=5.0.6=py36_1
+  - constantly=15.1.0=py36h28b3542_0
+  - cryptography=2.3.1=py36hc365091_0
+  - cudatoolkit=9.0=h13b8566_0
+  - cudnn=7.1.2=cuda9.0_0
+  - cupti=9.0.176=0
+  - curl=7.61.0=h84994c4_0
+  - cython=0.29=py36he6710b0_0
+  - cytoolz=0.9.0.1=py36h14c3975_1
+  - dask=0.20.0=py36_0
+  - dask-core=0.20.0=py36_0
+  - datashape=0.5.4=py36_1
+  - dbus=1.13.2=h714fa37_1
+  - decorator=4.3.0=py36_0
+  - defusedxml=0.5.0=py36_1
+  - distributed=1.24.0=py36_0
+  - expat=2.2.6=he6710b0_0
+  - fastcache=1.0.2=py36h14c3975_2
+  - filelock=3.0.10=py36_0
+  - flask=1.0.2=py36_1
+  - flask-cors=3.0.6=py36_0
+  - fontconfig=2.13.0=h9420a91_0
+  - freetype=2.9.1=h8a8886c_1
+  - fribidi=1.0.5=h7b6447c_0
+  - gast=0.2.0=py36_0
+  - gensim=3.4.0=py36h14c3975_0
+  - get_terminal_size=1.0.0=haa9412d_0
+  - gevent=1.3.7=py36h7b6447c_1
+  - glib=2.56.2=hd408876_0
+  - glob2=0.6=py36_1
+  - gmp=6.1.2=h6c8ec71_1
+  - gmpy2=2.0.8=py36h10f8cd9_2
+  - graphite2=1.3.12=h23475e2_2
+  - greenlet=0.4.15=py36h7b6447c_0
+  - grpcio=1.12.1=py36hdbcaa40_0
+  - gst-plugins-base=1.14.0=hbbd80ab_1
+  - gstreamer=1.14.0=hb453b48_1
+  - h5py=2.8.0=py36h989c5e5_3
+  - harfbuzz=1.8.8=hffaf4a1_0
+  - hdf5=1.10.2=hba1933b_1
+  - heapdict=1.0.0=py36_2
+  - html5lib=1.0.1=py36_0
+  - hyperlink=18.0.0=py36_0
+  - icu=58.2=h9c2bf20_1
+  - imagesize=1.1.0=py36_0
+  - incremental=17.5.0=py36_0
+  - ipykernel=5.1.0=py36h39e3cac_0
+  - ipython=7.1.1=py36h39e3cac_0
+  - ipywidgets=7.4.2=py36_0
+  - itsdangerous=1.1.0=py36_0
+  - jbig=2.1=hdba287a_0
+  - jeepney=0.4=py36_0
+  - jpeg=9b=h024ee3a_2
+  - keras=2.1.6=py36_0
+  - keras-applications=1.0.6=py36_0
+  - keras-preprocessing=1.0.5=py36_0
+  - kiwisolver=1.0.1=py36hf484d3e_0
+  - lazy-object-proxy=1.3.1=py36h14c3975_2
+  - libcurl=7.61.0=h1ad7b7a_0
+  - libedit=3.1.20170329=h6b74fdf_2
+  - libffi=3.2.1=hd88cf55_4
+  - libgcc-ng=8.2.0=hdf63c60_1
+  - libgfortran-ng=7.3.0=hdf63c60_0
+  - libiconv=1.15=h63c8f33_5
+  - libpng=1.6.35=hbc83047_0
+  - libprotobuf=3.6.1=hd408876_0
+  - libsodium=1.0.16=h1bed415_0
+  - libssh2=1.8.0=h9cfc8f7_4
+  - libstdcxx-ng=8.2.0=hdf63c60_1
+  - libtiff=4.0.9=he85c1e1_2
+  - libtool=2.4.6=h7b6447c_5
+  - libuuid=1.0.3=h1bed415_2
+  - libxcb=1.13=h1bed415_1
+  - libxml2=2.9.8=h26e45fe_1
+  - libxslt=1.1.32=h1312cb7_0
+  - llvmlite=0.25.0=py36hd408876_0
+  - lxml=4.2.5=py36hefd8a0e_0
+  - lzo=2.10=h49e0be7_2
+  - markdown=3.0.1=py36_0
+  - markupsafe=1.0=py36h14c3975_1
+  - matplotlib=3.0.1=py36h5429711_0
+  - mccabe=0.6.1=py36_1
+  - mistune=0.8.4=py36h7b6447c_0
+  - mkl=2018.0.3=1
+  - mkl-service=1.1.2=py36h90e4bf4_5
+  - mkl_fft=1.0.6=py36h7dd41cf_0
+  - mkl_random=1.0.1=py36h4414c95_1
+  - mpc=1.1.0=h10f8cd9_1
+  - mpfr=4.0.1=hdf1c602_3
+  - mpmath=1.0.0=py36_2
+  - msgpack-python=0.5.6=py36h6bb024c_1
+  - multipledispatch=0.6.0=py36_0
+  - navigator-updater=0.2.1=py36_0
+  - nccl=1.3.5=cuda9.0_0
+  - ncurses=6.1=hf484d3e_0
+  - networkx=2.2=py36_1
+  - ninja=1.8.2=py36h6bb024c_1
+  - nltk=3.3.0=py36_0
+  - numba=0.40.0=py36h962f231_0
+  - numexpr=2.6.8=py36hd89afb7_0
+  - numpy=1.15.3=py36h1d66e8a_0
+  - numpy-base=1.15.3=py36h81de0dd_0
+  - olefile=0.46=py36_0
+  - openpyxl=2.5.9=py36_0
+  - openssl=1.0.2p=h14c3975_0
+  - packaging=18.0=py36_0
+  - pandas=0.23.4=py36h04863e7_0
+  - pandoc=2.2.3.2=0
+  - pandocfilters=1.4.2=py36_1
+  - pango=1.42.4=h049681c_0
+  - parso=0.3.1=py36_0
+  - partd=0.3.9=py36_0
+  - patchelf=0.9=he6710b0_3
+  - path.py=11.5.0=py36_0
+  - patsy=0.5.1=py36_0
+  - pcre=8.42=h439df22_0
+  - pep8=1.7.1=py36_0
+  - pillow=5.3.0=py36h34e0f95_0
+  - pip=18.1=py36_0
+  - pixman=0.34.0=hceecf20_3
+  - pkginfo=1.4.2=py36_1
+  - pluggy=0.8.0=py36_0
+  - prometheus_client=0.4.2=py36_0
+  - prompt_toolkit=2.0.7=py36_0
+  - protobuf=3.6.1=py36he6710b0_0
+  - psutil=5.4.8=py36h7b6447c_0
+  - py=1.7.0=py36_0
+  - pyasn1=0.4.4=py36h28b3542_0
+  - pyasn1-modules=0.2.2=py36_0
+  - pycosat=0.6.3=py36h14c3975_0
+  - pycparser=2.19=py36_0
+  - pycrypto=2.6.1=py36h14c3975_9
+  - pycurl=7.43.0.2=py36hb7f436b_0
+  - pyflakes=2.0.0=py36_0
+  - pyhamcrest=1.9.0=py36_2
+  - pyodbc=4.0.24=py36he6710b0_0
+  - pyparsing=2.2.2=py36_0
+  - pyqt=5.9.2=py36h05f1152_2
+  - pysocks=1.6.8=py36_0
+  - pytables=3.4.4=py36ha205bf6_0
+  - pytest=3.9.3=py36_0
+  - pytest-arraydiff=0.2=py36h39e3cac_0
+  - pytest-astropy=0.4.0=py36_0
+  - pytest-doctestplus=0.1.3=py36_0
+  - pytest-openfiles=0.3.0=py36_0
+  - pytest-remotedata=0.3.1=py36_0
+  - python=3.6.6=h6e4f718_2
+  - python-dateutil=2.7.5=py36_0
+  - pytorch=0.4.1=py36ha74772b_0
+  - pytz=2018.7=py36_0
+  - pywavelets=1.0.1=py36hdd07704_0
+  - pyyaml=3.13=py36h14c3975_0
+  - pyzmq=17.1.2=py36h14c3975_0
+  - qt=5.9.6=h8703b6f_2
+  - qtawesome=0.5.2=py36_0
+  - qtpy=1.5.2=py36_0
+  - readline=7.0=h7b6447c_5
+  - redis=5.0.0=h7b6447c_0
+  - redis-py=2.10.6=py36_0
+  - rope=0.11.0=py36_0
+  - ruamel_yaml=0.15.46=py36h14c3975_0
+  - scikit-image=0.14.0=py36hf484d3e_1
+  - scikit-learn=0.20.0=py36h4989274_1
+  - scipy=1.1.0=py36hfa4b5c9_1
+  - seaborn=0.9.0=py36_0
+  - send2trash=1.5.0=py36_0
+  - service_identity=17.0.0=py36h28b3542_0
+  - simplegeneric=0.8.1=py36_2
+  - sip=4.19.8=py36hf484d3e_0
+  - smart_open=1.7.1=py36_0
+  - snappy=1.1.7=hbae5bb6_3
+  - sockjs-tornado=1.0.6=py36_0
+  - sortedcontainers=2.0.5=py36_0
+  - sphinxcontrib=1.0=py36_1
+  - sphinxcontrib-websupport=1.1.0=py36_1
+  - spyder-kernels=0.2.6=py36_0
+  - sqlalchemy=1.2.12=py36h7b6447c_0
+  - sqlite=3.25.2=h7b6447c_0
+  - statsmodels=0.9.0=py36h035aef0_0
+  - tensorboard=1.11.0=py36hf484d3e_0
+  - tensorflow=1.11.0=gpu_py36h4459f94_0
+  - tensorflow-base=1.11.0=gpu_py36h8e0ae2d_0
+  - tensorflow-gpu=1.11.0=h0d30ee6_0
+  - tk=8.6.8=hbc83047_0
+  - toolz=0.9.0=py36_0
+  - tornado=5.1.1=py36h7b6447c_0
+  - tqdm=4.28.1=py36h28b3542_0
+  - twisted=18.9.0=py36h7b6447c_0
+  - typed-ast=1.1.0=py36h14c3975_0
+  - unixodbc=2.3.7=h14c3975_0
+  - webencodings=0.5.1=py36_1
+  - werkzeug=0.14.1=py36_0
+  - wrapt=1.10.11=py36h14c3975_2
+  - xlrd=1.1.0=py36_1
+  - xlsxwriter=1.1.2=py36_0
+  - xz=5.2.4=h14c3975_4
+  - yaml=0.1.7=had09818_2
+  - zeromq=4.2.5=hf484d3e_1
+  - zict=0.1.3=py36_0
+  - zlib=1.2.11=ha838bed_2
+  - zope=1.0=py36_1
+  - zope.interface=4.6.0=py36h7b6447c_0
+  - cuda91=1.0=h4c16780_0
+  - pip:
+    - msgpack==0.5.6
+    - tables==3.4.4
+    - torch==0.4.1
+
diff --git a/llvm/projects/keras/keras_environment_deps.yml b/llvm/projects/keras/legacy/keras_environment_deps.yml
similarity index 100%
rename from llvm/projects/keras/keras_environment_deps.yml
rename to llvm/projects/keras/legacy/keras_environment_deps.yml
diff --git a/llvm/projects/keras/src/Benchmark.py b/llvm/projects/keras/src/Benchmark.py
index fc3b483fbc9b34dc99455ba6e61fcc7eea79f24a..e83a78f4ea5d776a21ed6a6b47ccdb840f42c129 100644
--- a/llvm/projects/keras/src/Benchmark.py
+++ b/llvm/projects/keras/src/Benchmark.py
@@ -7,7 +7,7 @@ from keras.utils.np_utils import to_categorical
 from keras.models import load_model
 from frontend.approxhpvm_translator import translate_to_approxhpvm
 from frontend.weight_utils import dumpCalibrationData
-from frontend.weight_utils import dumpHPVMToKerasModel
+from frontend.weight_utils import reloadHPVMWeights
 
 
 # Every CNN Benchmark must inherit from Benchmark class
@@ -47,14 +47,19 @@ class Benchmark:
 
         # Cmake ../
         # make
-        
 
-    def run(self, argv):
 
-      if len(argv) < 2:
-        print ("Usage: python ${benchmark.py} [hpvm_reload|keras_reload|train] [frontend] [compile]")   
+    def printUsage(self):
+
+        print ("Usage: python ${benchmark.py} [hpvm_reload|keras_reload|train] [frontend] [compile]")
         sys.exit(0)
 
+        
+    def run(self, argv):
+
+      if len(argv) < 2:
+          self.printUsage()
+          
       # Virtual method call implemented by each CNN
       model = self.buildModel()
 
@@ -62,14 +67,19 @@ class Benchmark:
       X_train, Y_train, X_test, Y_test = self.data_preprocess()   
 
       if argv[1] == "hpvm_reload":
-        model = dumpHPVMToKerasModel(model, self.reload_dir, self.keras_model_file, X_test, Y_test)
+        print ("loading weights .....\n\n")  
+        model = reloadHPVMWeights(model, self.reload_dir, self.keras_model_file, X_test, Y_test)
 
-      if argv[1] == "keras_reload":
+      elif argv[1] == "keras_reload":
         model = load_model(self.keras_model_file)
 
-      if argv[1] == "train":
+      elif argv[1] == "train":
         model = self.trainModel(model)
 
+      else:
+          self.printUsage()
+
+          
       score = model.evaluate(X_test, to_categorical(Y_test, self.num_classes), verbose=0)
       print('Test accuracy2:', score[1])
 
@@ -81,10 +91,15 @@ class Benchmark:
 
         # Main call to ApproxHPVM-Keras Frontend
         working_dir = translate_to_approxhpvm(model, self.hpvm_dir, X_test, Y_test, self.num_classes)
-        print ("*** working_dir = ", working_dir)
+        #-- print ("*** working_dir = ", working_dir)
         
         if len(argv) > 3 and argv[3] == "compile":
           self.compileSource(working_dir)
-        
 
+        else:
+          self.printUsage()
+
+      elif len(argv) > 2:
+        self.printUsage()
+            
 
diff --git a/llvm/projects/keras/src/alexnet.py b/llvm/projects/keras/src/alexnet.py
index d7848a2b6388e506583772caf9f39efd787df27d..9bfe80a156ae21e9befea3a6872b63758e37e2a3 100644
--- a/llvm/projects/keras/src/alexnet.py
+++ b/llvm/projects/keras/src/alexnet.py
@@ -19,9 +19,7 @@ import keras
 import numpy as np
 import os
 from Benchmark import Benchmark
-from frontend.approxhpvm_translator import translate_to_approxhpvm
-from frontend.weight_utils import dumpCalibrationData
-from frontend.weight_utils import dumpHPVMToKerasModel
+
 
 
 
@@ -46,6 +44,8 @@ class AlexNet(Benchmark):
 
   def buildModel(self):
 
+      print ("BuildModel ...")
+      
       activation_type = "tanh"
       weight_decay = 1e-4
 
@@ -138,16 +138,20 @@ class AlexNet(Benchmark):
 
   def data_preprocess(self):
 
+    print ("Data Preprocess... \n")
+    
     (X_train, Y_train), (X_test, Y_test) = cifar10.load_data()
 
+    print ("Data Loaded... \n")    
+    
     X_train = X_train / 255.0
     X_test = X_test / 255.0
-
+     
     mean = np.mean(X_train,axis=(0,1,2,3))
     std = np.std(X_train,axis=(0,1,2,3))   
     X_train = (X_train-mean)/(std+1e-7)
     X_test = (X_test-mean)/(std+1e-7)  
-
+    
     return X_train, Y_train, X_test, Y_test
 
 
diff --git a/llvm/projects/keras/src/alexnet_imagenet.py b/llvm/projects/keras/src/alexnet_imagenet.py
index 0e8425b8259a7361064fb189c77af0dc389cda66..41cf2d837cf8ba764b614512f40a0f6c0522ab3d 100644
--- a/llvm/projects/keras/src/alexnet_imagenet.py
+++ b/llvm/projects/keras/src/alexnet_imagenet.py
@@ -30,10 +30,10 @@ data_format = 'channels_first'
 
 IMAGENET_DIR = '/home/nz11/ILSVRC2012/'
 OUTPUT_DIR = 'data/alexnet_imagenet_tune/'
-WEIGHTS_PATH = 'data/weights.h5'
+WEIGHTS_PATH = 'data/alexnet_imagenet_tune/weights.h5'
 
 NUM_CLASSES = 200
-IMAGES_PER_CLASS = 40
+IMAGES_PER_CLASS = 50
 # VAL_SIZE = 100
 
 
@@ -183,6 +183,9 @@ y_true = np.array(y_true)
 X_tune = np.array(X_tune)
 y_tune = np.array(y_tune)
 
+print ('tune size', len(X_tune))
+print ('test size', len(X_test))
+
 
 
 
@@ -233,16 +236,16 @@ model.compile(optimizer=keras.optimizers.Adam(lr=0.00001), loss='categorical_cro
 if os.path.exists(WEIGHTS_PATH):
     model.load_weights(WEIGHTS_PATH)
 else:
-    model.fit_generator(generate(), steps_per_epoch=1000, validation_data=(X_test, to_categorical(y_true, num_classes=1000)), epochs=2)
-    K.set_value(model.optimizer.lr, 0.000001)
-    model.fit_generator(generate(), steps_per_epoch=1000, validation_data=(X_test, to_categorical(y_true, num_classes=1000)), epochs=6)
-    model.save_weights('data/weights.h5')
+    pass
+#     model.fit_generator(generate(), steps_per_epoch=1000, validation_data=(X_test, to_categorical(y_true, num_classes=1000)), epochs=3)
+#     K.set_value(model.optimizer.lr, 0.000001)
+#     model.fit_generator(generate(), steps_per_epoch=1000, validation_data=(X_test, to_categorical(y_true, num_classes=1000)), epochs=3)
 
 translate_to_approxhpvm(model, OUTPUT_DIR, X_tune, y_tune, 1000)
 
-# dumpCalibrationData2(OUTPUT_DIR + 'test_input_10K.bin', X_test, OUTPUT_DIR + 'test_labels_10K.bin', y_true)
-dumpCalibrationData2(OUTPUT_DIR + 'tune_input.bin', X_tune, OUTPUT_DIR + 'tune_labels.bin', y_tune)
-dumpCalibrationData2(OUTPUT_DIR + 'test_input.bin', X_test, OUTPUT_DIR + 'test_labels.bin', y_true)
+# # dumpCalibrationData2(OUTPUT_DIR + 'test_input_10K.bin', X_test, OUTPUT_DIR + 'test_labels_10K.bin', y_true)
+# dumpCalibrationData2(OUTPUT_DIR + 'tune_input.bin', X_tune, OUTPUT_DIR + 'tune_labels.bin', y_tune)
+# dumpCalibrationData2(OUTPUT_DIR + 'test_input.bin', X_test, OUTPUT_DIR + 'test_labels.bin', y_true)
 
 
 pred = np.argmax(model.predict(X_test), axis=1)
@@ -250,4 +253,7 @@ print ('val accuracy', np.sum(pred == y_true.ravel()) / len(X_test))
     
 pred = np.argmax(model.predict(X_tune), axis=1)
 print ('val accuracy', np.sum(pred == y_tune.ravel()) / len(X_tune))
+
+model.save_weights(OUTPUT_DIR + '/weights.h5')
+
     
\ No newline at end of file
diff --git a/llvm/projects/keras/src/lenet_conv_test.py b/llvm/projects/keras/src/legacy/lenet_conv_test.py
similarity index 100%
rename from llvm/projects/keras/src/lenet_conv_test.py
rename to llvm/projects/keras/src/legacy/lenet_conv_test.py
diff --git a/llvm/projects/keras/src/mobilenet_imagenet.py b/llvm/projects/keras/src/legacy/mobilenet_imagenet.py
similarity index 100%
rename from llvm/projects/keras/src/mobilenet_imagenet.py
rename to llvm/projects/keras/src/legacy/mobilenet_imagenet.py
diff --git a/llvm/projects/keras/src/mobilenet_shallow.py b/llvm/projects/keras/src/legacy/mobilenet_shallow.py
similarity index 100%
rename from llvm/projects/keras/src/mobilenet_shallow.py
rename to llvm/projects/keras/src/legacy/mobilenet_shallow.py
diff --git a/llvm/projects/keras/src/mobilenetv2_cifar10.py b/llvm/projects/keras/src/legacy/mobilenetv2_cifar10.py
similarity index 100%
rename from llvm/projects/keras/src/mobilenetv2_cifar10.py
rename to llvm/projects/keras/src/legacy/mobilenetv2_cifar10.py
diff --git a/llvm/projects/keras/src/resnet.py b/llvm/projects/keras/src/resnet18_cifar10.py
similarity index 100%
rename from llvm/projects/keras/src/resnet.py
rename to llvm/projects/keras/src/resnet18_cifar10.py
diff --git a/llvm/projects/keras/src/resnet50_imagenet.py b/llvm/projects/keras/src/resnet50_imagenet.py
index b4d9925a085e6e510c4d2707f9564cfe28a53765..55d0918b7a526ba1a9866d2d8e3b0e2e8608cc25 100644
--- a/llvm/projects/keras/src/resnet50_imagenet.py
+++ b/llvm/projects/keras/src/resnet50_imagenet.py
@@ -29,7 +29,7 @@ data_format = 'channels_first'
 
 
 IMAGENET_DIR = '/home/nz11/ILSVRC2012/'
-OUTPUT_DIR = 'data/resnet50_imagenet_tune/'
+OUTPUT_DIR = 'data/resnet50_imagenet_tune_regenerate/'
 WEIGHTS_PATH = 'data/resnet50_imagenet/weights.h5'
 
 NUM_CLASSES = 200
@@ -217,6 +217,9 @@ y_true = np.array(y_true)
 X_tune = np.array(X_tune)
 y_tune = np.array(y_tune)
 
+print ('tune size', len(X_tune))
+print ('test size', len(X_test))
+
 
 
 
@@ -267,19 +270,20 @@ model.compile(optimizer=keras.optimizers.Adam(lr=0.00001), loss='categorical_cro
 if os.path.exists(WEIGHTS_PATH):
     model.load_weights(WEIGHTS_PATH)
 else:
-    model.fit_generator(generate(), steps_per_epoch=1000, validation_data=(X_test, to_categorical(y_true, num_classes=1000)), epochs=6)
-    model.save_weights(OUTPUT_DIR + 'weights.h5')
+    pass
+#     model.fit_generator(generate(), steps_per_epoch=1000, validation_data=(X_test, to_categorical(y_true, num_classes=1000)), epochs=6)
+#     model.save_weights(OUTPUT_DIR + 'weights.h5')
 
 translate_to_approxhpvm(model, OUTPUT_DIR, X_tune, y_tune, 1000)
 
-# dumpCalibrationData2(OUTPUT_DIR + 'test_input_10K.bin', X_test, OUTPUT_DIR + 'test_labels_10K.bin', y_true)
-dumpCalibrationData2(OUTPUT_DIR + 'tune_input.bin', X_tune, OUTPUT_DIR + 'tune_labels.bin', y_tune)
-dumpCalibrationData2(OUTPUT_DIR + 'test_input.bin', X_test, OUTPUT_DIR + 'test_labels.bin', y_true)
+# # dumpCalibrationData2(OUTPUT_DIR + 'test_input_10K.bin', X_test, OUTPUT_DIR + 'test_labels_10K.bin', y_true)
+# dumpCalibrationData2(OUTPUT_DIR + 'tune_input.bin', X_tune, OUTPUT_DIR + 'tune_labels.bin', y_tune)
+# dumpCalibrationData2(OUTPUT_DIR + 'test_input.bin', X_test, OUTPUT_DIR + 'test_labels.bin', y_true)
 
 
 pred = np.argmax(model.predict(X_test), axis=1)
 print ('val accuracy', np.sum(pred == y_true.ravel()) / len(X_test))
     
-pred = np.argmax(model.predict(X_tune), axis=1)
-print ('val accuracy', np.sum(pred == y_tune.ravel()) / len(X_tune))
+# pred = np.argmax(model.predict(X_tune), axis=1)
+# print ('val accuracy', np.sum(pred == y_tune.ravel()) / len(X_tune))
     
\ No newline at end of file
diff --git a/llvm/projects/keras/src/vgg16_imagenet.py b/llvm/projects/keras/src/vgg16_imagenet.py
index 4f24e6b184911537dc425f4db0200f3f0836a48c..b41df8b83a966495d6a1c8281745e91181a66c41 100644
--- a/llvm/projects/keras/src/vgg16_imagenet.py
+++ b/llvm/projects/keras/src/vgg16_imagenet.py
@@ -32,7 +32,7 @@ IMAGENET_DIR = '/home/nz11/ILSVRC2012/'
 OUTPUT_DIR = 'data/vgg16_imagenet_tune/'
 
 NUM_CLASSES = 200
-IMAGES_PER_CLASS = 40
+IMAGES_PER_CLASS = 50
 # VAL_SIZE = 100
 
 
@@ -212,18 +212,22 @@ y_true = np.array(y_true)
 X_tune = np.array(X_tune)
 y_tune = np.array(y_tune)
 
+print ('tune size', len(X_tune))
+print ('test size', len(X_test))
+
 
 
 translate_to_approxhpvm(model, OUTPUT_DIR, X_tune, y_tune, 1000)
 
-# dumpCalibrationData2(OUTPUT_DIR + 'test_input_10K.bin', X_test, OUTPUT_DIR + 'test_labels_10K.bin', y_true)
-dumpCalibrationData2(OUTPUT_DIR + 'tune_input.bin', X_tune, OUTPUT_DIR + 'tune_labels.bin', y_tune)
-dumpCalibrationData2(OUTPUT_DIR + 'test_input.bin', X_test, OUTPUT_DIR + 'test_labels.bin', y_true)
+# # dumpCalibrationData2(OUTPUT_DIR + 'test_input_10K.bin', X_test, OUTPUT_DIR + 'test_labels_10K.bin', y_true)
+# dumpCalibrationData2(OUTPUT_DIR + 'tune_input.bin', X_tune, OUTPUT_DIR + 'tune_labels.bin', y_tune)
+# dumpCalibrationData2(OUTPUT_DIR + 'test_input.bin', X_test, OUTPUT_DIR + 'test_labels.bin', y_true)
 
 
 
 pred = np.argmax(model.predict(X_test), axis=1)
 print ('val accuracy', np.sum(pred == y_true.ravel()) / len(X_test))
     
-pred = np.argmax(model.predict(X_tune), axis=1)
-print ('val accuracy', np.sum(pred == y_tune.ravel()) / len(X_tune))
+# pred = np.argmax(model.predict(X_tune), axis=1)
+# print ('val accuracy', np.sum(pred == y_tune.ravel()) / len(X_tune))
+
diff --git a/llvm/test/VISC/DNN_Benchmarks/benchmarks/alexnet/Makefile b/llvm/test/VISC/DNN_Benchmarks/benchmarks/alexnet/Makefile
index fb23f70f66e85a77ae057c4d2edb989097723987..32cc431640742ce8e8323bec1ea74f0a1f5e202d 100644
--- a/llvm/test/VISC/DNN_Benchmarks/benchmarks/alexnet/Makefile
+++ b/llvm/test/VISC/DNN_Benchmarks/benchmarks/alexnet/Makefile
@@ -1,6 +1,4 @@
 DNN_BENCHMARK_ROOT = $(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks
-# NOTE: can configure build directory
-#HPVM_BUILD_DIR = $(LLVM_SRC_ROOT)/../build_hpvm/
 HPVM_BUILD_DIR = $(LLVM_BUILD_ROOT)
 
 CC = $(HPVM_BUILD_DIR)/bin/clang++
@@ -49,36 +47,28 @@ TARGET = $(BUILD_DIR)/$(APP).opt.bc
 SOURCES = $(SRC_DIR)/$(APP).cpp
 VISC_RT_PATH = $(LLVM_SRC_ROOT)/../build/projects/visc-rt/visc-rt.ll
 
-#OBJS = $(BUILD_DIR)/$(wildcabrd *.ll)
+
 .PRECIOUS: $(BUILD_DIR)/$(APP).ll $(BUILD_DIR)/$(APP).visc.ll
 default: $(BUILD_DIR) $(TARGET)
 
 
 $(BUILD_DIR)/%.ll: $(SRC_DIR)/%.cpp
 	$(CC) $(CC_FLAGS) -emit-llvm src/$(APP).cpp -S -o  $(BUILD_DIR)/$(APP).ll  
-	$(CC) $(CC_FLAGS) -emit-llvm src/$(APP)_promise.cpp -S -o $(BUILD_DIR)/$(APP)_promise.ll
 	$(CC) $(CC_FLAGS) -emit-llvm src/$(APP)_loop.cpp -S -o  $(BUILD_DIR)/$(APP)_loop.ll  
 
 
 $(BUILD_DIR)/%.opt.bc: $(BUILD_DIR)/%.ll
 	$(OPT) -load LLVMGenVISC.so -genvisc -globaldce  $(BUILD_DIR)/$(APP).ll -S -o  $(BUILD_DIR)/$(APP).visc.ll
-	$(OPT) -load LLVMGenVISC.so -genvisc -globaldce  $(BUILD_DIR)/$(APP)_promise.ll -S -o  $(BUILD_DIR)/$(APP)_promise.visc.ll
 	$(OPT) -load LLVMGenVISC.so -genvisc -globaldce  $(BUILD_DIR)/$(APP)_loop.ll -S -o  $(BUILD_DIR)/$(APP)_loop.visc.ll
 	$(OPT) $(VISC_OPTFLAGS)  $(BUILD_DIR)/$(APP).visc.ll  -o  $(BUILD_DIR)/$(APP)_cudnn.bc
-	#$(OPT) $(VISC_OPTFLAGS2) $(BUILD_DIR)/$(APP)_promise.visc.ll  -o  $(BUILD_DIR)/$(APP)_promise.bc
-	$(OPT) $(VISC_OPTFLAGS3) $(BUILD_DIR)/$(APP)_promise.visc.ll  -o  $(BUILD_DIR)/$(APP)_wrapperapi.bc
 	$(OPT) $(VISC_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.visc.ll  -o  $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc
 	$(OPT) $(VISC_PRED_OPTFLAGS3) $(BUILD_DIR)/$(APP)_promise.visc.ll  -o  $(BUILD_DIR)/$(APP)_pred_wrapperapi.bc
 	$(OPT) $(VISC_PRED_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.visc.ll  -o  $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc
 	$(LLVM_LINK) $(BUILD_DIR)/$(APP)_cudnn.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_cudnn_linked.bc
-	#$(LLVM_LINK) $(BUILD_DIR)/$(APP)_promise.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_promise_linked.bc
-	$(LLVM_LINK) $(BUILD_DIR)/$(APP)_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_wrapperapi_linked.bc
 	$(LLVM_LINK) $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked.bc
 	$(LLVM_LINK) $(BUILD_DIR)/$(APP)_pred_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_pred_wrapperapi_linked.bc
 	$(LLVM_LINK) $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked.bc
 	$(CC) $(BUILD_DIR)/$(APP)_cudnn_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_cudnn_linked $(LINKER_FLAGS)
-	#$(CC) $(BUILD_DIR)/$(APP)_promise_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_promise_linked $(LINKER_FLAGS)
-	$(CC) $(BUILD_DIR)/$(APP)_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_wrapperapi_linked $(LINKER_FLAGS)
 	$(CC) $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked $(LINKER_FLAGS)
 	$(CC) $(BUILD_DIR)/$(APP)_pred_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_pred_wrapperapi_linked $(LINKER_FLAGS)
 	$(CC) $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked $(LINKER_FLAGS)
diff --git a/llvm/test/VISC/DNN_Benchmarks/benchmarks/alexnet/src/alexnet_loop.cpp b/llvm/test/VISC/DNN_Benchmarks/benchmarks/alexnet/src/alexnet_loop.cpp
index 09e6e25cffe18e375575bf83ebd4283e4295e7e4..246fa5f32d1bd1e2ab29867b25ce648558b0cb20 100644
--- a/llvm/test/VISC/DNN_Benchmarks/benchmarks/alexnet/src/alexnet_loop.cpp
+++ b/llvm/test/VISC/DNN_Benchmarks/benchmarks/alexnet/src/alexnet_loop.cpp
@@ -440,12 +440,11 @@ int main(){
   int test_input_size = 5000;
   int batch_count = test_input_size / batch_size; 
   
-  // void* input = create4DTensor(0,nchw,batch_size,3,32,32);
 
   startMemTracking();
   startProfiling();
 
-  for (int j = 0; j < 14; j++){
+  for (int j = 0; j < 1; j++){
     for (int i = 0; i < batch_count; i++){
     
       int start = i * batch_size;
diff --git a/llvm/test/VISC/DNN_Benchmarks/benchmarks/alexnet2/Makefile b/llvm/test/VISC/DNN_Benchmarks/benchmarks/alexnet2/Makefile
index cae7df33de24e4d20e2d0d2b0977709a1865c9a8..4d4821a922507a257c9040af24adbcabe9dbf673 100644
--- a/llvm/test/VISC/DNN_Benchmarks/benchmarks/alexnet2/Makefile
+++ b/llvm/test/VISC/DNN_Benchmarks/benchmarks/alexnet2/Makefile
@@ -1,6 +1,4 @@
 DNN_BENCHMARK_ROOT = $(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks
-# NOTE: can configure build directory
-#HPVM_BUILD_DIR = $(LLVM_SRC_ROOT)/../build_hpvm/
 HPVM_BUILD_DIR = $(LLVM_BUILD_ROOT)
 
 CC = $(HPVM_BUILD_DIR)/bin/clang++
@@ -49,36 +47,28 @@ TARGET = $(BUILD_DIR)/$(APP).opt.bc
 SOURCES = $(SRC_DIR)/$(APP).cpp
 VISC_RT_PATH = $(LLVM_SRC_ROOT)/../build/projects/visc-rt/visc-rt.ll
 
-#OBJS = $(BUILD_DIR)/$(wildcabrd *.ll)
+
 .PRECIOUS: $(BUILD_DIR)/$(APP).ll $(BUILD_DIR)/$(APP).visc.ll
 default: $(BUILD_DIR) $(TARGET)
 
 
 $(BUILD_DIR)/%.ll: $(SRC_DIR)/%.cpp
 	$(CC) $(CC_FLAGS) -emit-llvm src/$(APP).cpp -S -o  $(BUILD_DIR)/$(APP).ll  
-	$(CC) $(CC_FLAGS) -emit-llvm src/$(APP)_promise.cpp -S -o $(BUILD_DIR)/$(APP)_promise.ll
 	$(CC) $(CC_FLAGS) -emit-llvm src/$(APP)_loop.cpp -S -o  $(BUILD_DIR)/$(APP)_loop.ll  
 
 
 $(BUILD_DIR)/%.opt.bc: $(BUILD_DIR)/%.ll
 	$(OPT) -load LLVMGenVISC.so -genvisc -globaldce  $(BUILD_DIR)/$(APP).ll -S -o  $(BUILD_DIR)/$(APP).visc.ll
-	$(OPT) -load LLVMGenVISC.so -genvisc -globaldce  $(BUILD_DIR)/$(APP)_promise.ll -S -o  $(BUILD_DIR)/$(APP)_promise.visc.ll
 	$(OPT) -load LLVMGenVISC.so -genvisc -globaldce  $(BUILD_DIR)/$(APP)_loop.ll -S -o  $(BUILD_DIR)/$(APP)_loop.visc.ll
 	$(OPT) $(VISC_OPTFLAGS)  $(BUILD_DIR)/$(APP).visc.ll  -o  $(BUILD_DIR)/$(APP)_cudnn.bc
-	#$(OPT) $(VISC_OPTFLAGS2) $(BUILD_DIR)/$(APP)_promise.visc.ll  -o  $(BUILD_DIR)/$(APP)_promise.bc
-	$(OPT) $(VISC_OPTFLAGS3) $(BUILD_DIR)/$(APP)_promise.visc.ll  -o  $(BUILD_DIR)/$(APP)_wrapperapi.bc
 	$(OPT) $(VISC_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.visc.ll  -o  $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc
 	$(OPT) $(VISC_PRED_OPTFLAGS3) $(BUILD_DIR)/$(APP)_promise.visc.ll  -o  $(BUILD_DIR)/$(APP)_pred_wrapperapi.bc
 	$(OPT) $(VISC_PRED_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.visc.ll  -o  $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc
 	$(LLVM_LINK) $(BUILD_DIR)/$(APP)_cudnn.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_cudnn_linked.bc
-	#$(LLVM_LINK) $(BUILD_DIR)/$(APP)_promise.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_promise_linked.bc
-	$(LLVM_LINK) $(BUILD_DIR)/$(APP)_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_wrapperapi_linked.bc
 	$(LLVM_LINK) $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked.bc
 	$(LLVM_LINK) $(BUILD_DIR)/$(APP)_pred_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_pred_wrapperapi_linked.bc
 	$(LLVM_LINK) $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked.bc
 	$(CC) $(BUILD_DIR)/$(APP)_cudnn_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_cudnn_linked $(LINKER_FLAGS)
-	#$(CC) $(BUILD_DIR)/$(APP)_promise_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_promise_linked $(LINKER_FLAGS)
-	$(CC) $(BUILD_DIR)/$(APP)_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_wrapperapi_linked $(LINKER_FLAGS)
 	$(CC) $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked $(LINKER_FLAGS)
 	$(CC) $(BUILD_DIR)/$(APP)_pred_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_pred_wrapperapi_linked $(LINKER_FLAGS)
 	$(CC) $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked $(LINKER_FLAGS)
diff --git a/llvm/test/VISC/DNN_Benchmarks/benchmarks/alexnet2/src/alexnet2_loop.cpp b/llvm/test/VISC/DNN_Benchmarks/benchmarks/alexnet2/src/alexnet2_loop.cpp
index 77a5fde7f8d448f8b9c14b959696f65a574205b2..555b62869ff457596b3e435bb22937c5fa920e20 100644
--- a/llvm/test/VISC/DNN_Benchmarks/benchmarks/alexnet2/src/alexnet2_loop.cpp
+++ b/llvm/test/VISC/DNN_Benchmarks/benchmarks/alexnet2/src/alexnet2_loop.cpp
@@ -486,7 +486,7 @@ int main(){
   args->dense_1_b_bytes = 0; 
 
 
-  int batch_size = 500;
+  int batch_size = 250;
   int test_input_size = 5000;  
   int batch_count = test_input_size / batch_size;
 
@@ -496,7 +496,7 @@ int main(){
   startMemTracking();
   startProfiling();
 
-  for (int j = 0; j < 14; j++){
+  for (int j = 0; j < 1; j++){
     for (int i = 0; i < batch_count; i++){
   
       int start = i * batch_size; 
diff --git a/llvm/test/VISC/DNN_Benchmarks/benchmarks/alexnet_imagenet/Makefile b/llvm/test/VISC/DNN_Benchmarks/benchmarks/alexnet_imagenet/Makefile
index 0e6d9e4f08d33fb62bfb20ac8eb4f86ea4ca87de..fdc988b6858b15942f1bc16e9dbc8fcdb6c60b0f 100644
--- a/llvm/test/VISC/DNN_Benchmarks/benchmarks/alexnet_imagenet/Makefile
+++ b/llvm/test/VISC/DNN_Benchmarks/benchmarks/alexnet_imagenet/Makefile
@@ -1,6 +1,4 @@
 DNN_BENCHMARK_ROOT = $(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks
-# NOTE: can configure build directory
-#HPVM_BUILD_DIR = $(LLVM_SRC_ROOT)/../build_hpvm/
 HPVM_BUILD_DIR = $(LLVM_BUILD_ROOT)
 
 CC = $(HPVM_BUILD_DIR)/bin/clang++
@@ -49,22 +47,21 @@ TARGET = $(BUILD_DIR)/$(APP).opt.bc
 SOURCES = $(SRC_DIR)/$(APP).cpp
 VISC_RT_PATH = $(LLVM_SRC_ROOT)/../build/projects/visc-rt/visc-rt.ll
 
-#OBJS = $(BUILD_DIR)/$(wildcabrd *.ll)
+
 .PRECIOUS: $(BUILD_DIR)/$(APP).ll $(BUILD_DIR)/$(APP).visc.ll
 default: $(BUILD_DIR) $(TARGET)
 
 
 $(BUILD_DIR)/%.ll: $(SRC_DIR)/%.cpp
 	$(CC) $(CC_FLAGS) -emit-llvm src/$(APP).cpp -S -o  $(BUILD_DIR)/$(APP).ll  
-	$(CC) $(CC_FLAGS) -emit-llvm src/$(APP)_promise.cpp -S -o $(BUILD_DIR)/$(APP)_promise.ll
 	$(CC) $(CC_FLAGS) -emit-llvm src/$(APP)_loop.cpp -S -o  $(BUILD_DIR)/$(APP)_loop.ll  
 
 
 $(BUILD_DIR)/%.opt.bc: $(BUILD_DIR)/%.ll
 	$(OPT) -load LLVMGenVISC.so -genvisc -globaldce  $(BUILD_DIR)/$(APP).ll -S -o  $(BUILD_DIR)/$(APP).visc.ll
-	$(OPT) -load LLVMGenVISC.so -genvisc -globaldce  $(BUILD_DIR)/$(APP)_promise.ll -S -o  $(BUILD_DIR)/$(APP)_promise.visc.ll
 	$(OPT) -load LLVMGenVISC.so -genvisc -globaldce  $(BUILD_DIR)/$(APP)_loop.ll -S -o  $(BUILD_DIR)/$(APP)_loop.visc.ll
 	$(OPT) $(VISC_OPTFLAGS)  $(BUILD_DIR)/$(APP).visc.ll  -o  $(BUILD_DIR)/$(APP)_cudnn.bc
+<<<<<<< HEAD
 	#$(OPT) $(VISC_OPTFLAGS2) $(BUILD_DIR)/$(APP)_promise.visc.ll  -o  $(BUILD_DIR)/$(APP)_promise.bc
 	$(OPT) $(VISC_OPTFLAGS3) $(BUILD_DIR)/$(APP)_promise.visc.ll  -o  $(BUILD_DIR)/$(APP)_wrapperapi.bc
 	$(OPT) $(VISC_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.visc.ll  -o  $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc
@@ -73,12 +70,19 @@ $(BUILD_DIR)/%.opt.bc: $(BUILD_DIR)/%.ll
 	$(LLVM_LINK) $(BUILD_DIR)/$(APP)_cudnn.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_cudnn_linked.bc
 	#$(LLVM_LINK) $(BUILD_DIR)/$(APP)_promise.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_promise_linked.bc
 	$(LLVM_LINK) $(BUILD_DIR)/$(APP)_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_wrapperapi_linked.bc
+=======
+	$(OPT) $(VISC_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.visc.ll  -o  $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc
+	$(LLVM_LINK) $(BUILD_DIR)/$(APP)_cudnn.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_cudnn_linked.bc
+>>>>>>> 2a31471f4de89edd9180689d139be7ca65b0df08
 	$(LLVM_LINK) $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked.bc
 	$(LLVM_LINK) $(BUILD_DIR)/$(APP)_pred_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_pred_wrapperapi_linked.bc
 	$(LLVM_LINK) $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked.bc
 	$(CC) $(BUILD_DIR)/$(APP)_cudnn_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_cudnn_linked $(LINKER_FLAGS)
+<<<<<<< HEAD
 	#$(CC) $(BUILD_DIR)/$(APP)_promise_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_promise_linked $(LINKER_FLAGS)
 	$(CC) $(BUILD_DIR)/$(APP)_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_wrapperapi_linked $(LINKER_FLAGS)
+=======
+>>>>>>> 2a31471f4de89edd9180689d139be7ca65b0df08
 	$(CC) $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked $(LINKER_FLAGS)
 	$(CC) $(BUILD_DIR)/$(APP)_pred_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_pred_wrapperapi_linked $(LINKER_FLAGS)
 	$(CC) $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked $(LINKER_FLAGS)
diff --git a/llvm/test/VISC/DNN_Benchmarks/benchmarks/alexnet_imagenet/src/alexnet_imagenet_loop.cpp b/llvm/test/VISC/DNN_Benchmarks/benchmarks/alexnet_imagenet/src/alexnet_imagenet_loop.cpp
index 8423886e50000cc4e65527c19cc85f3a96e41efe..e9e3e6e0fd344f205784dc7d1fbd0e159f50d72a 100644
--- a/llvm/test/VISC/DNN_Benchmarks/benchmarks/alexnet_imagenet/src/alexnet_imagenet_loop.cpp
+++ b/llvm/test/VISC/DNN_Benchmarks/benchmarks/alexnet_imagenet/src/alexnet_imagenet_loop.cpp
@@ -555,7 +555,7 @@ int main(){
   startMemTracking();
   startProfiling();
 
-  for (int j = 0; j < 14; j++){
+  for (int j = 0; j < 1; j++){
     for (int i = 0; i < batch_count; i++){
 
       int start = i * batch_size;
diff --git a/llvm/test/VISC/DNN_Benchmarks/benchmarks/mobilenet_shallow/Makefile b/llvm/test/VISC/DNN_Benchmarks/benchmarks/legacy/mobilenet_shallow/Makefile
similarity index 100%
rename from llvm/test/VISC/DNN_Benchmarks/benchmarks/mobilenet_shallow/Makefile
rename to llvm/test/VISC/DNN_Benchmarks/benchmarks/legacy/mobilenet_shallow/Makefile
diff --git a/llvm/test/VISC/DNN_Benchmarks/benchmarks/mobilenet_shallow/data/autotuner_data/tuner_confs_batch220.txt b/llvm/test/VISC/DNN_Benchmarks/benchmarks/legacy/mobilenet_shallow/data/autotuner_data/tuner_confs_batch220.txt
similarity index 100%
rename from llvm/test/VISC/DNN_Benchmarks/benchmarks/mobilenet_shallow/data/autotuner_data/tuner_confs_batch220.txt
rename to llvm/test/VISC/DNN_Benchmarks/benchmarks/legacy/mobilenet_shallow/data/autotuner_data/tuner_confs_batch220.txt
diff --git a/llvm/test/VISC/DNN_Benchmarks/benchmarks/mobilenet_shallow/data/autotuner_data/tuner_pareto_confs_batch220.txt b/llvm/test/VISC/DNN_Benchmarks/benchmarks/legacy/mobilenet_shallow/data/autotuner_data/tuner_pareto_confs_batch220.txt
similarity index 100%
rename from llvm/test/VISC/DNN_Benchmarks/benchmarks/mobilenet_shallow/data/autotuner_data/tuner_pareto_confs_batch220.txt
rename to llvm/test/VISC/DNN_Benchmarks/benchmarks/legacy/mobilenet_shallow/data/autotuner_data/tuner_pareto_confs_batch220.txt
diff --git a/llvm/test/VISC/DNN_Benchmarks/benchmarks/mobilenet_shallow/data/autotuner_data/tuner_promise_confs_batch220_multi.txt b/llvm/test/VISC/DNN_Benchmarks/benchmarks/legacy/mobilenet_shallow/data/autotuner_data/tuner_promise_confs_batch220_multi.txt
similarity index 100%
rename from llvm/test/VISC/DNN_Benchmarks/benchmarks/mobilenet_shallow/data/autotuner_data/tuner_promise_confs_batch220_multi.txt
rename to llvm/test/VISC/DNN_Benchmarks/benchmarks/legacy/mobilenet_shallow/data/autotuner_data/tuner_promise_confs_batch220_multi.txt
diff --git a/llvm/test/VISC/DNN_Benchmarks/benchmarks/mobilenet_shallow/data/autotuner_data/tuner_promise_confs_batch220_multi2.txt b/llvm/test/VISC/DNN_Benchmarks/benchmarks/legacy/mobilenet_shallow/data/autotuner_data/tuner_promise_confs_batch220_multi2.txt
similarity index 100%
rename from llvm/test/VISC/DNN_Benchmarks/benchmarks/mobilenet_shallow/data/autotuner_data/tuner_promise_confs_batch220_multi2.txt
rename to llvm/test/VISC/DNN_Benchmarks/benchmarks/legacy/mobilenet_shallow/data/autotuner_data/tuner_promise_confs_batch220_multi2.txt
diff --git a/llvm/test/VISC/DNN_Benchmarks/benchmarks/mobilenet_shallow/data/autotuner_data/tuner_promise_confs_batch220_single.txt b/llvm/test/VISC/DNN_Benchmarks/benchmarks/legacy/mobilenet_shallow/data/autotuner_data/tuner_promise_confs_batch220_single.txt
similarity index 100%
rename from llvm/test/VISC/DNN_Benchmarks/benchmarks/mobilenet_shallow/data/autotuner_data/tuner_promise_confs_batch220_single.txt
rename to llvm/test/VISC/DNN_Benchmarks/benchmarks/legacy/mobilenet_shallow/data/autotuner_data/tuner_promise_confs_batch220_single.txt
diff --git a/llvm/test/VISC/DNN_Benchmarks/benchmarks/mobilenet_shallow/data/quant_ranges.txt b/llvm/test/VISC/DNN_Benchmarks/benchmarks/legacy/mobilenet_shallow/data/quant_ranges.txt
similarity index 100%
rename from llvm/test/VISC/DNN_Benchmarks/benchmarks/mobilenet_shallow/data/quant_ranges.txt
rename to llvm/test/VISC/DNN_Benchmarks/benchmarks/legacy/mobilenet_shallow/data/quant_ranges.txt
diff --git a/llvm/test/VISC/DNN_Benchmarks/benchmarks/mobilenet_shallow/data/quant_ranges_rt.txt b/llvm/test/VISC/DNN_Benchmarks/benchmarks/legacy/mobilenet_shallow/data/quant_ranges_rt.txt
similarity index 100%
rename from llvm/test/VISC/DNN_Benchmarks/benchmarks/mobilenet_shallow/data/quant_ranges_rt.txt
rename to llvm/test/VISC/DNN_Benchmarks/benchmarks/legacy/mobilenet_shallow/data/quant_ranges_rt.txt
diff --git a/llvm/test/VISC/DNN_Benchmarks/benchmarks/mobilenet_shallow/data/tuner_confs_base.txt b/llvm/test/VISC/DNN_Benchmarks/benchmarks/legacy/mobilenet_shallow/data/tuner_confs_base.txt
similarity index 100%
rename from llvm/test/VISC/DNN_Benchmarks/benchmarks/mobilenet_shallow/data/tuner_confs_base.txt
rename to llvm/test/VISC/DNN_Benchmarks/benchmarks/legacy/mobilenet_shallow/data/tuner_confs_base.txt
diff --git a/llvm/test/VISC/DNN_Benchmarks/benchmarks/mobilenet_shallow/src/mobilenet_shallow.cpp b/llvm/test/VISC/DNN_Benchmarks/benchmarks/legacy/mobilenet_shallow/src/mobilenet_shallow.cpp
similarity index 100%
rename from llvm/test/VISC/DNN_Benchmarks/benchmarks/mobilenet_shallow/src/mobilenet_shallow.cpp
rename to llvm/test/VISC/DNN_Benchmarks/benchmarks/legacy/mobilenet_shallow/src/mobilenet_shallow.cpp
diff --git a/llvm/test/VISC/DNN_Benchmarks/benchmarks/mobilenet_shallow/src/mobilenet_shallow_promise.cpp b/llvm/test/VISC/DNN_Benchmarks/benchmarks/legacy/mobilenet_shallow/src/mobilenet_shallow_promise.cpp
similarity index 100%
rename from llvm/test/VISC/DNN_Benchmarks/benchmarks/mobilenet_shallow/src/mobilenet_shallow_promise.cpp
rename to llvm/test/VISC/DNN_Benchmarks/benchmarks/legacy/mobilenet_shallow/src/mobilenet_shallow_promise.cpp
diff --git a/llvm/test/VISC/DNN_Benchmarks/benchmarks/alexnet2/src/alexnet2_promise.cpp b/llvm/test/VISC/DNN_Benchmarks/benchmarks/legacy/promise_src/alexnet2_promise.cpp
similarity index 100%
rename from llvm/test/VISC/DNN_Benchmarks/benchmarks/alexnet2/src/alexnet2_promise.cpp
rename to llvm/test/VISC/DNN_Benchmarks/benchmarks/legacy/promise_src/alexnet2_promise.cpp
diff --git a/llvm/test/VISC/DNN_Benchmarks/benchmarks/alexnet_imagenet/src/alexnet_imagenet_promise.cpp b/llvm/test/VISC/DNN_Benchmarks/benchmarks/legacy/promise_src/alexnet_imagenet_promise.cpp
similarity index 100%
rename from llvm/test/VISC/DNN_Benchmarks/benchmarks/alexnet_imagenet/src/alexnet_imagenet_promise.cpp
rename to llvm/test/VISC/DNN_Benchmarks/benchmarks/legacy/promise_src/alexnet_imagenet_promise.cpp
diff --git a/llvm/test/VISC/DNN_Benchmarks/benchmarks/alexnet/src/alexnet_promise.cpp b/llvm/test/VISC/DNN_Benchmarks/benchmarks/legacy/promise_src/alexnet_promise.cpp
similarity index 100%
rename from llvm/test/VISC/DNN_Benchmarks/benchmarks/alexnet/src/alexnet_promise.cpp
rename to llvm/test/VISC/DNN_Benchmarks/benchmarks/legacy/promise_src/alexnet_promise.cpp
diff --git a/llvm/test/VISC/DNN_Benchmarks/benchmarks/lenet_mnist/src/lenet_mnist_promise.cpp b/llvm/test/VISC/DNN_Benchmarks/benchmarks/legacy/promise_src/lenet_mnist_promise.cpp
similarity index 100%
rename from llvm/test/VISC/DNN_Benchmarks/benchmarks/lenet_mnist/src/lenet_mnist_promise.cpp
rename to llvm/test/VISC/DNN_Benchmarks/benchmarks/legacy/promise_src/lenet_mnist_promise.cpp
diff --git a/llvm/test/VISC/DNN_Benchmarks/benchmarks/mobilenet/src/mobilenet_promise.cpp b/llvm/test/VISC/DNN_Benchmarks/benchmarks/legacy/promise_src/mobilenet_promise.cpp
similarity index 100%
rename from llvm/test/VISC/DNN_Benchmarks/benchmarks/mobilenet/src/mobilenet_promise.cpp
rename to llvm/test/VISC/DNN_Benchmarks/benchmarks/legacy/promise_src/mobilenet_promise.cpp
diff --git a/llvm/test/VISC/DNN_Benchmarks/benchmarks/resnet18/src/resnet18_promise.cpp b/llvm/test/VISC/DNN_Benchmarks/benchmarks/legacy/promise_src/resnet18_promise.cpp
similarity index 100%
rename from llvm/test/VISC/DNN_Benchmarks/benchmarks/resnet18/src/resnet18_promise.cpp
rename to llvm/test/VISC/DNN_Benchmarks/benchmarks/legacy/promise_src/resnet18_promise.cpp
diff --git a/llvm/test/VISC/DNN_Benchmarks/benchmarks/vgg16_cifar100/src/vgg16_cifar100_promise.cpp b/llvm/test/VISC/DNN_Benchmarks/benchmarks/legacy/promise_src/vgg16_cifar100_promise.cpp
similarity index 100%
rename from llvm/test/VISC/DNN_Benchmarks/benchmarks/vgg16_cifar100/src/vgg16_cifar100_promise.cpp
rename to llvm/test/VISC/DNN_Benchmarks/benchmarks/legacy/promise_src/vgg16_cifar100_promise.cpp
diff --git a/llvm/test/VISC/DNN_Benchmarks/benchmarks/vgg16_cifar10/src/vgg16_cifar10_promise.cpp b/llvm/test/VISC/DNN_Benchmarks/benchmarks/legacy/promise_src/vgg16_cifar10_promise.cpp
similarity index 100%
rename from llvm/test/VISC/DNN_Benchmarks/benchmarks/vgg16_cifar10/src/vgg16_cifar10_promise.cpp
rename to llvm/test/VISC/DNN_Benchmarks/benchmarks/legacy/promise_src/vgg16_cifar10_promise.cpp
diff --git a/llvm/test/VISC/DNN_Benchmarks/benchmarks/lenet_mnist/Makefile b/llvm/test/VISC/DNN_Benchmarks/benchmarks/lenet_mnist/Makefile
index 909ecfdca5a730e4d400cce70addee2d36573f1c..643715cbf57138926b222456f7b3b4257ca80f20 100644
--- a/llvm/test/VISC/DNN_Benchmarks/benchmarks/lenet_mnist/Makefile
+++ b/llvm/test/VISC/DNN_Benchmarks/benchmarks/lenet_mnist/Makefile
@@ -1,6 +1,9 @@
 DNN_BENCHMARK_ROOT = $(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks
+<<<<<<< HEAD
 # NOTE: can configure build directory
 #HPVM_BUILD_DIR = $(LLVM_SRC_ROOT)/../build_hpvm/
+=======
+>>>>>>> 2a31471f4de89edd9180689d139be7ca65b0df08
 HPVM_BUILD_DIR = $(LLVM_BUILD_ROOT)
 
 CC = $(HPVM_BUILD_DIR)/bin/clang++
@@ -49,36 +52,50 @@ TARGET = $(BUILD_DIR)/$(APP).opt.bc
 SOURCES = $(SRC_DIR)/$(APP).cpp
 VISC_RT_PATH = $(LLVM_SRC_ROOT)/../build/projects/visc-rt/visc-rt.ll
 
-#OBJS = $(BUILD_DIR)/$(wildcabrd *.ll)
+
 .PRECIOUS: $(BUILD_DIR)/$(APP).ll $(BUILD_DIR)/$(APP).visc.ll
 default: $(BUILD_DIR) $(TARGET)
 
 
 $(BUILD_DIR)/%.ll: $(SRC_DIR)/%.cpp
 	$(CC) $(CC_FLAGS) -emit-llvm src/$(APP).cpp -S -o  $(BUILD_DIR)/$(APP).ll  
+<<<<<<< HEAD
 	$(CC) $(CC_FLAGS) -emit-llvm src/$(APP)_promise.cpp -S -o $(BUILD_DIR)/$(APP)_promise.ll
+=======
+>>>>>>> 2a31471f4de89edd9180689d139be7ca65b0df08
 	$(CC) $(CC_FLAGS) -emit-llvm src/$(APP)_loop.cpp -S -o  $(BUILD_DIR)/$(APP)_loop.ll  
 
 
 $(BUILD_DIR)/%.opt.bc: $(BUILD_DIR)/%.ll
 	$(OPT) -load LLVMGenVISC.so -genvisc -globaldce  $(BUILD_DIR)/$(APP).ll -S -o  $(BUILD_DIR)/$(APP).visc.ll
+<<<<<<< HEAD
 	$(OPT) -load LLVMGenVISC.so -genvisc -globaldce  $(BUILD_DIR)/$(APP)_promise.ll -S -o  $(BUILD_DIR)/$(APP)_promise.visc.ll
 	$(OPT) -load LLVMGenVISC.so -genvisc -globaldce  $(BUILD_DIR)/$(APP)_loop.ll -S -o  $(BUILD_DIR)/$(APP)_loop.visc.ll
 	$(OPT) $(VISC_OPTFLAGS)  $(BUILD_DIR)/$(APP).visc.ll  -o  $(BUILD_DIR)/$(APP)_cudnn.bc
 	#$(OPT) $(VISC_OPTFLAGS2) $(BUILD_DIR)/$(APP)_promise.visc.ll  -o  $(BUILD_DIR)/$(APP)_promise.bc
 	$(OPT) $(VISC_OPTFLAGS3) $(BUILD_DIR)/$(APP)_promise.visc.ll  -o  $(BUILD_DIR)/$(APP)_wrapperapi.bc
+=======
+	$(OPT) -load LLVMGenVISC.so -genvisc -globaldce  $(BUILD_DIR)/$(APP)_loop.ll -S -o  $(BUILD_DIR)/$(APP)_loop.visc.ll
+	$(OPT) $(VISC_OPTFLAGS)  $(BUILD_DIR)/$(APP).visc.ll  -o  $(BUILD_DIR)/$(APP)_cudnn.bc
+>>>>>>> 2a31471f4de89edd9180689d139be7ca65b0df08
 	$(OPT) $(VISC_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.visc.ll  -o  $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc
 	$(OPT) $(VISC_PRED_OPTFLAGS3) $(BUILD_DIR)/$(APP)_promise.visc.ll  -o  $(BUILD_DIR)/$(APP)_pred_wrapperapi.bc
 	$(OPT) $(VISC_PRED_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.visc.ll  -o  $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc
 	$(LLVM_LINK) $(BUILD_DIR)/$(APP)_cudnn.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_cudnn_linked.bc
+<<<<<<< HEAD
 	#$(LLVM_LINK) $(BUILD_DIR)/$(APP)_promise.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_promise_linked.bc
 	$(LLVM_LINK) $(BUILD_DIR)/$(APP)_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_wrapperapi_linked.bc
+=======
+>>>>>>> 2a31471f4de89edd9180689d139be7ca65b0df08
 	$(LLVM_LINK) $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked.bc
 	$(LLVM_LINK) $(BUILD_DIR)/$(APP)_pred_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_pred_wrapperapi_linked.bc
 	$(LLVM_LINK) $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked.bc
 	$(CC) $(BUILD_DIR)/$(APP)_cudnn_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_cudnn_linked $(LINKER_FLAGS)
+<<<<<<< HEAD
 	#$(CC) $(BUILD_DIR)/$(APP)_promise_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_promise_linked $(LINKER_FLAGS)
 	$(CC) $(BUILD_DIR)/$(APP)_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_wrapperapi_linked $(LINKER_FLAGS)
+=======
+>>>>>>> 2a31471f4de89edd9180689d139be7ca65b0df08
 	$(CC) $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked $(LINKER_FLAGS)
 	$(CC) $(BUILD_DIR)/$(APP)_pred_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_pred_wrapperapi_linked $(LINKER_FLAGS)
 	$(CC) $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked $(LINKER_FLAGS)
diff --git a/llvm/test/VISC/DNN_Benchmarks/benchmarks/mobilenet/Makefile b/llvm/test/VISC/DNN_Benchmarks/benchmarks/mobilenet/Makefile
index 3d678aae8feaf65bdfb9f3c04fafcb6a04505070..507d64f121e2448263ea294f6a94cd8974f0ff50 100644
--- a/llvm/test/VISC/DNN_Benchmarks/benchmarks/mobilenet/Makefile
+++ b/llvm/test/VISC/DNN_Benchmarks/benchmarks/mobilenet/Makefile
@@ -1,6 +1,4 @@
 DNN_BENCHMARK_ROOT = $(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks
-# NOTE: can configure build directory
-#HPVM_BUILD_DIR = $(LLVM_SRC_ROOT)/../build_hpvm/
 HPVM_BUILD_DIR = $(LLVM_BUILD_ROOT)
 
 CC = $(HPVM_BUILD_DIR)/bin/clang++
@@ -49,36 +47,28 @@ TARGET = $(BUILD_DIR)/$(APP).opt.bc
 SOURCES = $(SRC_DIR)/$(APP).cpp
 VISC_RT_PATH = $(LLVM_SRC_ROOT)/../build/projects/visc-rt/visc-rt.ll
 
-#OBJS = $(BUILD_DIR)/$(wildcabrd *.ll)
+
 .PRECIOUS: $(BUILD_DIR)/$(APP).ll $(BUILD_DIR)/$(APP).visc.ll
 default: $(BUILD_DIR) $(TARGET)
 
 
 $(BUILD_DIR)/%.ll: $(SRC_DIR)/%.cpp
 	$(CC) $(CC_FLAGS) -emit-llvm src/$(APP).cpp -S -o  $(BUILD_DIR)/$(APP).ll  
-	$(CC) $(CC_FLAGS) -emit-llvm src/$(APP)_promise.cpp -S -o $(BUILD_DIR)/$(APP)_promise.ll
 	$(CC) $(CC_FLAGS) -emit-llvm src/$(APP)_loop.cpp -S -o  $(BUILD_DIR)/$(APP)_loop.ll  
 
 
 $(BUILD_DIR)/%.opt.bc: $(BUILD_DIR)/%.ll
 	$(OPT) -load LLVMGenVISC.so -genvisc -globaldce  $(BUILD_DIR)/$(APP).ll -S -o  $(BUILD_DIR)/$(APP).visc.ll
-	$(OPT) -load LLVMGenVISC.so -genvisc -globaldce  $(BUILD_DIR)/$(APP)_promise.ll -S -o  $(BUILD_DIR)/$(APP)_promise.visc.ll
 	$(OPT) -load LLVMGenVISC.so -genvisc -globaldce  $(BUILD_DIR)/$(APP)_loop.ll -S -o  $(BUILD_DIR)/$(APP)_loop.visc.ll
 	$(OPT) $(VISC_OPTFLAGS)  $(BUILD_DIR)/$(APP).visc.ll  -o  $(BUILD_DIR)/$(APP)_cudnn.bc
-	#$(OPT) $(VISC_OPTFLAGS2) $(BUILD_DIR)/$(APP)_promise.visc.ll  -o  $(BUILD_DIR)/$(APP)_promise.bc
-	$(OPT) $(VISC_OPTFLAGS3) $(BUILD_DIR)/$(APP)_promise.visc.ll  -o  $(BUILD_DIR)/$(APP)_wrapperapi.bc
 	$(OPT) $(VISC_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.visc.ll  -o  $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc
 	$(OPT) $(VISC_PRED_OPTFLAGS3) $(BUILD_DIR)/$(APP)_promise.visc.ll  -o  $(BUILD_DIR)/$(APP)_pred_wrapperapi.bc
 	$(OPT) $(VISC_PRED_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.visc.ll  -o  $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc
 	$(LLVM_LINK) $(BUILD_DIR)/$(APP)_cudnn.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_cudnn_linked.bc
-	#$(LLVM_LINK) $(BUILD_DIR)/$(APP)_promise.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_promise_linked.bc
-	$(LLVM_LINK) $(BUILD_DIR)/$(APP)_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_wrapperapi_linked.bc
 	$(LLVM_LINK) $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked.bc
 	$(LLVM_LINK) $(BUILD_DIR)/$(APP)_pred_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_pred_wrapperapi_linked.bc
 	$(LLVM_LINK) $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked.bc
 	$(CC) $(BUILD_DIR)/$(APP)_cudnn_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_cudnn_linked $(LINKER_FLAGS)
-	#$(CC) $(BUILD_DIR)/$(APP)_promise_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_promise_linked $(LINKER_FLAGS)
-	$(CC) $(BUILD_DIR)/$(APP)_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_wrapperapi_linked $(LINKER_FLAGS)
 	$(CC) $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked $(LINKER_FLAGS)
 	$(CC) $(BUILD_DIR)/$(APP)_pred_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_pred_wrapperapi_linked $(LINKER_FLAGS)
 	$(CC) $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked $(LINKER_FLAGS)
diff --git a/llvm/test/VISC/DNN_Benchmarks/benchmarks/mobilenet/data/tuner_confs_base.txt b/llvm/test/VISC/DNN_Benchmarks/benchmarks/mobilenet/data/tuner_confs_base.txt
index 8b5c1727ad0dc9e24310e4c86e116894051c84b3..ed02ddab0dbef2b21f785226b80f4eee7a1735cf 100644
--- a/llvm/test/VISC/DNN_Benchmarks/benchmarks/mobilenet/data/tuner_confs_base.txt
+++ b/llvm/test/VISC/DNN_Benchmarks/benchmarks/mobilenet/data/tuner_confs_base.txt
@@ -1,3 +1,4 @@
+1000
 +++++
 conf1 1 0 84.8 0
 1 gpu conv fp32 1 
diff --git a/llvm/test/VISC/DNN_Benchmarks/benchmarks/mobilenet/src/mobilenet.cpp b/llvm/test/VISC/DNN_Benchmarks/benchmarks/mobilenet/src/mobilenet.cpp
index 5266f216887445b41f7d63a4c2e92b134a09ccc5..2fbb5a6eb424ae93e0d301b70620185060f4b7f5 100644
--- a/llvm/test/VISC/DNN_Benchmarks/benchmarks/mobilenet/src/mobilenet.cpp
+++ b/llvm/test/VISC/DNN_Benchmarks/benchmarks/mobilenet/src/mobilenet.cpp
@@ -1826,7 +1826,7 @@ RootIn;
 
 int main(){ 
 
-  std::string dir_prefix = std::string("../../../../../../projects/hpvm-tensor-rt/model_params/mobilenet_quant/");
+  std::string dir_prefix = std::string("../../../../../../projects/hpvm-tensor-rt/model_params/mobilenet/");
   
   std::string input_path =  dir_prefix + std::string("input.bin"); 
   std::string labels_path =  dir_prefix + std::string("labels.bin"); 
diff --git a/llvm/test/VISC/DNN_Benchmarks/benchmarks/resnet18/Makefile b/llvm/test/VISC/DNN_Benchmarks/benchmarks/resnet18/Makefile
index 4de3565fce81f857beb3dd4ee60e7423bdd0322a..409358ba466c3d86f563f630d24fe6845cea7274 100644
--- a/llvm/test/VISC/DNN_Benchmarks/benchmarks/resnet18/Makefile
+++ b/llvm/test/VISC/DNN_Benchmarks/benchmarks/resnet18/Makefile
@@ -1,6 +1,5 @@
+LLVM_BUILD_ROOT=/home/hsharif3/Gitlab/hpvm/build_hpvm/
 DNN_BENCHMARK_ROOT = $(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks
-# NOTE: can configure build directory
-#HPVM_BUILD_DIR = $(LLVM_SRC_ROOT)/../build_hpvm/
 HPVM_BUILD_DIR = $(LLVM_BUILD_ROOT)
 
 CC = $(HPVM_BUILD_DIR)/bin/clang++
@@ -56,29 +55,21 @@ default: $(BUILD_DIR) $(TARGET)
 
 $(BUILD_DIR)/%.ll: $(SRC_DIR)/%.cpp
 	$(CC) $(CC_FLAGS) -emit-llvm src/$(APP).cpp -S -o  $(BUILD_DIR)/$(APP).ll  
-	$(CC) $(CC_FLAGS) -emit-llvm src/$(APP)_promise.cpp -S -o $(BUILD_DIR)/$(APP)_promise.ll
 	$(CC) $(CC_FLAGS) -emit-llvm src/$(APP)_loop.cpp -S -o  $(BUILD_DIR)/$(APP)_loop.ll  
 
 
 $(BUILD_DIR)/%.opt.bc: $(BUILD_DIR)/%.ll
 	$(OPT) -load LLVMGenVISC.so -genvisc -globaldce  $(BUILD_DIR)/$(APP).ll -S -o  $(BUILD_DIR)/$(APP).visc.ll
-	$(OPT) -load LLVMGenVISC.so -genvisc -globaldce  $(BUILD_DIR)/$(APP)_promise.ll -S -o  $(BUILD_DIR)/$(APP)_promise.visc.ll
 	$(OPT) -load LLVMGenVISC.so -genvisc -globaldce  $(BUILD_DIR)/$(APP)_loop.ll -S -o  $(BUILD_DIR)/$(APP)_loop.visc.ll
 	$(OPT) $(VISC_OPTFLAGS)  $(BUILD_DIR)/$(APP).visc.ll  -o  $(BUILD_DIR)/$(APP)_cudnn.bc
-	#$(OPT) $(VISC_OPTFLAGS2) $(BUILD_DIR)/$(APP)_promise.visc.ll  -o  $(BUILD_DIR)/$(APP)_promise.bc
-	$(OPT) $(VISC_OPTFLAGS3) $(BUILD_DIR)/$(APP)_promise.visc.ll  -o  $(BUILD_DIR)/$(APP)_wrapperapi.bc
 	$(OPT) $(VISC_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.visc.ll  -o  $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc
 	$(OPT) $(VISC_PRED_OPTFLAGS3) $(BUILD_DIR)/$(APP)_promise.visc.ll  -o  $(BUILD_DIR)/$(APP)_pred_wrapperapi.bc
 	$(OPT) $(VISC_PRED_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.visc.ll  -o  $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc
 	$(LLVM_LINK) $(BUILD_DIR)/$(APP)_cudnn.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_cudnn_linked.bc
-	#$(LLVM_LINK) $(BUILD_DIR)/$(APP)_promise.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_promise_linked.bc
-	$(LLVM_LINK) $(BUILD_DIR)/$(APP)_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_wrapperapi_linked.bc
 	$(LLVM_LINK) $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked.bc
 	$(LLVM_LINK) $(BUILD_DIR)/$(APP)_pred_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_pred_wrapperapi_linked.bc
 	$(LLVM_LINK) $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked.bc
 	$(CC) $(BUILD_DIR)/$(APP)_cudnn_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_cudnn_linked $(LINKER_FLAGS)
-	#$(CC) $(BUILD_DIR)/$(APP)_promise_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_promise_linked $(LINKER_FLAGS)
-	$(CC) $(BUILD_DIR)/$(APP)_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_wrapperapi_linked $(LINKER_FLAGS)
 	$(CC) $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked $(LINKER_FLAGS)
 	$(CC) $(BUILD_DIR)/$(APP)_pred_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_pred_wrapperapi_linked $(LINKER_FLAGS)
 	$(CC) $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked $(LINKER_FLAGS)
diff --git a/llvm/test/VISC/DNN_Benchmarks/benchmarks/resnet50_imagenet/Makefile b/llvm/test/VISC/DNN_Benchmarks/benchmarks/resnet50_imagenet/Makefile
index 5fb4534594a1aef9077f74f53ffe06281bc2b23a..5180f55744d292e54042ebbf8227a3ebed99a3b4 100644
--- a/llvm/test/VISC/DNN_Benchmarks/benchmarks/resnet50_imagenet/Makefile
+++ b/llvm/test/VISC/DNN_Benchmarks/benchmarks/resnet50_imagenet/Makefile
@@ -1,3 +1,7 @@
+<<<<<<< HEAD
+=======
+LLVM_BUILD_ROOT=/home/hsharif3/Gitlab/hpvm/build_hpvm/
+>>>>>>> 2a31471f4de89edd9180689d139be7ca65b0df08
 DNN_BENCHMARK_ROOT = $(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks
 # NOTE: can configure build directory
 #HPVM_BUILD_DIR = $(LLVM_SRC_ROOT)/../build_hpvm/
@@ -49,36 +53,50 @@ TARGET = $(BUILD_DIR)/$(APP).opt.bc
 SOURCES = $(SRC_DIR)/$(APP).cpp
 VISC_RT_PATH = $(LLVM_SRC_ROOT)/../build/projects/visc-rt/visc-rt.ll
 
-#OBJS = $(BUILD_DIR)/$(wildcabrd *.ll)
+
 .PRECIOUS: $(BUILD_DIR)/$(APP).ll $(BUILD_DIR)/$(APP).visc.ll
 default: $(BUILD_DIR) $(TARGET)
 
 
 $(BUILD_DIR)/%.ll: $(SRC_DIR)/%.cpp
 	$(CC) $(CC_FLAGS) -emit-llvm src/$(APP).cpp -S -o  $(BUILD_DIR)/$(APP).ll  
+<<<<<<< HEAD
 	$(CC) $(CC_FLAGS) -emit-llvm src/$(APP)_promise.cpp -S -o $(BUILD_DIR)/$(APP)_promise.ll
+=======
+>>>>>>> 2a31471f4de89edd9180689d139be7ca65b0df08
 	$(CC) $(CC_FLAGS) -emit-llvm src/$(APP)_loop.cpp -S -o  $(BUILD_DIR)/$(APP)_loop.ll  
 
 
 $(BUILD_DIR)/%.opt.bc: $(BUILD_DIR)/%.ll
 	$(OPT) -load LLVMGenVISC.so -genvisc -globaldce  $(BUILD_DIR)/$(APP).ll -S -o  $(BUILD_DIR)/$(APP).visc.ll
+<<<<<<< HEAD
 	$(OPT) -load LLVMGenVISC.so -genvisc -globaldce  $(BUILD_DIR)/$(APP)_promise.ll -S -o  $(BUILD_DIR)/$(APP)_promise.visc.ll
 	$(OPT) -load LLVMGenVISC.so -genvisc -globaldce  $(BUILD_DIR)/$(APP)_loop.ll -S -o  $(BUILD_DIR)/$(APP)_loop.visc.ll
 	$(OPT) $(VISC_OPTFLAGS)  $(BUILD_DIR)/$(APP).visc.ll  -o  $(BUILD_DIR)/$(APP)_cudnn.bc
 	#$(OPT) $(VISC_OPTFLAGS2) $(BUILD_DIR)/$(APP)_promise.visc.ll  -o  $(BUILD_DIR)/$(APP)_promise.bc
 	$(OPT) $(VISC_OPTFLAGS3) $(BUILD_DIR)/$(APP)_promise.visc.ll  -o  $(BUILD_DIR)/$(APP)_wrapperapi.bc
+=======
+	$(OPT) -load LLVMGenVISC.so -genvisc -globaldce  $(BUILD_DIR)/$(APP)_loop.ll -S -o  $(BUILD_DIR)/$(APP)_loop.visc.ll
+	$(OPT) $(VISC_OPTFLAGS)  $(BUILD_DIR)/$(APP).visc.ll  -o  $(BUILD_DIR)/$(APP)_cudnn.bc
+>>>>>>> 2a31471f4de89edd9180689d139be7ca65b0df08
 	$(OPT) $(VISC_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.visc.ll  -o  $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc
 	$(OPT) $(VISC_PRED_OPTFLAGS3) $(BUILD_DIR)/$(APP)_promise.visc.ll  -o  $(BUILD_DIR)/$(APP)_pred_wrapperapi.bc
 	$(OPT) $(VISC_PRED_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.visc.ll  -o  $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc
 	$(LLVM_LINK) $(BUILD_DIR)/$(APP)_cudnn.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_cudnn_linked.bc
+<<<<<<< HEAD
 	#$(LLVM_LINK) $(BUILD_DIR)/$(APP)_promise.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_promise_linked.bc
 	$(LLVM_LINK) $(BUILD_DIR)/$(APP)_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_wrapperapi_linked.bc
+=======
+>>>>>>> 2a31471f4de89edd9180689d139be7ca65b0df08
 	$(LLVM_LINK) $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked.bc
 	$(LLVM_LINK) $(BUILD_DIR)/$(APP)_pred_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_pred_wrapperapi_linked.bc
 	$(LLVM_LINK) $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked.bc
 	$(CC) $(BUILD_DIR)/$(APP)_cudnn_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_cudnn_linked $(LINKER_FLAGS)
+<<<<<<< HEAD
 	#$(CC) $(BUILD_DIR)/$(APP)_promise_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_promise_linked $(LINKER_FLAGS)
 	$(CC) $(BUILD_DIR)/$(APP)_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_wrapperapi_linked $(LINKER_FLAGS)
+=======
+>>>>>>> 2a31471f4de89edd9180689d139be7ca65b0df08
 	$(CC) $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked $(LINKER_FLAGS)
 	$(CC) $(BUILD_DIR)/$(APP)_pred_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_pred_wrapperapi_linked $(LINKER_FLAGS)
 	$(CC) $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked $(LINKER_FLAGS)
diff --git a/llvm/test/VISC/DNN_Benchmarks/benchmarks/vgg16_cifar10/Makefile b/llvm/test/VISC/DNN_Benchmarks/benchmarks/vgg16_cifar10/Makefile
index cf001e5dc9187b9562959af3223970ed9dce9b97..511cb5c8adf073956599b412ea18f7941c889ab9 100644
--- a/llvm/test/VISC/DNN_Benchmarks/benchmarks/vgg16_cifar10/Makefile
+++ b/llvm/test/VISC/DNN_Benchmarks/benchmarks/vgg16_cifar10/Makefile
@@ -1,6 +1,4 @@
 DNN_BENCHMARK_ROOT = $(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks
-# NOTE: can configure build directory
-#HPVM_BUILD_DIR = $(LLVM_SRC_ROOT)/../build_hpvm/
 HPVM_BUILD_DIR = $(LLVM_BUILD_ROOT)
 
 CC = $(HPVM_BUILD_DIR)/bin/clang++
@@ -49,36 +47,30 @@ TARGET = $(BUILD_DIR)/$(APP).opt.bc
 SOURCES = $(SRC_DIR)/$(APP).cpp
 VISC_RT_PATH = $(LLVM_SRC_ROOT)/../build/projects/visc-rt/visc-rt.ll
 
-#OBJS = $(BUILD_DIR)/$(wildcabrd *.ll)
+
 .PRECIOUS: $(BUILD_DIR)/$(APP).ll $(BUILD_DIR)/$(APP).visc.ll
 default: $(BUILD_DIR) $(TARGET)
 
 
 $(BUILD_DIR)/%.ll: $(SRC_DIR)/%.cpp
 	$(CC) $(CC_FLAGS) -emit-llvm src/$(APP).cpp -S -o  $(BUILD_DIR)/$(APP).ll  
-	$(CC) $(CC_FLAGS) -emit-llvm src/$(APP)_promise.cpp -S -o $(BUILD_DIR)/$(APP)_promise.ll
 	$(CC) $(CC_FLAGS) -emit-llvm src/$(APP)_loop.cpp -S -o  $(BUILD_DIR)/$(APP)_loop.ll  
 
 
 $(BUILD_DIR)/%.opt.bc: $(BUILD_DIR)/%.ll
 	$(OPT) -load LLVMGenVISC.so -genvisc -globaldce  $(BUILD_DIR)/$(APP).ll -S -o  $(BUILD_DIR)/$(APP).visc.ll
-	$(OPT) -load LLVMGenVISC.so -genvisc -globaldce  $(BUILD_DIR)/$(APP)_promise.ll -S -o  $(BUILD_DIR)/$(APP)_promise.visc.ll
 	$(OPT) -load LLVMGenVISC.so -genvisc -globaldce  $(BUILD_DIR)/$(APP)_loop.ll -S -o  $(BUILD_DIR)/$(APP)_loop.visc.ll
 	$(OPT) $(VISC_OPTFLAGS)  $(BUILD_DIR)/$(APP).visc.ll  -o  $(BUILD_DIR)/$(APP)_cudnn.bc
-	#$(OPT) $(VISC_OPTFLAGS2) $(BUILD_DIR)/$(APP)_promise.visc.ll  -o  $(BUILD_DIR)/$(APP)_promise.bc
-	$(OPT) $(VISC_OPTFLAGS3) $(BUILD_DIR)/$(APP)_promise.visc.ll  -o  $(BUILD_DIR)/$(APP)_wrapperapi.bc
 	$(OPT) $(VISC_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.visc.ll  -o  $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc
 	$(OPT) $(VISC_PRED_OPTFLAGS3) $(BUILD_DIR)/$(APP)_promise.visc.ll  -o  $(BUILD_DIR)/$(APP)_pred_wrapperapi.bc
 	$(OPT) $(VISC_PRED_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.visc.ll  -o  $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc
 	$(LLVM_LINK) $(BUILD_DIR)/$(APP)_cudnn.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_cudnn_linked.bc
-	#$(LLVM_LINK) $(BUILD_DIR)/$(APP)_promise.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_promise_linked.bc
-	$(LLVM_LINK) $(BUILD_DIR)/$(APP)_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_wrapperapi_linked.bc
+	#$(LLVM_LINK) $(BUILD_DIR)/$(APP)_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_wrapperapi_linked.bc
 	$(LLVM_LINK) $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked.bc
 	$(LLVM_LINK) $(BUILD_DIR)/$(APP)_pred_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_pred_wrapperapi_linked.bc
 	$(LLVM_LINK) $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked.bc
 	$(CC) $(BUILD_DIR)/$(APP)_cudnn_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_cudnn_linked $(LINKER_FLAGS)
-	#$(CC) $(BUILD_DIR)/$(APP)_promise_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_promise_linked $(LINKER_FLAGS)
-	$(CC) $(BUILD_DIR)/$(APP)_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_wrapperapi_linked $(LINKER_FLAGS)
+	#$(CC) $(BUILD_DIR)/$(APP)_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_wrapperapi_linked $(LINKER_FLAGS)
 	$(CC) $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked $(LINKER_FLAGS)
 	$(CC) $(BUILD_DIR)/$(APP)_pred_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_pred_wrapperapi_linked $(LINKER_FLAGS)
 	$(CC) $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked $(LINKER_FLAGS)
diff --git a/llvm/test/VISC/DNN_Benchmarks/benchmarks/vgg16_cifar10/src/vgg16_cifar10_loop.cpp b/llvm/test/VISC/DNN_Benchmarks/benchmarks/vgg16_cifar10/src/vgg16_cifar10_loop.cpp
index 602164516f78462f7059ef7aa975bf2aa0d34bf0..a5f507e409d72f6f264eb9ff2b7e3dcc03fcc79a 100644
--- a/llvm/test/VISC/DNN_Benchmarks/benchmarks/vgg16_cifar10/src/vgg16_cifar10_loop.cpp
+++ b/llvm/test/VISC/DNN_Benchmarks/benchmarks/vgg16_cifar10/src/vgg16_cifar10_loop.cpp
@@ -974,12 +974,11 @@ int main(){
   int test_input_size = 5000;
   int batch_count = test_input_size / batch_size;
 
-  // void* input = create4DTensor(0,nchw,batch_size,3,32,32);
 
   startMemTracking();
   startProfiling();
 
-  for (int j = 0; j < 14; j++){
+  for (int j = 0; j < 1; j++){
     for (int i = 0; i < batch_count; i++){
 
       int start = i * batch_size;
diff --git a/llvm/test/VISC/DNN_Benchmarks/benchmarks/vgg16_cifar100/Makefile b/llvm/test/VISC/DNN_Benchmarks/benchmarks/vgg16_cifar100/Makefile
index 199d24b54f856be3b5c858ccd4ba8269a7e73328..052011292a3af053d23d0d6c627e5fd2d0231b13 100644
--- a/llvm/test/VISC/DNN_Benchmarks/benchmarks/vgg16_cifar100/Makefile
+++ b/llvm/test/VISC/DNN_Benchmarks/benchmarks/vgg16_cifar100/Makefile
@@ -1,6 +1,4 @@
 DNN_BENCHMARK_ROOT = $(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks
-# NOTE: can configure build directory
-#HPVM_BUILD_DIR = $(LLVM_SRC_ROOT)/../build_hpvm/
 HPVM_BUILD_DIR = $(LLVM_BUILD_ROOT)
 
 CC = $(HPVM_BUILD_DIR)/bin/clang++
@@ -49,36 +47,28 @@ TARGET = $(BUILD_DIR)/$(APP).opt.bc
 SOURCES = $(SRC_DIR)/$(APP).cpp
 VISC_RT_PATH = $(LLVM_SRC_ROOT)/../build/projects/visc-rt/visc-rt.ll
 
-#OBJS = $(BUILD_DIR)/$(wildcabrd *.ll)
+
 .PRECIOUS: $(BUILD_DIR)/$(APP).ll $(BUILD_DIR)/$(APP).visc.ll
 default: $(BUILD_DIR) $(TARGET)
 
 
 $(BUILD_DIR)/%.ll: $(SRC_DIR)/%.cpp
 	$(CC) $(CC_FLAGS) -emit-llvm src/$(APP).cpp -S -o  $(BUILD_DIR)/$(APP).ll  
-	$(CC) $(CC_FLAGS) -emit-llvm src/$(APP)_promise.cpp -S -o $(BUILD_DIR)/$(APP)_promise.ll
 	$(CC) $(CC_FLAGS) -emit-llvm src/$(APP)_loop.cpp -S -o  $(BUILD_DIR)/$(APP)_loop.ll  
 
 
 $(BUILD_DIR)/%.opt.bc: $(BUILD_DIR)/%.ll
 	$(OPT) -load LLVMGenVISC.so -genvisc -globaldce  $(BUILD_DIR)/$(APP).ll -S -o  $(BUILD_DIR)/$(APP).visc.ll
-	$(OPT) -load LLVMGenVISC.so -genvisc -globaldce  $(BUILD_DIR)/$(APP)_promise.ll -S -o  $(BUILD_DIR)/$(APP)_promise.visc.ll
 	$(OPT) -load LLVMGenVISC.so -genvisc -globaldce  $(BUILD_DIR)/$(APP)_loop.ll -S -o  $(BUILD_DIR)/$(APP)_loop.visc.ll
 	$(OPT) $(VISC_OPTFLAGS)  $(BUILD_DIR)/$(APP).visc.ll  -o  $(BUILD_DIR)/$(APP)_cudnn.bc
-	#$(OPT) $(VISC_OPTFLAGS2) $(BUILD_DIR)/$(APP)_promise.visc.ll  -o  $(BUILD_DIR)/$(APP)_promise.bc
-	$(OPT) $(VISC_OPTFLAGS3) $(BUILD_DIR)/$(APP)_promise.visc.ll  -o  $(BUILD_DIR)/$(APP)_wrapperapi.bc
 	$(OPT) $(VISC_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.visc.ll  -o  $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc
 	$(OPT) $(VISC_PRED_OPTFLAGS3) $(BUILD_DIR)/$(APP)_promise.visc.ll  -o  $(BUILD_DIR)/$(APP)_pred_wrapperapi.bc
 	$(OPT) $(VISC_PRED_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.visc.ll  -o  $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc
 	$(LLVM_LINK) $(BUILD_DIR)/$(APP)_cudnn.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_cudnn_linked.bc
-	#$(LLVM_LINK) $(BUILD_DIR)/$(APP)_promise.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_promise_linked.bc
-	$(LLVM_LINK) $(BUILD_DIR)/$(APP)_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_wrapperapi_linked.bc
 	$(LLVM_LINK) $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked.bc
 	$(LLVM_LINK) $(BUILD_DIR)/$(APP)_pred_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_pred_wrapperapi_linked.bc
 	$(LLVM_LINK) $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked.bc
 	$(CC) $(BUILD_DIR)/$(APP)_cudnn_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_cudnn_linked $(LINKER_FLAGS)
-	#$(CC) $(BUILD_DIR)/$(APP)_promise_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_promise_linked $(LINKER_FLAGS)
-	$(CC) $(BUILD_DIR)/$(APP)_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_wrapperapi_linked $(LINKER_FLAGS)
 	$(CC) $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked $(LINKER_FLAGS)
 	$(CC) $(BUILD_DIR)/$(APP)_pred_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_pred_wrapperapi_linked $(LINKER_FLAGS)
 	$(CC) $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked $(LINKER_FLAGS)
diff --git a/llvm/test/VISC/DNN_Benchmarks/benchmarks/vgg16_imagenet/Makefile b/llvm/test/VISC/DNN_Benchmarks/benchmarks/vgg16_imagenet/Makefile
index 8875f2eddf39493321fb706b9eec45880819da16..f5e4d17b622deca90a98745c60df7586fd973435 100644
--- a/llvm/test/VISC/DNN_Benchmarks/benchmarks/vgg16_imagenet/Makefile
+++ b/llvm/test/VISC/DNN_Benchmarks/benchmarks/vgg16_imagenet/Makefile
@@ -56,29 +56,43 @@ default: $(BUILD_DIR) $(TARGET)
 
 $(BUILD_DIR)/%.ll: $(SRC_DIR)/%.cpp
 	$(CC) $(CC_FLAGS) -emit-llvm src/$(APP).cpp -S -o  $(BUILD_DIR)/$(APP).ll  
+<<<<<<< HEAD
 	$(CC) $(CC_FLAGS) -emit-llvm src/$(APP)_promise.cpp -S -o $(BUILD_DIR)/$(APP)_promise.ll
+=======
+>>>>>>> 2a31471f4de89edd9180689d139be7ca65b0df08
 	$(CC) $(CC_FLAGS) -emit-llvm src/$(APP)_loop.cpp -S -o  $(BUILD_DIR)/$(APP)_loop.ll  
 
 
 $(BUILD_DIR)/%.opt.bc: $(BUILD_DIR)/%.ll
 	$(OPT) -load LLVMGenVISC.so -genvisc -globaldce  $(BUILD_DIR)/$(APP).ll -S -o  $(BUILD_DIR)/$(APP).visc.ll
+<<<<<<< HEAD
 	$(OPT) -load LLVMGenVISC.so -genvisc -globaldce  $(BUILD_DIR)/$(APP)_promise.ll -S -o  $(BUILD_DIR)/$(APP)_promise.visc.ll
 	$(OPT) -load LLVMGenVISC.so -genvisc -globaldce  $(BUILD_DIR)/$(APP)_loop.ll -S -o  $(BUILD_DIR)/$(APP)_loop.visc.ll
 	$(OPT) $(VISC_OPTFLAGS)  $(BUILD_DIR)/$(APP).visc.ll  -o  $(BUILD_DIR)/$(APP)_cudnn.bc
 	#$(OPT) $(VISC_OPTFLAGS2) $(BUILD_DIR)/$(APP)_promise.visc.ll  -o  $(BUILD_DIR)/$(APP)_promise.bc
 	$(OPT) $(VISC_OPTFLAGS3) $(BUILD_DIR)/$(APP)_promise.visc.ll  -o  $(BUILD_DIR)/$(APP)_wrapperapi.bc
+=======
+	$(OPT) -load LLVMGenVISC.so -genvisc -globaldce  $(BUILD_DIR)/$(APP)_loop.ll -S -o  $(BUILD_DIR)/$(APP)_loop.visc.ll
+	$(OPT) $(VISC_OPTFLAGS)  $(BUILD_DIR)/$(APP).visc.ll  -o  $(BUILD_DIR)/$(APP)_cudnn.bc
+>>>>>>> 2a31471f4de89edd9180689d139be7ca65b0df08
 	$(OPT) $(VISC_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.visc.ll  -o  $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc
 	$(OPT) $(VISC_PRED_OPTFLAGS3) $(BUILD_DIR)/$(APP)_promise.visc.ll  -o  $(BUILD_DIR)/$(APP)_pred_wrapperapi.bc
 	$(OPT) $(VISC_PRED_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.visc.ll  -o  $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc
 	$(LLVM_LINK) $(BUILD_DIR)/$(APP)_cudnn.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_cudnn_linked.bc
+<<<<<<< HEAD
 	#$(LLVM_LINK) $(BUILD_DIR)/$(APP)_promise.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_promise_linked.bc
 	$(LLVM_LINK) $(BUILD_DIR)/$(APP)_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_wrapperapi_linked.bc
+=======
+>>>>>>> 2a31471f4de89edd9180689d139be7ca65b0df08
 	$(LLVM_LINK) $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked.bc
 	$(LLVM_LINK) $(BUILD_DIR)/$(APP)_pred_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_pred_wrapperapi_linked.bc
 	$(LLVM_LINK) $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked.bc
 	$(CC) $(BUILD_DIR)/$(APP)_cudnn_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_cudnn_linked $(LINKER_FLAGS)
+<<<<<<< HEAD
 	#$(CC) $(BUILD_DIR)/$(APP)_promise_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_promise_linked $(LINKER_FLAGS)
 	$(CC) $(BUILD_DIR)/$(APP)_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_wrapperapi_linked $(LINKER_FLAGS)
+=======
+>>>>>>> 2a31471f4de89edd9180689d139be7ca65b0df08
 	$(CC) $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked $(LINKER_FLAGS)
 	$(CC) $(BUILD_DIR)/$(APP)_pred_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_pred_wrapperapi_linked $(LINKER_FLAGS)
 	$(CC) $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked $(LINKER_FLAGS)
diff --git a/llvm/test/VISC/DNN_Benchmarks/common/include/visc.h b/llvm/test/VISC/DNN_Benchmarks/common/include/visc.h
index 978f29e85a9aae8e310f528bc8fa7630c85d8542..9bf77b6ed654a6b309a8685acd51882ea1d95a5c 100644
--- a/llvm/test/VISC/DNN_Benchmarks/common/include/visc.h
+++ b/llvm/test/VISC/DNN_Benchmarks/common/include/visc.h
@@ -112,6 +112,10 @@ void* __visc__tensor_map3(void*, void*, void*, void*);
 void* __visc__tensor_cosineT(void*);
 void* __visc__tensor_stencil(void*);
 
+// New HPVM intrinsic for Setting Node ID
+void* __visc__node_id(int);
+
+  
 #include <unistd.h>
 
 long get_global_id(int);