1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 03:02:36 +01:00
llvm-mirror/cmake
Gokturk Yuksek c05d814fb9 [CMake] CheckAtomic.cmake: catch false positives in RISC-V
The check for 'HAVE_CXX_ATOMICS_WITHOUT_LIB' may create false
positives in RISC-V. This is reproducible when compiling LLVM natively
using GCC on a rv64gc (rv64imafdgc) host. Due to the 'A' (atomic)
extension, g++ replaces calls to libatomic operations on the
std::atomic<int> type with the native hardware instructions. As a
result, the compilation succeeds and the build system thinks it
doesn't need to pass '-latomic'.

Improve the reliability of the 'HAVE_CXX_ATOMICS_WITHOUT_LIB' test in
two steps:

1. Force a pre-increment on x (++x), which should force a call to a
libatomic function;

2. Because step 1 would resolve the increment to 'amoadd.w.aq' under
the 'A' extension, force the same operation on sub-word types, for
which there is no hardware support.

Reviewers: jfb, hintonda, smeenai, mgorny, JDevlieghere, jyknight
Reviewed By: jfb
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D68964
2020-02-17 18:53:41 +00:00
..
modules [CMake] CheckAtomic.cmake: catch false positives in RISC-V 2020-02-17 18:53:41 +00:00
platforms [CMake] [WinMsvc] Look for includes and libs in ${MSVC_BASE}/atlmfc 2019-10-22 06:36:27 +00:00
config-ix.cmake build: reduce CMake handling for zlib 2020-01-02 11:19:12 -08:00
config.guess llvm/cmake/config.guess: add support for riscv32 and riscv64 2020-02-14 11:53:51 +00:00
dummy.cpp
nsis_icon.ico
nsis_logo.bmp
README

See docs/CMake.html for instructions on how to build LLVM with CMake.