diff --git a/hpvm/docs/compilation.md b/hpvm/docs/compilation.md index dde474ea95a9f62041ade0f3a0eb7388e8e24ae6..6381fec7d856c79fdd2ed31bc23fe02990c9e38d 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 8732e7b14769875d81c2c9c0e2cc286a7db58959..74917773b04146456b84db9b2bbf0814cd9bf387 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 f555434e6389cd5fcb6852323edb8195c6457e8e..3f9f3101a3b0025a67ff432684163d6b859c6eb8 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 832f6334a4bc048992ee545844941f44ef2c8fe0..00c651eaa250fc114f229f30e0cb7c121154ff96 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 fb7cae49f8452ee6f207e6f0ed87d9ea9d3e65e6..08d8b9d98d66c63cb02b4be8395b57c448482906 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 552225f6e2711867bd010bc989a9a7650c5ef87b..d7caf6688370b137e90ad300830bddd6cb8eacd4 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 80e04304a97c34948ea0b4ad483e5fe0ac629c25..8e3ab8e65856d7a80c8477748c2eccfcf7c78219 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 18a596cea2cdb3dcf56d19019f6f783cf4e3d18a..36f6a1f9005f3dadcf2a3a97c0ba27d6fb6f0ab2 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 f1125d8acda5efdbbf26b279cbad25d7a5e51822..46b1afe95df2f7f3a3f7e3a71b7952d744da5b65 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 451035b21ede68a4796ebd1a0baa3645a77a31ef..e3570bcb664811af5e07539d93d19cf8fc2bcddf 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 ed99bee9f704b3dff96abcbd50982ec64a38c2d5..b08b951800a0871b3eeb14d61246bfd032ad88e4 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 060608fdc5ae28ff52382fd722e7288c5531874f..b3cb659f9600cbbd4b12e9b1131e5c2f5112eb67 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"