diff options
| author | Jonas Hahnfeld <hahnjo@hahnjo.de> | 2018-02-15 08:10:22 +0000 |
|---|---|---|
| committer | Jonas Hahnfeld <hahnjo@hahnjo.de> | 2018-02-15 08:10:22 +0000 |
| commit | 6f9e25d3824fb7b03dc6a403e1962d80a9c88ebe (patch) | |
| tree | fd123963517b66394022b47f8023f77b9a1cdfa2 /openmp/cmake/DetectTestCompiler | |
| parent | b65b078d4d9d922ad6d30999a26fd76620298081 (diff) | |
| download | bcm5719-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.txt | 22 |
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) |

