mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 03:02:36 +01:00
c05d814fb9
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 |
||
---|---|---|
.. | ||
AddLLVM.cmake | ||
AddLLVMDefinitions.cmake | ||
AddOCaml.cmake | ||
AddSphinxTarget.cmake | ||
CheckAtomic.cmake | ||
CheckCompilerVersion.cmake | ||
CheckLinkerFlag.cmake | ||
ChooseMSVCCRT.cmake | ||
CMakeLists.txt | ||
CrossCompile.cmake | ||
DetermineGCCCompatible.cmake | ||
FindLibpfm.cmake | ||
FindOCaml.cmake | ||
FindSphinx.cmake | ||
FindZ3.cmake | ||
GenerateVersionFromVCS.cmake | ||
GetHostTriple.cmake | ||
HandleLLVMOptions.cmake | ||
HandleLLVMStdlib.cmake | ||
LLVM-Config.cmake | ||
LLVMConfig.cmake.in | ||
LLVMConfigVersion.cmake.in | ||
LLVMDistributionSupport.cmake | ||
LLVMExternalProjectUtils.cmake | ||
LLVMInstallSymlink.cmake | ||
LLVMProcessSources.cmake | ||
TableGen.cmake | ||
UseLibtool.cmake | ||
VersionFromVCS.cmake |