From fee00e555f9c184f1ea86cd0a4ec567ae96f6fc7 Mon Sep 17 00:00:00 2001
From: Yifan Zhao <yifanz16@illinois.edu>
Date: Mon, 27 Jan 2020 21:54:11 -0600
Subject: [PATCH] NVPTX -> OpenCL

---
 hpvm/docs/compilation.md                                      | 2 +-
 hpvm/lib/Transforms/CMakeLists.txt                            | 2 +-
 hpvm/lib/Transforms/DFG2LLVM_CPU/DFG2LLVM_CPU.cpp             | 2 +-
 .../{DFG2LLVM_NVPTX => DFG2LLVM_OpenCL}/CMakeLists.txt        | 4 ++--
 .../DFG2LLVM_OpenCL.cpp}                                      | 0
 .../DFG2LLVM_OpenCL.exports}                                  | 0
 .../{DFG2LLVM_NVPTX => DFG2LLVM_OpenCL}/LLVMBuild.txt         | 4 ++--
 hpvm/test/benchmarks/hpvm-cava/Makefile                       | 2 +-
 hpvm/test/benchmarks/parboil/common/mk/hpvm.mk                | 2 +-
 hpvm/test/benchmarks/pipeline/Makefile                        | 2 +-
 hpvm/test/benchmarks/template/Makefile                        | 2 +-
 .../DFG2LLVM_NVPTX/ThreeLevel.atomic.genvisc.ll               | 2 +-
 .../test/regressionTests/DFG2LLVM_NVPTX/ThreeLevel.genvisc.ll | 2 +-
 .../regressionTests/DFG2LLVM_NVPTX/ThreeLevel.opt.genvisc.ll  | 2 +-
 14 files changed, 14 insertions(+), 14 deletions(-)
 rename hpvm/lib/Transforms/{DFG2LLVM_NVPTX => DFG2LLVM_OpenCL}/CMakeLists.txt (78%)
 rename hpvm/lib/Transforms/{DFG2LLVM_NVPTX/DFG2LLVM_NVPTX.cpp => DFG2LLVM_OpenCL/DFG2LLVM_OpenCL.cpp} (100%)
 rename hpvm/lib/Transforms/{DFG2LLVM_NVPTX/DFG2LLVM_NVPTX.exports => DFG2LLVM_OpenCL/DFG2LLVM_OpenCL.exports} (100%)
 rename hpvm/lib/Transforms/{DFG2LLVM_NVPTX => DFG2LLVM_OpenCL}/LLVMBuild.txt (84%)

diff --git a/hpvm/docs/compilation.md b/hpvm/docs/compilation.md
index dde474ea95..6381fec7d8 100644
--- a/hpvm/docs/compilation.md
+++ b/hpvm/docs/compilation.md
@@ -5,7 +5,7 @@ Compilation of an HPVM program involves the following steps:
 2. `opt` takes (`main.ll`) and invoke the GenHPVM pass on it, which converts the HPVM-C function calls to HPVM intrinsics. This generates the HPVM textual representation (`main.hpvm.ll`).
 3. `opt` takes the HPVM textual representation (`main.hpvm.ll`) and invokes the following passes in sequence: 
     * BuildDFG: Converts the textual representation to the internal HPVM representation.
-    * LocalMem and DFG2LLVM_NVPTX: Invoked only when GPU target is selected. Generates the kernel module (`main.kernels.ll`) and the portion of the host code that invokes the kernel into the host module (`main.host.ll`).
+    * LocalMem and DFG2LLVM_OpenCL: Invoked only when GPU target is selected. Generates the kernel module (`main.kernels.ll`) and the portion of the host code that invokes the kernel into the host module (`main.host.ll`).
     * DFG2LLVM_CPU: Generates either all, or the remainder of the host module (`main.host.ll`) depending on the chosen target.
     * ClearDFG: Deletes the internal HPVM representation from memory.
 4. `clang` is used to to compile any remaining project files that would be later linked with the host module.
diff --git a/hpvm/lib/Transforms/CMakeLists.txt b/hpvm/lib/Transforms/CMakeLists.txt
index 8732e7b147..74917773b0 100644
--- a/hpvm/lib/Transforms/CMakeLists.txt
+++ b/hpvm/lib/Transforms/CMakeLists.txt
@@ -1,6 +1,6 @@
 add_subdirectory(BuildDFG)
 add_subdirectory(ClearDFG)
-add_subdirectory(DFG2LLVM_NVPTX)
+add_subdirectory(DFG2LLVM_OpenCL)
 add_subdirectory(DFG2LLVM_CPU)
 add_subdirectory(GenHPVM)
 add_subdirectory(LocalMem)
