[CMake] Re-enable libomptarget and restrict tests to Clang 6.0.0

We have just fixed the codegen of omp_is_initial_device() to reliably work
when offloading to the same device, see commit r316001. This fixes the
failing tests that were the reason why we disabled the library for 5.0.

Differential Revision: https://reviews.llvm.org/D39052

llvm-svn: 318847
This commit is contained in:
Jonas Hahnfeld 2017-11-22 17:15:18 +00:00
parent 70cf4dd735
commit 318dd729cc
2 changed files with 24 additions and 4 deletions

View File

@ -5,10 +5,7 @@ set(OPENMP_LLVM_TOOLS_DIR "" CACHE PATH "Path to LLVM tools for testing")
add_subdirectory(runtime)
# The tests currently don't pass if the generic ELF plugin is built.
# TODO: Fix the tests and enable libomptarget by default on supported
# architectures and platforms.
set(ENABLE_LIBOMPTARGET OFF)
set(ENABLE_LIBOMPTARGET ON)
# Currently libomptarget cannot be compiled on Windows or MacOS X.
# Since the device plugins are only supported on Linux anyway,
# there is no point in trying to compile libomptarget on other OSes.

View File

@ -27,6 +27,29 @@ if(${LIBOMPTARGET_STANDALONE_BUILD})
"C compiler to use for testing OpenMP offloading library")
set(LIBOMPTARGET_TEST_CXX_COMPILER ${CMAKE_CXX_COMPILER} CACHE STRING
"C++ compiler to use for testing OpenMP offloading library")
if (NOT(${LIBOMPTARGET_TEST_C_COMPILER} MATCHES "clang" AND ${LIBOMPTARGET_TEST_CXX_COMPILER} MATCHES "clang"))
libomptarget_say("Can only test with Clang compiler!")
libomptarget_warning_say("The check-libomptarget target will not be available!")
return()
endif()
execute_process(
COMMAND ${LIBOMPTARGET_TEST_C_COMPILER} --version
OUTPUT_VARIABLE TEST_COMPILER_VERSION)
string(REGEX MATCH "version ([0-9.]+)" TEST_COMPILER_VERSION ${TEST_COMPILER_VERSION})
if (NOT(TEST_COMPILER_VERSION))
libomptarget_say("Unable to determine Clang compiler version!")
libomptarget_warning_say("The check-libomptarget target will not be available!")
return()
endif()
set(TEST_COMPILER_VERSION ${CMAKE_MATCH_1})
if (TEST_COMPILER_VERSION VERSION_LESS 6.0.0)
libomptarget_say("Clang compiler version does not implement all codegen, please update to 6.0.0!")
libomptarget_warning_say("The check-libomptarget target will not be available!")
return()
endif()
set(LIBOMPTARGET_TEST_OPENMP_FLAG -fopenmp CACHE STRING
"OpenMP compiler flag to use for testing OpenMP offloading library")
find_program(LIBOMPTARGET_LLVM_LIT_EXECUTABLE