diff options
| -rw-r--r-- | llvm/cmake/config-ix.cmake | 1 | ||||
| -rw-r--r-- | llvm/include/llvm/Config/config.h.cmake | 3 | ||||
| -rw-r--r-- | llvm/include/llvm/Support/ThreadPool.h | 4 | ||||
| -rw-r--r-- | llvm/include/llvm/Support/Threading.h | 8 | ||||
| -rw-r--r-- | llvm/lib/Support/Parallel.cpp | 4 | ||||
| -rw-r--r-- | llvm/lib/Support/ThreadPool.cpp | 5 | ||||
| -rw-r--r-- | llvm/lib/Support/Threading.cpp | 14 | ||||
| -rw-r--r-- | llvm/tools/llvm-profdata/llvm-profdata.cpp | 4 | 
8 files changed, 8 insertions, 35 deletions
diff --git a/llvm/cmake/config-ix.cmake b/llvm/cmake/config-ix.cmake index c89e46227c5..a1a16b99eb1 100644 --- a/llvm/cmake/config-ix.cmake +++ b/llvm/cmake/config-ix.cmake @@ -269,7 +269,6 @@ if( LLVM_USING_GLIBC )    add_definitions( -D_GNU_SOURCE )  endif()  # This check requires _GNU_SOURCE -check_library_exists(c sched_getaffinity "" HAVE_SCHED_GETAFFINITY)  if(HAVE_LIBPTHREAD)    check_library_exists(pthread pthread_getname_np "" HAVE_PTHREAD_GETNAME_NP)    check_library_exists(pthread pthread_setname_np "" HAVE_PTHREAD_SETNAME_NP) diff --git a/llvm/include/llvm/Config/config.h.cmake b/llvm/include/llvm/Config/config.h.cmake index f3506de015b..d0d1e0985cc 100644 --- a/llvm/include/llvm/Config/config.h.cmake +++ b/llvm/include/llvm/Config/config.h.cmake @@ -185,9 +185,6 @@  /* Define to 1 if you have the `setenv' function. */  #cmakedefine HAVE_SETENV ${HAVE_SETENV} -/* Define to 1 if you have the `sched_getaffinity' function. */ -#cmakedefine HAVE_SCHED_GETAFFINITY ${HAVE_SCHED_GETAFFINITY} -  /* Define to 1 if you have the `setrlimit' function. */  #cmakedefine HAVE_SETRLIMIT ${HAVE_SETRLIMIT} diff --git a/llvm/include/llvm/Support/ThreadPool.h b/llvm/include/llvm/Support/ThreadPool.h index fb825590051..9ada946c6da 100644 --- a/llvm/include/llvm/Support/ThreadPool.h +++ b/llvm/include/llvm/Support/ThreadPool.h @@ -38,8 +38,8 @@ public:    using TaskTy = std::function<void()>;    using PackagedTaskTy = std::packaged_task<void()>; -  /// Construct a pool with the number of threads found by -  /// hardware_concurrency(). +  /// Construct a pool with the number of core available on the system (or +  /// whatever the value returned by std::thread::hardware_concurrency() is).    ThreadPool();    /// Construct a pool of \p ThreadCount threads diff --git a/llvm/include/llvm/Support/Threading.h b/llvm/include/llvm/Support/Threading.h index 6d813bccb93..03963a24c10 100644 --- a/llvm/include/llvm/Support/Threading.h +++ b/llvm/include/llvm/Support/Threading.h @@ -131,14 +131,6 @@ void llvm_execute_on_thread(void (*UserFn)(void *), void *UserData,    /// Returns 1 when LLVM is configured with LLVM_ENABLE_THREADS=OFF    unsigned heavyweight_hardware_concurrency(); -  /// Get the number of threads that the current program can execute -  /// concurrently. On some systems std::thread::hardware_concurrency() returns -  /// the total number of cores, without taking affinity into consideration. -  /// Returns 1 when LLVM is configured with LLVM_ENABLE_THREADS=OFF. -  /// Fallback to std::thread::hardware_concurrency() if sched_getaffinity is -  /// not available. -  unsigned hardware_concurrency(); -    /// \brief Return the current thread id, as used in various OS system calls.    /// Note that not all platforms guarantee that the value returned will be    /// unique across the entire system, so portable code should not assume diff --git a/llvm/lib/Support/Parallel.cpp b/llvm/lib/Support/Parallel.cpp index 010e42916f9..ab2cfdebf07 100644 --- a/llvm/lib/Support/Parallel.cpp +++ b/llvm/lib/Support/Parallel.cpp @@ -9,7 +9,6 @@  #include "llvm/Support/Parallel.h"  #include "llvm/Config/llvm-config.h" -#include "llvm/Support/Threading.h"  #include <atomic>  #include <stack> @@ -71,7 +70,8 @@ Executor *Executor::getDefaultExecutor() {  ///   in filo order.  class ThreadPoolExecutor : public Executor {  public: -  explicit ThreadPoolExecutor(unsigned ThreadCount = hardware_concurrency()) +  explicit ThreadPoolExecutor( +      unsigned ThreadCount = std::thread::hardware_concurrency())        : Done(ThreadCount) {      // Spawn all but one of the threads in another thread as spawning threads      // can take a while. diff --git a/llvm/lib/Support/ThreadPool.cpp b/llvm/lib/Support/ThreadPool.cpp index f1b5bdf40c3..22b7550d497 100644 --- a/llvm/lib/Support/ThreadPool.cpp +++ b/llvm/lib/Support/ThreadPool.cpp @@ -14,15 +14,14 @@  #include "llvm/Support/ThreadPool.h"  #include "llvm/Config/llvm-config.h" -#include "llvm/Support/Threading.h"  #include "llvm/Support/raw_ostream.h"  using namespace llvm;  #if LLVM_ENABLE_THREADS -// Default to hardware_concurrency -ThreadPool::ThreadPool() : ThreadPool(hardware_concurrency()) {} +// Default to std::thread::hardware_concurrency +ThreadPool::ThreadPool() : ThreadPool(std::thread::hardware_concurrency()) {}  ThreadPool::ThreadPool(unsigned ThreadCount)      : ActiveThreads(0), EnableFlag(true) { diff --git a/llvm/lib/Support/Threading.cpp b/llvm/lib/Support/Threading.cpp index b3579b57548..6a10b988d46 100644 --- a/llvm/lib/Support/Threading.cpp +++ b/llvm/lib/Support/Threading.cpp @@ -47,8 +47,6 @@ void llvm::llvm_execute_on_thread(void (*Fn)(void *), void *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; } @@ -73,18 +71,6 @@ unsigned llvm::heavyweight_hardware_concurrency() {    return NumPhysical;  } -unsigned llvm::hardware_concurrency() { -#ifdef HAVE_SCHED_GETAFFINITY -  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" diff --git a/llvm/tools/llvm-profdata/llvm-profdata.cpp b/llvm/tools/llvm-profdata/llvm-profdata.cpp index 8e21a7a9b4f..eee242107da 100644 --- a/llvm/tools/llvm-profdata/llvm-profdata.cpp +++ b/llvm/tools/llvm-profdata/llvm-profdata.cpp @@ -211,8 +211,8 @@ static void mergeInstrProfile(const WeightedFileVector &Inputs,    // If NumThreads is not specified, auto-detect a good default.    if (NumThreads == 0) -    NumThreads = -        std::min(hardware_concurrency(), unsigned((Inputs.size() + 1) / 2)); +    NumThreads = std::max(1U, std::min(std::thread::hardware_concurrency(), +                                       unsigned(Inputs.size() / 2)));    // Initialize the writer contexts.    SmallVector<std::unique_ptr<WriterContext>, 4> Contexts;  | 

