[PATCH] D79588: [llvm][Support] Use std::atomic for llvm::call_once

JF Bastien via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu May 7 15:14:26 PDT 2020


jfb added a subscriber: brad.
jfb added a comment.

is this code still relevant?

  #if defined(_MSC_VER)
  // MSVC's call_once implementation worked since VS 2015, which is the minimum
  // supported version as of this writing.
  #define LLVM_THREADING_USE_STD_CALL_ONCE 1
  #elif defined(LLVM_ON_UNIX) &&                                                 \
      (defined(_LIBCPP_VERSION) ||                                               \
       !(defined(__NetBSD__) || defined(__OpenBSD__) ||                          \
         (defined(__ppc__) || 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.
  #define LLVM_THREADING_USE_STD_CALL_ONCE 1
  #elif defined(LLVM_ON_UNIX) &&                                                 \
      ((defined(__ppc__) || defined(__PPC__)) && defined(__LITTLE_ENDIAN__))
  #define LLVM_THREADING_USE_STD_CALL_ONCE 1
  #else
  #define LLVM_THREADING_USE_STD_CALL_ONCE 0
  #endif

Seems like something that's probably aged out? Check with @brad since it's from 2016 in b4f6ebf80695. What's the actual problem?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D79588/new/

https://reviews.llvm.org/D79588





More information about the llvm-commits mailing list