summaryrefslogtreecommitdiffstats
path: root/openmp/cmake/DetectTestCompiler
diff options
context:
space:
mode:
authorJonas Hahnfeld <hahnjo@hahnjo.de>2018-02-15 08:10:22 +0000
committerJonas Hahnfeld <hahnjo@hahnjo.de>2018-02-15 08:10:22 +0000
commit6f9e25d3824fb7b03dc6a403e1962d80a9c88ebe (patch)
treefd123963517b66394022b47f8023f77b9a1cdfa2 /openmp/cmake/DetectTestCompiler
parentb65b078d4d9d922ad6d30999a26fd76620298081 (diff)
downloadbcm5719-llvm-6f9e25d3824fb7b03dc6a403e1962d80a9c88ebe.tar.gz
bcm5719-llvm-6f9e25d3824fb7b03dc6a403e1962d80a9c88ebe.zip
[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 llvm-svn: 325218
Diffstat (limited to 'openmp/cmake/DetectTestCompiler')
-rw-r--r--openmp/cmake/DetectTestCompiler/CMakeLists.txt22
1 files changed, 21 insertions, 1 deletions
diff --git a/openmp/cmake/DetectTestCompiler/CMakeLists.txt b/openmp/cmake/DetectTestCompiler/CMakeLists.txt
index 82d287b8e00..c2f408c55f3 100644
--- a/openmp/cmake/DetectTestCompiler/CMakeLists.txt
+++ b/openmp/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 @@ 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)
OpenPOWER on IntegriCloud