summaryrefslogtreecommitdiff
path: root/contrib/llvm/lib/Support/Threading.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/llvm/lib/Support/Threading.cpp')
-rw-r--r--contrib/llvm/lib/Support/Threading.cpp95
1 files changed, 0 insertions, 95 deletions
diff --git a/contrib/llvm/lib/Support/Threading.cpp b/contrib/llvm/lib/Support/Threading.cpp
deleted file mode 100644
index e5899a60f4db..000000000000
--- a/contrib/llvm/lib/Support/Threading.cpp
+++ /dev/null
@@ -1,95 +0,0 @@
-//===-- llvm/Support/Threading.cpp- Control multithreading mode --*- C++ -*-==//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines helper functions for running LLVM in a multi-threaded
-// environment.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Support/Threading.h"
-#include "llvm/Config/config.h"
-#include "llvm/Support/Host.h"
-
-#include <cassert>
-#include <errno.h>
-#include <stdlib.h>
-#include <string.h>
-
-using namespace llvm;
-
-//===----------------------------------------------------------------------===//
-//=== WARNING: Implementation here must contain only TRULY operating system
-//=== independent code.
-//===----------------------------------------------------------------------===//
-
-bool llvm::llvm_is_multithreaded() {
-#if LLVM_ENABLE_THREADS != 0
- return true;
-#else
- return false;
-#endif
-}
-
-#if LLVM_ENABLE_THREADS == 0 || \
- (!defined(_WIN32) && !defined(HAVE_PTHREAD_H))
-// Support for non-Win32, non-pthread implementation.
-void llvm::llvm_execute_on_thread(void (*Fn)(void *), void *UserData,
- unsigned RequestedStackSize) {
- (void)RequestedStackSize;
- Fn(UserData);
-}
-
-unsigned llvm::heavyweight_hardware_concurrency() { return 1; }
-
-unsigned llvm::hardware_concurrency() { return 1; }
-
-uint64_t llvm::get_threadid() { return 0; }
-
-uint32_t llvm::get_max_thread_name_length() { return 0; }
-
-void llvm::set_thread_name(const Twine &Name) {}
-
-void llvm::get_thread_name(SmallVectorImpl<char> &Name) { Name.clear(); }
-
-#else
-
-#include <thread>
-unsigned llvm::heavyweight_hardware_concurrency() {
- // Since we can't get here unless LLVM_ENABLE_THREADS == 1, it is safe to use
- // `std::thread` directly instead of `llvm::thread` (and indeed, doing so
- // allows us to not define `thread` in the llvm namespace, which conflicts
- // with some platforms such as FreeBSD whose headers also define a struct
- // called `thread` in the global namespace which can cause ambiguity due to
- // ADL.
- int NumPhysical = sys::getHostNumPhysicalCores();
- if (NumPhysical == -1)
- return std::thread::hardware_concurrency();
- return NumPhysical;
-}
-
-unsigned llvm::hardware_concurrency() {
-#if defined(HAVE_SCHED_GETAFFINITY) && defined(HAVE_CPU_COUNT)
- cpu_set_t Set;
- if (sched_getaffinity(0, sizeof(Set), &Set))
- return CPU_COUNT(&Set);
-#endif
- // Guard against std::thread::hardware_concurrency() returning 0.
- if (unsigned Val = std::thread::hardware_concurrency())
- return Val;
- return 1;
-}
-
-// Include the platform-specific parts of this class.
-#ifdef LLVM_ON_UNIX
-#include "Unix/Threading.inc"
-#endif
-#ifdef _WIN32
-#include "Windows/Threading.inc"
-#endif
-
-#endif