aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmake/DetectTestCompiler/CMakeLists.txt22
-rw-r--r--cmake/OpenMPTesting.cmake3
2 files changed, 23 insertions, 2 deletions
diff --git a/cmake/DetectTestCompiler/CMakeLists.txt b/cmake/DetectTestCompiler/CMakeLists.txt
index 82d287b..c2f408c 100644
--- a/cmake/DetectTestCompiler/CMakeLists.txt
+++ b/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)
diff --git a/cmake/OpenMPTesting.cmake b/cmake/OpenMPTesting.cmake
index 1cff9ec..165435f 100644
--- a/cmake/OpenMPTesting.cmake
+++ b/cmake/OpenMPTesting.cmake
@@ -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.