aboutsummaryrefslogtreecommitdiff
path: root/libc
diff options
context:
space:
mode:
authorJoseph Huber <jhuber6@vols.utk.edu>2023-06-30 22:08:42 -0500
committerJoseph Huber <jhuber6@vols.utk.edu>2023-07-07 12:36:46 -0500
commit691dc2d10d4bc5a8e6cea266f201693aee46b40d (patch)
treebee624f9c07f5b1c3207e778ec3d4ff5d8f7fa03 /libc
parentfa78983bcb355bbe9a3cf40870a2378d03ffb591 (diff)
downloadllvm-691dc2d10d4bc5a8e6cea266f201693aee46b40d.zip
llvm-691dc2d10d4bc5a8e6cea266f201693aee46b40d.tar.gz
llvm-691dc2d10d4bc5a8e6cea266f201693aee46b40d.tar.bz2
[Libomptarget] Begin implementing support for RPC services
This patch adds the intial support for running an RPC server in libomptarget to handle host services. We interface with the library provided by the `libc` project to stand up a basic server. We introduce a new type that is controlled by the plugin and has each device intialize its interface. We then run a basic server to check the RPC buffer. This patch does not fully implement the interface. In the future each plugin will want to define special handlers via the interface to support things like malloc or H2D copies coming from RPC. We will also want to allow the plugin to specify t he number of ports. This is currently capped in the implementation but will be adjusted soon. Right now running the server is handled by whatever thread ends up doing the waiting. This is probably not a completely sound solution but I am not overly familiar with the behaviour of OpenMP tasks and what would be required here. This works okay with synchrnous regions, and somewhat fine with `nowait` regions, but I've observed some weird behavior when one of those regions calls `exit`. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D154312
Diffstat (limited to 'libc')
-rw-r--r--libc/CMakeLists.txt2
1 files changed, 1 insertions, 1 deletions
diff --git a/libc/CMakeLists.txt b/libc/CMakeLists.txt
index 6acdb65..4be92ba 100644
--- a/libc/CMakeLists.txt
+++ b/libc/CMakeLists.txt
@@ -92,7 +92,7 @@ include(LLVMLibCArchitectures)
if(LIBC_TARGET_ARCHITECTURE_IS_GPU)
set(LIBC_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR}/include)
set(LIBC_INSTALL_INCLUDE_DIR ${CMAKE_INSTALL_INCLUDEDIR}/gpu-none-llvm)
- set(LIBC_LIBRARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/lib)
+ set(LIBC_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR})
elseif(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND LIBC_ENABLE_USE_BY_CLANG)
set(LIBC_INCLUDE_DIR ${LLVM_BINARY_DIR}/include/${LLVM_DEFAULT_TARGET_TRIPLE})
set(LIBC_INSTALL_INCLUDE_DIR ${CMAKE_INSTALL_INCLUDEDIR}/${LLVM_DEFAULT_TARGET_TRIPLE})