diff --git a/hpvm/lib/Transforms/DFG2LLVM_CPU/DFG2LLVM_CPU.cpp b/hpvm/lib/Transforms/DFG2LLVM_CPU/DFG2LLVM_CPU.cpp
index f555434e63..3f9f3101a3 100644
--- a/hpvm/lib/Transforms/DFG2LLVM_CPU/DFG2LLVM_CPU.cpp
+++ b/hpvm/lib/Transforms/DFG2LLVM_CPU/DFG2LLVM_CPU.cpp
@@ -1426,7 +1426,7 @@ void CGT_CPU::codeGen(DFLeafNode *N) {
     switch (N->getTag()) {
     case hpvm::GPU_TARGET:
       // A leaf node should not have an cpu function for GPU
-      // by design of DFG2LLVM_NVPTX backend
+      // by design of DFG2LLVM_OpenCL backend
       assert(!(N->hasCPUGenFuncForTarget(hpvm::GPU_TARGET)) &&
              "Leaf node not expected to have GPU GenFunc");
       break;
diff --git a/hpvm/lib/Transforms/DFG2LLVM_NVPTX/CMakeLists.txt b/hpvm/lib/Transforms/DFG2LLVM_OpenCL/CMakeLists.txt
similarity index 78%
rename from hpvm/lib/Transforms/DFG2LLVM_NVPTX/CMakeLists.txt
rename to hpvm/lib/Transforms/DFG2LLVM_OpenCL/CMakeLists.txt
index 832f6334a4..00c651eaa2 100644
--- a/hpvm/lib/Transforms/DFG2LLVM_NVPTX/CMakeLists.txt
+++ b/hpvm/lib/Transforms/DFG2LLVM_OpenCL/CMakeLists.txt
@@ -4,9 +4,9 @@ endif()
 
 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DLLVM_BUILD_DIR=${PROJECT_BINARY_DIR}")
 
-add_llvm_library( LLVMDFG2LLVM_NVPTX
+add_llvm_library( LLVMDFG2LLVM_OpenCL
   MODULE
-  DFG2LLVM_NVPTX.cpp
+  DFG2LLVM_OpenCL.cpp
 
   DEPENDS
   intrinsics_gen
diff --git a/hpvm/lib/Transforms/DFG2LLVM_NVPTX/DFG2LLVM_NVPTX.cpp b/hpvm/lib/Transforms/DFG2LLVM_OpenCL/DFG2LLVM_OpenCL.cpp
similarity index 100%
rename from hpvm/lib/Transforms/DFG2LLVM_NVPTX/DFG2LLVM_NVPTX.cpp
rename to hpvm/lib/Transforms/DFG2LLVM_OpenCL/DFG2LLVM_OpenCL.cpp
diff --git a/hpvm/lib/Transforms/DFG2LLVM_NVPTX/DFG2LLVM_NVPTX.exports b/hpvm/lib/Transforms/DFG2LLVM_OpenCL/DFG2LLVM_OpenCL.exports
similarity index 100%
rename from hpvm/lib/Transforms/DFG2LLVM_NVPTX/DFG2LLVM_NVPTX.exports
rename to hpvm/lib/Transforms/DFG2LLVM_OpenCL/DFG2LLVM_OpenCL.exports
diff --git a/hpvm/lib/Transforms/DFG2LLVM_NVPTX/LLVMBuild.txt b/hpvm/lib/Transforms/DFG2LLVM_OpenCL/LLVMBuild.txt
similarity index 84%
rename from hpvm/lib/Transforms/DFG2LLVM_NVPTX/LLVMBuild.txt
rename to hpvm/lib/Transforms/DFG2LLVM_OpenCL/LLVMBuild.txt
index fb7cae49f8..08d8b9d98d 100644
--- a/hpvm/lib/Transforms/DFG2LLVM_NVPTX/LLVMBuild.txt
+++ b/hpvm/lib/Transforms/DFG2LLVM_OpenCL/LLVMBuild.txt
@@ -1,4 +1,4 @@
-;===- ./lib/Transforms/DFG2LLVM_NVPTX/LLVMBuild.txt ------------*- Conf -*--===;
+;===- ./lib/Transforms/DFG2LLVM_OpenCL/LLVMBuild.txt ------------*- Conf -*--===;
 ;
 ;                     The LLVM Compiler Infrastructure
 ;
@@ -17,5 +17,5 @@
 
 [component_0]
 type = Library
-name = DFG2LLVM_NVPTX
+name = DFG2LLVM_OpenCL
 parent = Transforms
diff --git a/hpvm/test/benchmarks/hpvm-cava/Makefile b/hpvm/test/benchmarks/hpvm-cava/Makefile
index 552225f6e2..d7caf66883 100644
--- a/hpvm/test/benchmarks/hpvm-cava/Makefile
+++ b/hpvm/test/benchmarks/hpvm-cava/Makefile
@@ -65,7 +65,7 @@ ifeq ($(TARGET),seq)
   HPVM_OPTFLAGS += -hpvm-timers-cpu
 else
   DEVICE = GPU_TARGET
-  HPVM_OPTFLAGS = -load LLVMBuildDFG.so -load LLVMLocalMem.so -load LLVMDFG2LLVM_NVPTX.so -load LLVMDFG2LLVM_CPU.so -load LLVMClearDFG.so -localmem -dfg2llvm-nvptx -dfg2llvm-cpu -clearDFG
+  HPVM_OPTFLAGS = -load LLVMBuildDFG.so -load LLVMLocalMem.so -load LLVMDFG2LLVM_OpenCL.so -load LLVMDFG2LLVM_CPU.so -load LLVMClearDFG.so -localmem -dfg2llvm-nvptx -dfg2llvm-cpu -clearDFG
   HPVM_OPTFLAGS += -hpvm-timers-cpu -hpvm-timers-ptx
 endif
   TESTGEN_OPTFLAGS += -hpvm-timers-gen
diff --git a/hpvm/test/benchmarks/parboil/common/mk/hpvm.mk b/hpvm/test/benchmarks/parboil/common/mk/hpvm.mk
index 80e04304a9..8e3ab8e658 100755
--- a/hpvm/test/benchmarks/parboil/common/mk/hpvm.mk
+++ b/hpvm/test/benchmarks/parboil/common/mk/hpvm.mk
@@ -22,7 +22,7 @@ ifeq ($(TARGET),seq)
   HPVM_OPTFLAGS = -load LLVMBuildDFG.so -load LLVMDFG2LLVM_CPU.so -load LLVMClearDFG.so -dfg2llvm-cpu -clearDFG
 else
   DEVICE = GPU_TARGET
-  HPVM_OPTFLAGS = -load LLVMBuildDFG.so -load LLVMLocalMem.so -load LLVMDFG2LLVM_NVPTX.so -load LLVMDFG2LLVM_CPU.so -load LLVMClearDFG.so -localmem -dfg2llvm-nvptx -dfg2llvm-cpu -clearDFG
+  HPVM_OPTFLAGS = -load LLVMBuildDFG.so -load LLVMLocalMem.so -load LLVMDFG2LLVM_OpenCL.so -load LLVMDFG2LLVM_CPU.so -load LLVMClearDFG.so -localmem -dfg2llvm-nvptx -dfg2llvm-cpu -clearDFG
 endif
 
 CFLAGS += -DDEVICE=$(DEVICE)
diff --git a/hpvm/test/benchmarks/pipeline/Makefile b/hpvm/test/benchmarks/pipeline/Makefile
index 18a596cea2..36f6a1f900 100644
--- a/hpvm/test/benchmarks/pipeline/Makefile
+++ b/hpvm/test/benchmarks/pipeline/Makefile
@@ -52,7 +52,7 @@ ifeq ($(TARGET),seq)
   HPVM_OPTFLAGS += -hpvm-timers-cpu
 else
   DEVICE = GPU_TARGET
-  HPVM_OPTFLAGS = -load LLVMBuildDFG.so -load LLVMLocalMem.so -load LLVMDFG2LLVM_NVPTX.so -load LLVMDFG2LLVM_CPU.so -load LLVMClearDFG.so -localmem -dfg2llvm-nvptx -dfg2llvm-cpu -clearDFG
+  HPVM_OPTFLAGS = -load LLVMBuildDFG.so -load LLVMLocalMem.so -load LLVMDFG2LLVM_OpenCL.so -load LLVMDFG2LLVM_CPU.so -load LLVMClearDFG.so -localmem -dfg2llvm-nvptx -dfg2llvm-cpu -clearDFG
   HPVM_OPTFLAGS += -hpvm-timers-cpu -hpvm-timers-ptx
 endif
   TESTGEN_OPTFLAGS += -hpvm-timers-gen
diff --git a/hpvm/test/benchmarks/template/Makefile b/hpvm/test/benchmarks/template/Makefile
index f1125d8acd..46b1afe95d 100644
--- a/hpvm/test/benchmarks/template/Makefile
+++ b/hpvm/test/benchmarks/template/Makefile
@@ -56,7 +56,7 @@ ifeq ($(TARGET),seq)
   HPVM_OPTFLAGS += -hpvm-timers-cpu
 else
   DEVICE = GPU_TARGET
-  HPVM_OPTFLAGS = -load LLVMBuildDFG.so -load LLVMLocalMem.so -load LLVMDFG2LLVM_NVPTX.so -load LLVMDFG2LLVM_CPU.so -load LLVMClearDFG.so -localmem -dfg2llvm-nvptx -dfg2llvm-cpu -clearDFG
+  HPVM_OPTFLAGS = -load LLVMBuildDFG.so -load LLVMLocalMem.so -load LLVMDFG2LLVM_OpenCL.so -load LLVMDFG2LLVM_CPU.so -load LLVMClearDFG.so -localmem -dfg2llvm-nvptx -dfg2llvm-cpu -clearDFG
   HPVM_OPTFLAGS += -hpvm-timers-cpu -hpvm-timers-ptx
 endif
   TESTGEN_OPTFLAGS += -hpvm-timers-gen
diff --git a/hpvm/test/regressionTests/DFG2LLVM_NVPTX/ThreeLevel.atomic.genvisc.ll b/hpvm/test/regressionTests/DFG2LLVM_NVPTX/ThreeLevel.atomic.genvisc.ll
index 451035b21e..e3570bcb66 100644
--- a/hpvm/test/regressionTests/DFG2LLVM_NVPTX/ThreeLevel.atomic.genvisc.ll
+++ b/hpvm/test/regressionTests/DFG2LLVM_NVPTX/ThreeLevel.atomic.genvisc.ll
@@ -1,4 +1,4 @@
-; RUN: opt -load LLVMBuildDFG.so -load LLVMLocalMem.so -load LLVMDFG2LLVM_NVPTX.so -S -localmem -dfg2llvm-nvptx <  %s | FileCheck %s
+; RUN: opt -load LLVMBuildDFG.so -load LLVMLocalMem.so -load LLVMDFG2LLVM_OpenCL.so -S -localmem -dfg2llvm-nvptx <  %s | FileCheck %s
 ; ModuleID = 'ThreeLevel.atomic.ll'
 source_filename = "ThreeLevel.constmem.c"
 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
diff --git a/hpvm/test/regressionTests/DFG2LLVM_NVPTX/ThreeLevel.genvisc.ll b/hpvm/test/regressionTests/DFG2LLVM_NVPTX/ThreeLevel.genvisc.ll
index ed99bee9f7..b08b951800 100644
--- a/hpvm/test/regressionTests/DFG2LLVM_NVPTX/ThreeLevel.genvisc.ll
+++ b/hpvm/test/regressionTests/DFG2LLVM_NVPTX/ThreeLevel.genvisc.ll
@@ -1,4 +1,4 @@
-; RUN: opt -load LLVMBuildDFG.so -load LLVMLocalMem.so -load LLVMDFG2LLVM_NVPTX.so -S -localmem -dfg2llvm-nvptx <  %s | FileCheck %s
+; RUN: opt -load LLVMBuildDFG.so -load LLVMLocalMem.so -load LLVMDFG2LLVM_OpenCL.so -S -localmem -dfg2llvm-nvptx <  %s | FileCheck %s
 ; ModuleID = 'ThreeLevel.ll'
 source_filename = "ThreeLevel.c"
 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
diff --git a/hpvm/test/regressionTests/DFG2LLVM_NVPTX/ThreeLevel.opt.genvisc.ll b/hpvm/test/regressionTests/DFG2LLVM_NVPTX/ThreeLevel.opt.genvisc.ll
index 060608fdc5..b3cb659f96 100644
--- a/hpvm/test/regressionTests/DFG2LLVM_NVPTX/ThreeLevel.opt.genvisc.ll
+++ b/hpvm/test/regressionTests/DFG2LLVM_NVPTX/ThreeLevel.opt.genvisc.ll
@@ -1,4 +1,4 @@
-; RUN: opt -load LLVMBuildDFG.so -load LLVMLocalMem.so -load LLVMDFG2LLVM_NVPTX.so -S -localmem -dfg2llvm-nvptx <  %s | FileCheck %s
+; RUN: opt -load LLVMBuildDFG.so -load LLVMLocalMem.so -load LLVMDFG2LLVM_OpenCL.so -S -localmem -dfg2llvm-nvptx <  %s | FileCheck %s
 ; ModuleID = 'ThreeLevel.opt.ll'
 source_filename = "ThreeLevel.opt.c"
 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
-- 
GitLab