PR19388: DebugInfo: Emit dead arguments in their originally declared order.
[oota-llvm.git] / lib / Support / Threading.cpp
index 15dd8a980523a65a10472f0af3fbc673376585e6..1acfa79b11d5835f60103057e16f4b5f377d6f39 100644 (file)
 
 #include "llvm/Support/Threading.h"
 #include "llvm/Config/config.h"
+#include "llvm/Support/Atomic.h"
 #include "llvm/Support/Mutex.h"
-#include <atomic>
 #include <cassert>
 
 using namespace llvm;
 
 static bool multithreaded_mode = false;
 
-static sys::Mutex* global_lock = 0;
+static sys::Mutex* global_lock = nullptr;
 
 bool llvm::llvm_start_multithreaded() {
 #if LLVM_ENABLE_THREADS != 0
@@ -31,7 +31,7 @@ bool llvm::llvm_start_multithreaded() {
 
   // We fence here to ensure that all initialization is complete BEFORE we
   // return from llvm_start_multithreaded().
-  std::atomic_thread_fence(std::memory_order_seq_cst);
+  sys::MemoryFence();
   return true;
 #else
   return false;
@@ -44,7 +44,7 @@ void llvm::llvm_stop_multithreaded() {
 
   // We fence here to insure that all threaded operations are complete BEFORE we
   // return from llvm_stop_multithreaded().
-  std::atomic_thread_fence(std::memory_order_seq_cst);
+  sys::MemoryFence();
 
   multithreaded_mode = false;
   delete global_lock;
@@ -73,7 +73,7 @@ struct ThreadInfo {
 static void *ExecuteOnThread_Dispatch(void *Arg) {
   ThreadInfo *TI = reinterpret_cast<ThreadInfo*>(Arg);
   TI->UserFn(TI->UserData);
-  return 0;
+  return nullptr;
 }
 
 void llvm::llvm_execute_on_thread(void (*Fn)(void*), void *UserData,
@@ -97,7 +97,7 @@ void llvm::llvm_execute_on_thread(void (*Fn)(void*), void *UserData,
     goto error;
 
   // Wait for the thread and clean up.
-  ::pthread_join(Thread, 0);
+  ::pthread_join(Thread, nullptr);
 
  error:
   ::pthread_attr_destroy(&Attr);