[Openmp-commits] [PATCH] D43195: [CMake] Add -fno-experimental-isel for testing

Jonas Hahnfeld via Phabricator via Openmp-commits openmp-commits at lists.llvm.org
Mon Feb 12 07:53:48 PST 2018


Hahnfeld created this revision.
Hahnfeld added reviewers: aemerson, rovka.
Herald added subscribers: openmp-commits, mgorny.

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.


Repository:
  rOMP OpenMP

https://reviews.llvm.org/D43195

Files:
  cmake/DetectTestCompiler/CMakeLists.txt
  cmake/OpenMPTesting.cmake


Index: cmake/OpenMPTesting.cmake
===================================================================
--- cmake/OpenMPTesting.cmake
+++ cmake/OpenMPTesting.cmake
@@ -117,7 +117,8 @@
   # 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.
Index: cmake/DetectTestCompiler/CMakeLists.txt
===================================================================
--- cmake/DetectTestCompiler/CMakeLists.txt
+++ cmake/DetectTestCompiler/CMakeLists.txt
@@ -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 @@
   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)


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D43195.133864.patch
Type: text/x-patch
Size: 2274 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/openmp-commits/attachments/20180212/de010087/attachment.bin>


More information about the Openmp-commits mailing list