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