[PATCH] D15248: [PGO] Add check in cmake to detect if atomics operations are available for target
David Li via llvm-commits
llvm-commits at lists.llvm.org
Wed Dec 9 14:49:52 PST 2015
This revision was automatically updated to reflect the committed changes.
Closed by commit rL255173: [PGO] Add cmake check to determine atomics op availability (authored by davidxl).
Changed prior to commit:
http://reviews.llvm.org/D15248?vs=41944&id=42345#toc
Repository:
rL LLVM
http://reviews.llvm.org/D15248
Files:
compiler-rt/trunk/lib/profile/CMakeLists.txt
Index: compiler-rt/trunk/lib/profile/CMakeLists.txt
===================================================================
--- compiler-rt/trunk/lib/profile/CMakeLists.txt
+++ compiler-rt/trunk/lib/profile/CMakeLists.txt
@@ -1,3 +1,27 @@
+
+CHECK_CXX_SOURCE_COMPILES("
+#ifdef _MSC_VER
+#include <Intrin.h> /* Workaround for PR19898. */
+#include <windows.h>
+#endif
+int main() {
+#ifdef _MSC_VER
+ volatile LONG val = 1;
+ MemoryBarrier();
+ InterlockedCompareExchange(&val, 0, 1);
+ InterlockedIncrement(&val);
+ InterlockedDecrement(&val);
+#else
+ volatile unsigned long val = 1;
+ __sync_synchronize();
+ __sync_val_compare_and_swap(&val, 1, 0);
+ __sync_add_and_fetch(&val, 1);
+ __sync_sub_and_fetch(&val, 1);
+#endif
+ return 0;
+ }
+" COMPILER_RT_TARGET_HAS_ATOMICS)
+
add_custom_target(profile)
set(PROFILE_SOURCES
@@ -21,6 +45,12 @@
-fPIC)
endif()
+if(COMPILER_RT_TARGET_HAS_ATOMICS)
+ set(EXTRA_FLAGS
+ ${EXTRA_FLAGS}
+ -DCOMPILER_RT_HAS_ATOMICS=1)
+endif()
+
if(APPLE)
add_compiler_rt_runtime(clang_rt.profile
STATIC
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D15248.42345.patch
Type: text/x-patch
Size: 1141 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151209/d306d5fc/attachment.bin>
More information about the llvm-commits
mailing list