[llvm-branch-commits] [llvm-branch] r288075 - Merging r285782:
Tom Stellard via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Mon Nov 28 13:53:38 PST 2016
Author: tstellar
Date: Mon Nov 28 15:53:38 2016
New Revision: 288075
URL: http://llvm.org/viewvc/llvm-project?rev=288075&view=rev
Log:
Merging r285782:
------------------------------------------------------------------------
r285782 | brad | 2016-11-01 18:39:01 -0700 (Tue, 01 Nov 2016) | 9 lines
Disable the use of std::call_once on OpenBSD with libstdc++.
It was noticed this caused performance regressions and deadlocks. PR30768.
Reorder the code to make it clearer what is tested.
PPC now disables the use of std::call_once only with libstdc++ with
the reordering of the code, as was the original intent.
------------------------------------------------------------------------
Modified:
llvm/branches/release_39/include/llvm/Support/Threading.h
Modified: llvm/branches/release_39/include/llvm/Support/Threading.h
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_39/include/llvm/Support/Threading.h?rev=288075&r1=288074&r2=288075&view=diff
==============================================================================
--- llvm/branches/release_39/include/llvm/Support/Threading.h (original)
+++ llvm/branches/release_39/include/llvm/Support/Threading.h Mon Nov 28 15:53:38 2016
@@ -20,11 +20,11 @@
#include <ciso646> // So we can check the C++ standard lib macros.
#include <functional>
-// We use std::call_once on all Unix platforms except for NetBSD with
-// libstdc++. That platform has a bug they are working to fix, and they'll
-// remove the NetBSD checks once fixed.
-#if defined(LLVM_ON_UNIX) && \
- !(defined(__NetBSD__) && !defined(_LIBCPP_VERSION)) && !defined(__ppc__)
+// std::call_once from libc++ is used on all Unix platforms. Other
+// implementations like libstdc++ are known to have problems on NetBSD,
+// OpenBSD and PowerPC.
+#if defined(LLVM_ON_UNIX) && (defined(_LIBCPP_VERSION) || \
+ !(defined(__NetBSD__) || defined(__OpenBSD__) || defined(__ppc__)))
#define LLVM_THREADING_USE_STD_CALL_ONCE 1
#else
#define LLVM_THREADING_USE_STD_CALL_ONCE 0
More information about the llvm-branch-commits
mailing list