[Openmp-commits] [openmp] r325218 - [CMake] Add -fno-experimental-isel for testing

Jonas Hahnfeld via Openmp-commits openmp-commits at lists.llvm.org
Thu Feb 15 00:10:22 PST 2018


Author: hahnfeld
Date: Thu Feb 15 00:10:22 2018
New Revision: 325218

URL: http://llvm.org/viewvc/llvm-project?rev=325218&view=rev
Log:
[CMake] Add -fno-experimental-isel for testing

GlobalISel doesn't yet implement blockaddress and falls back to
SelectionDAG. This results in additional branch instruction to
the next basic block which breaks the OMPT tests.
Disable GlobalISel for now when compiling the tests because fixing
them is not easily possible. See http://llvm.org/PR36313 for full
discussion history.

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

Modified:
    openmp/trunk/cmake/DetectTestCompiler/CMakeLists.txt
    openmp/trunk/cmake/OpenMPTesting.cmake

Modified: openmp/trunk/cmake/DetectTestCompiler/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/cmake/DetectTestCompiler/CMakeLists.txt?rev=325218&r1=325217&r2=325218&view=diff
==============================================================================
--- openmp/trunk/cmake/DetectTestCompiler/CMakeLists.txt (original)
+++ openmp/trunk/cmake/DetectTestCompiler/CMakeLists.txt Thu Feb 15 00:10:22 2018
@@ -1,11 +1,14 @@
 cmake_minimum_required(VERSION 2.8)
 project(DetectTestCompiler C CXX)
 
+include(CheckCCompilerFlag)
+include(CheckCXXCompilerFlag)
+
 function(write_compiler_information lang)
   set(information "${CMAKE_${lang}_COMPILER}")
   set(information "${information}\\;${CMAKE_${lang}_COMPILER_ID}")
   set(information "${information}\\;${CMAKE_${lang}_COMPILER_VERSION}")
-  set(information "${information}\\;${OpenMP_${lang}_FLAGS}")
+  set(information "${information}\\;${${lang}_FLAGS}")
   file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/${lang}CompilerInformation.txt ${information})
 endfunction(write_compiler_information)
 
@@ -15,5 +18,22 @@ if (NOT OpenMP_Found)
   set(OpenMP_CXX_FLAGS "-fopenmp")
 endif()
 
+set(C_FLAGS ${flags} ${OpenMP_C_FLAGS})
+set(CXX_FLAGS ${flags} ${OpenMP_CXX_FLAGS})
+
+# TODO: Implement blockaddress in GlobalISel and remove this flag!
+if (CMAKE_C_COMPILER_ID STREQUAL "Clang")
+  check_c_compiler_flag("-fno-experimental-isel" C_HAS_EXPERIMENTAL_ISEL_FLAG)
+  check_cxx_compiler_flag("-fno-experimental-isel" CXX_HAS_EXPERIMENTAL_ISEL_FLAG)
+  macro(add_experimental_isel_flag lang)
+    if (${lang}_HAS_EXPERIMENTAL_ISEL_FLAG)
+      set(${lang}_FLAGS "-fno-experimental-isel ${${lang}_FLAGS}")
+    endif()
+  endmacro(add_experimental_isel_flag)
+
+  add_experimental_isel_flag(C)
+  add_experimental_isel_flag(CXX)
+endif()
+
 write_compiler_information(C)
 write_compiler_information(CXX)

Modified: openmp/trunk/cmake/OpenMPTesting.cmake
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/cmake/OpenMPTesting.cmake?rev=325218&r1=325217&r2=325218&view=diff
==============================================================================
--- openmp/trunk/cmake/OpenMPTesting.cmake (original)
+++ openmp/trunk/cmake/OpenMPTesting.cmake Thu Feb 15 00:10:22 2018
@@ -117,7 +117,8 @@ else()
   # Cannot use CLANG_VERSION because we are not guaranteed that this is already set.
   set(OPENMP_TEST_COMPILER_VERSION "${LLVM_VERSION}")
   set(OPENMP_TEST_COMPILER_VERSION_MAJOR "${LLVM_MAJOR_VERSION}")
-  set(OPENMP_TEST_COMPILER_OPENMP_FLAGS "-fopenmp")
+  # TODO: Implement blockaddress in GlobalISel and remove this flag!
+  set(OPENMP_TEST_COMPILER_OPENMP_FLAGS "-fopenmp -fno-experimental-isel")
 endif()
 
 # Function to set compiler features for use in lit.




More information about the Openmp-commits mailing list