From 7fa7b0cbd8f8d43c2237b75423cd25e74edde820 Mon Sep 17 00:00:00 2001 From: Michael Kruse Date: Wed, 6 Apr 2022 19:20:07 -0500 Subject: [PATCH] [libomptarget] Add device RTL to regression test dependencies. In a clean build directory, `check-openmp` or `check-libomptarget` will fail because of missing device RTL .bc files. Ensure that the new targets new custom targets `omptarget.devicertl.nvptx` and `omptarget.devicertl.amdgpu` (corresponding to the plugin rtl targets `omptarget.rtl.cuda`, respectively `omptarget.rlt.amdgpu` ) are dependencies of the regression tests. Reviewed By: JonChesterfield Differential Revision: https://reviews.llvm.org/D123177 --- openmp/libomptarget/DeviceRTL/CMakeLists.txt | 3 +++ openmp/libomptarget/plugins/amdgpu/CMakeLists.txt | 3 +++ openmp/libomptarget/plugins/cuda/CMakeLists.txt | 3 +++ 3 files changed, 9 insertions(+) diff --git a/openmp/libomptarget/DeviceRTL/CMakeLists.txt b/openmp/libomptarget/DeviceRTL/CMakeLists.txt index 34b488c11fa4..6d6fd62b6eb5 100644 --- a/openmp/libomptarget/DeviceRTL/CMakeLists.txt +++ b/openmp/libomptarget/DeviceRTL/CMakeLists.txt @@ -225,16 +225,19 @@ function(compileDeviceRTLLibrary target_cpu target_name) add_custom_command(TARGET ${bclib_target_name} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/${bclib_name} ${LIBOMPTARGET_LIBRARY_DIR}) + add_dependencies("omptarget.devicertl.${target_name}" "${bclib_target_name}") # Install bitcode library under the lib destination folder. install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${bclib_name} DESTINATION "${OPENMP_INSTALL_LIBDIR}") endfunction() # Generate a Bitcode library for all the compute capabilities the user requested +add_custom_target(omptarget.devicertl.nvptx) foreach(sm ${nvptx_sm_list}) compileDeviceRTLLibrary(sm_${sm} nvptx -target nvptx64-nvidia-cuda -Xclang -target-feature -Xclang +ptx61 "-D__CUDA_ARCH__=${sm}0") endforeach() +add_custom_target(omptarget.devicertl.amdgpu) foreach(mcpu ${amdgpu_mcpus}) compileDeviceRTLLibrary(${mcpu} amdgpu -target amdgcn-amd-amdhsa -D__AMDGCN__ -nogpulib) endforeach() diff --git a/openmp/libomptarget/plugins/amdgpu/CMakeLists.txt b/openmp/libomptarget/plugins/amdgpu/CMakeLists.txt index 1968ae05e9f2..9bf54b205fa8 100644 --- a/openmp/libomptarget/plugins/amdgpu/CMakeLists.txt +++ b/openmp/libomptarget/plugins/amdgpu/CMakeLists.txt @@ -71,6 +71,7 @@ add_library(omptarget.rtl.amdgpu SHARED src/rtl.cpp ${LIBOMPTARGET_EXTRA_SOURCE} ) +add_dependencies(omptarget.rtl.amdgpu omptarget.devicertl.amdgpu) # Install plugin under the lib destination folder. # When we build for debug, OPENMP_LIBDIR_SUFFIX get set to -debug @@ -113,5 +114,7 @@ if (${amdgpu_arch_result}) else() # Report to the parent scope that we are building a plugin for amdgpu set(LIBOMPTARGET_SYSTEM_TARGETS "${LIBOMPTARGET_SYSTEM_TARGETS} amdgcn-amd-amdhsa amdgcn-amd-amdhsa-newDriver" PARENT_SCOPE) + list(APPEND LIBOMPTARGET_TESTED_PLUGINS "omptarget.rtl.amdgpu") + set(LIBOMPTARGET_TESTED_PLUGINS "${LIBOMPTARGET_TESTED_PLUGINS}" PARENT_SCOPE) endif() diff --git a/openmp/libomptarget/plugins/cuda/CMakeLists.txt b/openmp/libomptarget/plugins/cuda/CMakeLists.txt index ad878bf210b3..b2d023c83c90 100644 --- a/openmp/libomptarget/plugins/cuda/CMakeLists.txt +++ b/openmp/libomptarget/plugins/cuda/CMakeLists.txt @@ -52,6 +52,7 @@ else() add_library(omptarget.rtl.cuda SHARED src/rtl.cpp dynamic_cuda/cuda.cpp) set (LIBOMPTARGET_DEP_LIBRARIES ${CMAKE_DL_LIBS}) endif() +add_dependencies(omptarget.rtl.cuda omptarget.devicertl.nvptx) # Install plugin under the lib destination folder. install(TARGETS omptarget.rtl.cuda LIBRARY DESTINATION "${OPENMP_INSTALL_LIBDIR}") @@ -72,6 +73,8 @@ target_link_libraries(omptarget.rtl.cuda if (LIBOMPTARGET_CAN_LINK_LIBCUDA OR LIBOMPTARGET_FORCE_DLOPEN_LIBCUDA) libomptarget_say("Enable tests using CUDA plugin") set(LIBOMPTARGET_SYSTEM_TARGETS "${LIBOMPTARGET_SYSTEM_TARGETS} nvptx64-nvidia-cuda nvptx64-nvidia-cuda-newDriver" PARENT_SCOPE) + list(APPEND LIBOMPTARGET_TESTED_PLUGINS "omptarget.rtl.cuda") + set(LIBOMPTARGET_TESTED_PLUGINS "${LIBOMPTARGET_TESTED_PLUGINS}" PARENT_SCOPE) else() libomptarget_say("Disabling tests using CUDA plugin as cuda may not be available") endif() -- GitLab