diff --git a/offload/CMakeLists.txt b/offload/CMakeLists.txt index 83d614d177b1..94a9867da2d3 100644 --- a/offload/CMakeLists.txt +++ b/offload/CMakeLists.txt @@ -49,10 +49,6 @@ list(INSERT CMAKE_MODULE_PATH 0 "${LLVM_COMMON_CMAKE_UTILS}/Modules" ) -set(OPENMP_ENABLE_WERROR ${LLVM_ENABLE_WERROR}) -# If building in tree, we honor the same install suffix LLVM uses. -set(OPENMP_INSTALL_LIBDIR "lib${LLVM_LIBDIR_SUFFIX}") - set(OPENMP_TEST_C_COMPILER_default "${LLVM_TOOLS_BINARY_DIR}/clang${CMAKE_EXECUTABLE_SUFFIX}") set(OPENMP_TEST_CXX_COMPILER_default "${LLVM_TOOLS_BINARY_DIR}/clang++${CMAKE_EXECUTABLE_SUFFIX}") set(OPENMP_TEST_Fortran_COMPILER_default "${LLVM_TOOLS_BINARY_DIR}/flang${CMAKE_EXECUTABLE_SUFFIX}") @@ -128,11 +124,8 @@ if(LIBOMPTARGET_PLUGINS_TO_BUILD STREQUAL "all") set(LIBOMPTARGET_PLUGINS_TO_BUILD ${LIBOMPTARGET_ALL_PLUGIN_TARGETS}) endif() -# Add host if not already in LIBOMPTARGET_PLUGINS_TO_BUILD -list(FIND LIBOMPTARGET_PLUGINS_TO_BUILD "host" FOUND_HOST) -if(FOUND_HOST EQUAL -1) - list(APPEND LIBOMPTARGET_PLUGINS_TO_BUILD "host") -endif() +list(APPEND LIBOMPTARGET_PLUGINS_TO_BUILD "host") +list(REMOVE_DUPLICATES LIBOMPTARGET_PLUGINS_TO_BUILD) if(NOT (CMAKE_SYSTEM_PROCESSOR MATCHES "(x86_64)|(ppc64le)|(aarch64)$" AND CMAKE_SYSTEM_NAME MATCHES "Linux")) diff --git a/offload/cmake/Modules/LibomptargetGetDependencies.cmake b/offload/cmake/Modules/LibomptargetGetDependencies.cmake index 4c44e4cf8fab..9748a5ef89d4 100644 --- a/offload/cmake/Modules/LibomptargetGetDependencies.cmake +++ b/offload/cmake/Modules/LibomptargetGetDependencies.cmake @@ -30,41 +30,22 @@ endif() ################################################################################ # Looking for NVIDIA GPUs... ################################################################################ -set(LIBOMPTARGET_DEP_CUDA_ARCH "sm_35") - -if(TARGET nvptx-arch) - get_property(LIBOMPTARGET_NVPTX_ARCH TARGET nvptx-arch PROPERTY LOCATION) -else() - find_program(LIBOMPTARGET_NVPTX_ARCH NAMES nvptx-arch - PATHS ${LLVM_TOOLS_BINARY_DIR}) -endif() - -if(LIBOMPTARGET_NVPTX_ARCH) - execute_process(COMMAND ${LIBOMPTARGET_NVPTX_ARCH} +if(LIBOMPTARGET_OFFLOAD_ARCH) + execute_process(COMMAND ${LIBOMPTARGET_OFFLOAD_ARCH} "--only=nvptx" OUTPUT_VARIABLE LIBOMPTARGET_NVPTX_ARCH_OUTPUT OUTPUT_STRIP_TRAILING_WHITESPACE) string(REPLACE "\n" ";" nvptx_arch_list "${LIBOMPTARGET_NVPTX_ARCH_OUTPUT}") if(nvptx_arch_list) set(LIBOMPTARGET_FOUND_NVIDIA_GPU TRUE) set(LIBOMPTARGET_NVPTX_DETECTED_ARCH_LIST "${nvptx_arch_list}") - list(GET nvptx_arch_list 0 LIBOMPTARGET_DEP_CUDA_ARCH) endif() endif() - ################################################################################ # Looking for AMD GPUs... ################################################################################ - -if(TARGET amdgpu-arch) - get_property(LIBOMPTARGET_AMDGPU_ARCH TARGET amdgpu-arch PROPERTY LOCATION) -else() - find_program(LIBOMPTARGET_AMDGPU_ARCH NAMES amdgpu-arch - PATHS ${LLVM_TOOLS_BINARY_DIR}) -endif() - -if(LIBOMPTARGET_AMDGPU_ARCH) - execute_process(COMMAND ${LIBOMPTARGET_AMDGPU_ARCH} +if(LIBOMPTARGET_OFFLOAD_ARCH) + execute_process(COMMAND ${LIBOMPTARGET_OFFLOAD_ARCH} "--only=amdgpu" OUTPUT_VARIABLE LIBOMPTARGET_AMDGPU_ARCH_OUTPUT OUTPUT_STRIP_TRAILING_WHITESPACE) string(REPLACE "\n" ";" amdgpu_arch_list "${LIBOMPTARGET_AMDGPU_ARCH_OUTPUT}") @@ -97,4 +78,4 @@ if(LIBOMPTARGET_OFFLOAD_ARCH) endif() endif() -set(OPENMP_PTHREAD_LIB ${LLVM_PTHREAD_LIB}) +set(OFFLOAD_PTHREAD_LIB ${LLVM_PTHREAD_LIB}) diff --git a/offload/cmake/OpenMPTesting.cmake b/offload/cmake/OpenMPTesting.cmake index 0a3dde4af74b..6b126217b2aa 100644 --- a/offload/cmake/OpenMPTesting.cmake +++ b/offload/cmake/OpenMPTesting.cmake @@ -2,14 +2,14 @@ set(ENABLE_CHECK_TARGETS TRUE) if (TARGET FileCheck) - set(OPENMP_FILECHECK_EXECUTABLE ${LLVM_TOOLS_BINARY_DIR}/FileCheck) + set(OFFLOAD_FILECHECK_EXECUTABLE ${LLVM_TOOLS_BINARY_DIR}/FileCheck) else() message(STATUS "Cannot find 'FileCheck'.") message(WARNING "The check targets will not be available!") set(ENABLE_CHECK_TARGETS FALSE) endif() -set(OPENMP_NOT_EXECUTABLE ${LLVM_TOOLS_BINARY_DIR}/not) +set(OFFLOAD_NOT_EXECUTABLE ${LLVM_TOOLS_BINARY_DIR}/not) set(OFFLOAD_DEVICE_INFO_EXECUTABLE ${LLVM_RUNTIME_OUTPUT_INTDIR}/llvm-offload-device-info) set(OFFLOAD_TBLGEN_EXECUTABLE ${LLVM_RUNTIME_OUTPUT_INTDIR}/offload-tblgen) @@ -77,25 +77,20 @@ function(add_offload_testsuite target comment) cmake_parse_arguments(ARG "EXCLUDE_FROM_CHECK_ALL" "" "DEPENDS;ARGS" ${ARGN}) # EXCLUDE_FROM_CHECK_ALL excludes the test ${target} out of check-offload. if (NOT ARG_EXCLUDE_FROM_CHECK_ALL) - # Register the testsuites and depends for the check-offload rule. - set_property(GLOBAL APPEND PROPERTY OPENMP_LIT_TESTSUITES ${ARG_UNPARSED_ARGUMENTS}) - set_property(GLOBAL APPEND PROPERTY OPENMP_LIT_DEPENDS ${ARG_DEPENDS}) + set_property(GLOBAL APPEND PROPERTY OFFLOAD_LIT_TESTSUITES ${ARG_UNPARSED_ARGUMENTS}) + set_property(GLOBAL APPEND PROPERTY OFFLOAD_LIT_DEPENDS ${ARG_DEPENDS}) endif() - if (ARG_EXCLUDE_FROM_CHECK_ALL) - add_lit_testsuite(${target} - ${comment} - ${ARG_UNPARSED_ARGUMENTS} - EXCLUDE_FROM_CHECK_ALL - DEPENDS clang FileCheck not ${ARG_DEPENDS} - ARGS ${ARG_ARGS} - ) - else() - add_lit_testsuite(${target} - ${comment} - ${ARG_UNPARSED_ARGUMENTS} - DEPENDS clang FileCheck not ${ARG_DEPENDS} - ARGS ${ARG_ARGS} - ) + set(extra_args) + if(ARG_EXCLUDE_FROM_CHECK_ALL) + list(APPEND extra_args EXCLUDE_FROM_CHECK_ALL) endif() + + add_lit_testsuite(${target} + ${comment} + ${ARG_UNPARSED_ARGUMENTS} + ${extra_args} + DEPENDS clang FileCheck not ${ARG_DEPENDS} + ARGS ${ARG_ARGS} + ) endfunction() diff --git a/offload/plugins-nextgen/CMakeLists.txt b/offload/plugins-nextgen/CMakeLists.txt index a72befd9416b..5165ed173f19 100644 --- a/offload/plugins-nextgen/CMakeLists.txt +++ b/offload/plugins-nextgen/CMakeLists.txt @@ -39,7 +39,7 @@ function(add_target_library target_name lib_name) target_include_directories(${target_name} PUBLIC ${common_dir}/include ${common_bin_dir}/include) target_link_libraries(${target_name} PRIVATE - PluginCommon ${OPENMP_PTHREAD_LIB}) + PluginCommon ${OFFLOAD_PTHREAD_LIB}) target_compile_definitions(${target_name} PRIVATE TARGET_NAME=${lib_name}) target_compile_definitions(${target_name} PRIVATE diff --git a/offload/plugins-nextgen/level_zero/CMakeLists.txt b/offload/plugins-nextgen/level_zero/CMakeLists.txt index 7af07bfb64b7..11e99476c7dc 100644 --- a/offload/plugins-nextgen/level_zero/CMakeLists.txt +++ b/offload/plugins-nextgen/level_zero/CMakeLists.txt @@ -24,7 +24,6 @@ target_include_directories(omptarget.rtl.level_zero PRIVATE ${LIBOMPTARGET_INCLUDE_DIR} ${LIBOMPTARGET_DEP_LEVEL_ZERO_INCLUDE_DIR} ${LIBOMPTARGET_LLVM_INCLUDE_DIRS} - ${LIBOMPTARGET_OMP_HEADER_DIR} ) if (EXISTS ${LIBOMPTARGET_DEP_LEVEL_ZERO_LIBRARY} AND NOT "level_zero" IN_LIST LIBOMPTARGET_DLOPEN_PLUGINS) diff --git a/offload/test/lit.site.cfg.in b/offload/test/lit.site.cfg.in index 47b1fbd18514..d1b3b6ff1b39 100644 --- a/offload/test/lit.site.cfg.in +++ b/offload/test/lit.site.cfg.in @@ -9,7 +9,7 @@ config.test_openmp_flags = "@OPENMP_TEST_OPENMP_FLAGS@" config.test_extra_flags = "@OPENMP_TEST_FLAGS@" config.cuda_path = "@CUDA_ROOT@" config.cuda_libdir = "@CUDA_LIBDIR@" -config.cuda_test_arch = "@LIBOMPTARGET_DEP_CUDA_ARCH@" +config.cuda_test_arch = "@LIBOMPTARGET_NVPTX_DETECTED_ARCH_LIST@" config.amdgpu_test_arch = "@LIBOMPTARGET_AMDGPU_DETECTED_ARCH_LIST@" config.libomptarget_obj_root = "@CMAKE_CURRENT_BINARY_DIR@/@CURRENT_TARGET@" config.library_dir = "@LIBOMPTARGET_LIBRARY_DIR@" @@ -21,8 +21,8 @@ config.llvm_lib_directory = "@LIBOMPTARGET_LLVM_LIBRARY_DIR@" config.operating_system = "@CMAKE_SYSTEM_NAME@" config.libomptarget_all_targets = "@LIBOMPTARGET_ALL_TARGETS@".split() config.libomptarget_current_target = "@CURRENT_TARGET@" -config.libomptarget_filecheck = "@OPENMP_FILECHECK_EXECUTABLE@" -config.libomptarget_not = "@OPENMP_NOT_EXECUTABLE@" +config.libomptarget_filecheck = "@OFFLOAD_FILECHECK_EXECUTABLE@" +config.libomptarget_not = "@OFFLOAD_NOT_EXECUTABLE@" config.offload_device_info = "@OFFLOAD_DEVICE_INFO_EXECUTABLE@" config.libomptarget_debug = @LIBOMPTARGET_DEBUG@ config.has_libomptarget_ompt = @LIBOMPTARGET_OMPT_SUPPORT@ diff --git a/offload/tools/CMakeLists.txt b/offload/tools/CMakeLists.txt index 13772a4a675e..7010ba93a432 100644 --- a/offload/tools/CMakeLists.txt +++ b/offload/tools/CMakeLists.txt @@ -1,15 +1,13 @@ -set(OPENMP_TOOLS_INSTALL_DIR "${CMAKE_INSTALL_BINDIR}" CACHE PATH +set(OFFLOAD_TOOLS_INSTALL_DIR "${CMAKE_INSTALL_BINDIR}" CACHE PATH "Path for binary subdirectory (defaults to '${CMAKE_INSTALL_BINDIR}')") -mark_as_advanced(OPENMP_TOOLS_INSTALL_DIR) +mark_as_advanced(OFFLOAD_TOOLS_INSTALL_DIR) -# Move these macros to AddOpenMP if such a CMake module is ever created. - -macro(add_openmp_tool name) - llvm_add_tool(OPENMP ${ARGV}) +macro(add_offload_tool name) + llvm_add_tool(OFFLOAD ${ARGV}) endmacro() -macro(add_openmp_tool_symlink name) - llvm_add_tool_symlink(OPENMP ${ARGV}) +macro(add_offload_tool_symlink name) + llvm_add_tool_symlink(OFFLOAD ${ARGV}) endmacro() add_subdirectory(deviceinfo) diff --git a/offload/tools/deviceinfo/CMakeLists.txt b/offload/tools/deviceinfo/CMakeLists.txt index cc2d0a6add8b..9d3977fbcc1f 100644 --- a/offload/tools/deviceinfo/CMakeLists.txt +++ b/offload/tools/deviceinfo/CMakeLists.txt @@ -1,6 +1,6 @@ message(STATUS "Building the llvm-offload-device-info tool") -add_openmp_tool(llvm-offload-device-info llvm-offload-device-info.cpp) +add_offload_tool(llvm-offload-device-info llvm-offload-device-info.cpp) llvm_update_compile_flags(llvm-offload-device-info) diff --git a/offload/tools/kernelreplay/CMakeLists.txt b/offload/tools/kernelreplay/CMakeLists.txt index 690edd6d5a68..66c4b2159822 100644 --- a/offload/tools/kernelreplay/CMakeLists.txt +++ b/offload/tools/kernelreplay/CMakeLists.txt @@ -1,6 +1,6 @@ message(STATUS "Building the llvm-omp-kernel-replay tool") -add_openmp_tool(llvm-omp-kernel-replay llvm-omp-kernel-replay.cpp) +add_offload_tool(llvm-omp-kernel-replay llvm-omp-kernel-replay.cpp) llvm_update_compile_flags(llvm-omp-kernel-replay)