Loading kitsune/CMakeLists.txt +1 −0 Original line number Diff line number Diff line Loading @@ -84,6 +84,7 @@ find_package(OpenCL) option(KITSUNE_ENABLE_OPENCL_TARGET "Enable SPIRV+OpenCL backend target." FALSE) # ${OpenCL_FOUND} if (KITSUNE_ENABLE_OPENCL_TARGET) add_definitions(-DKITSUNE_ENABLE_OPENCL_TARGET) set(OPENCL_EXTRA_LINK_LIBS "-lkitopencl" CACHE STRING "Extra link libraries for OpenCL runtime target." Loading llvm/include/llvm/Transforms/Tapir/TapirTargetIDs.h +0 −1 Original line number Diff line number Diff line Loading @@ -29,7 +29,6 @@ enum class TapirTargetID { OpenMP, // Lower to OpenMP Qthreads, // Lower to Qthreads Realm, // Lower to Realm OpenCL, // Lower to OpenCL Last_TapirTargetID }; Loading llvm/lib/Transforms/Tapir/CMakeLists.txt +3 −2 Original line number Diff line number Diff line Loading @@ -24,7 +24,8 @@ add_llvm_component_library(LLVMTapirOpts DEPENDS intrinsics_gen LINK_LIBS LLVMSPIRVLib ) if(KITSUNE_ENABLE_OPENCL_TARGET) target_link_libraries(LLVMTapirOpts LLVMSPIRVLib) endif() llvm/lib/Transforms/Tapir/OpenCLABI.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -24,7 +24,9 @@ #include "llvm/Transforms/Scalar/GVN.h" #include "llvm/Transforms/Vectorize.h" #include "llvm/Support/TargetRegistry.h" #ifdef KITSUNE_ENABLE_OPENCL_TARGET #include <LLVMSPIRVLib/LLVMSPIRVLib.h> #endif #include <sstream> using namespace llvm; Loading Loading @@ -386,11 +388,13 @@ void SPIRVLoop::processOutlinedLoopCall(TapirLoopInfo &TL, TaskOutlineInfo &TOI, // generate spirv kernel code std::ostringstream str; std::string ErrMsg; #ifdef KITSUNE_ENABLE_OPENCL_TARGET bool success = writeSpirv(&SPIRVM, str, ErrMsg); if(!success){ std::cerr << "Failed to compile to spirv: " << ErrMsg << std::endl; exit(1); } #endif auto s = str.str(); Constant *SPIRV = ConstantDataArray::getRaw(s, s.length(), Int8Ty); SPIRVGlobal = new GlobalVariable(M, SPIRV->getType(), true, Loading Loading
kitsune/CMakeLists.txt +1 −0 Original line number Diff line number Diff line Loading @@ -84,6 +84,7 @@ find_package(OpenCL) option(KITSUNE_ENABLE_OPENCL_TARGET "Enable SPIRV+OpenCL backend target." FALSE) # ${OpenCL_FOUND} if (KITSUNE_ENABLE_OPENCL_TARGET) add_definitions(-DKITSUNE_ENABLE_OPENCL_TARGET) set(OPENCL_EXTRA_LINK_LIBS "-lkitopencl" CACHE STRING "Extra link libraries for OpenCL runtime target." Loading
llvm/include/llvm/Transforms/Tapir/TapirTargetIDs.h +0 −1 Original line number Diff line number Diff line Loading @@ -29,7 +29,6 @@ enum class TapirTargetID { OpenMP, // Lower to OpenMP Qthreads, // Lower to Qthreads Realm, // Lower to Realm OpenCL, // Lower to OpenCL Last_TapirTargetID }; Loading
llvm/lib/Transforms/Tapir/CMakeLists.txt +3 −2 Original line number Diff line number Diff line Loading @@ -24,7 +24,8 @@ add_llvm_component_library(LLVMTapirOpts DEPENDS intrinsics_gen LINK_LIBS LLVMSPIRVLib ) if(KITSUNE_ENABLE_OPENCL_TARGET) target_link_libraries(LLVMTapirOpts LLVMSPIRVLib) endif()
llvm/lib/Transforms/Tapir/OpenCLABI.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -24,7 +24,9 @@ #include "llvm/Transforms/Scalar/GVN.h" #include "llvm/Transforms/Vectorize.h" #include "llvm/Support/TargetRegistry.h" #ifdef KITSUNE_ENABLE_OPENCL_TARGET #include <LLVMSPIRVLib/LLVMSPIRVLib.h> #endif #include <sstream> using namespace llvm; Loading Loading @@ -386,11 +388,13 @@ void SPIRVLoop::processOutlinedLoopCall(TapirLoopInfo &TL, TaskOutlineInfo &TOI, // generate spirv kernel code std::ostringstream str; std::string ErrMsg; #ifdef KITSUNE_ENABLE_OPENCL_TARGET bool success = writeSpirv(&SPIRVM, str, ErrMsg); if(!success){ std::cerr << "Failed to compile to spirv: " << ErrMsg << std::endl; exit(1); } #endif auto s = str.str(); Constant *SPIRV = ConstantDataArray::getRaw(s, s.length(), Int8Ty); SPIRVGlobal = new GlobalVariable(M, SPIRV->getType(), true, Loading