[Openmp-commits] [openmp] r318847 - [CMake] Re-enable libomptarget and restrict tests to Clang 6.0.0

Jonas Hahnfeld via Openmp-commits openmp-commits at lists.llvm.org
Wed Nov 22 09:15:18 PST 2017


Author: hahnfeld
Date: Wed Nov 22 09:15:18 2017
New Revision: 318847

URL: http://llvm.org/viewvc/llvm-project?rev=318847&view=rev
Log:
[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

Modified:
    openmp/trunk/CMakeLists.txt
    openmp/trunk/libomptarget/test/CMakeLists.txt

Modified: openmp/trunk/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/CMakeLists.txt?rev=318847&r1=318846&r2=318847&view=diff
==============================================================================
--- openmp/trunk/CMakeLists.txt (original)
+++ openmp/trunk/CMakeLists.txt Wed Nov 22 09:15:18 2017
@@ -5,10 +5,7 @@ set(OPENMP_LLVM_TOOLS_DIR "" CACHE PATH
 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.

Modified: openmp/trunk/libomptarget/test/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/libomptarget/test/CMakeLists.txt?rev=318847&r1=318846&r2=318847&view=diff
==============================================================================
--- openmp/trunk/libomptarget/test/CMakeLists.txt (original)
+++ openmp/trunk/libomptarget/test/CMakeLists.txt Wed Nov 22 09:15:18 2017
@@ -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




More information about the Openmp-commits mailing list