diff options
author | Teresa Johnson <tejohnson@google.com> | 2016-10-14 00:13:59 +0000 |
---|---|---|
committer | Teresa Johnson <tejohnson@google.com> | 2016-10-14 00:13:59 +0000 |
commit | 2bd812c5dc94d16009c911ca6a38457fe4ea21e6 (patch) | |
tree | 481bb2cc65c7af6c65c89e820c948e29864c684b /llvm/lib/Support/Threading.cpp | |
parent | 622c26389ffa6fd2dfb580289cce63f3e48a658c (diff) | |
download | bcm5719-llvm-2bd812c5dc94d16009c911ca6a38457fe4ea21e6.tar.gz bcm5719-llvm-2bd812c5dc94d16009c911ca6a38457fe4ea21e6.zip |
Add interface for querying physical hardware concurrency
Summary:
This will be used by ThinLTO to set the amount of backend
parallelism, which performs better when restricted to the number
of physical cores (on X86 at least, where getHostNumPhysicalCores is
currently defined). If not available this falls back to
thread::hardware_concurrency.
Note I didn't add to the thread class since that is a typedef to
std::thread where available.
Reviewers: mehdi_amini
Subscribers: beanz, llvm-commits, mgorny
Differential Revision: https://reviews.llvm.org/D25585
llvm-svn: 284180
Diffstat (limited to 'llvm/lib/Support/Threading.cpp')
-rw-r--r-- | llvm/lib/Support/Threading.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/llvm/lib/Support/Threading.cpp b/llvm/lib/Support/Threading.cpp index e8f5622d0e5..415c63f245d 100644 --- a/llvm/lib/Support/Threading.cpp +++ b/llvm/lib/Support/Threading.cpp @@ -15,6 +15,7 @@ #include "llvm/Support/Threading.h" #include "llvm/Config/config.h" #include "llvm/Support/Atomic.h" +#include "llvm/Support/Host.h" #include "llvm/Support/Mutex.h" #include "llvm/Support/thread.h" #include <cassert> @@ -116,3 +117,10 @@ void llvm::llvm_execute_on_thread(void (*Fn)(void*), void *UserData, } #endif + +unsigned llvm::hardware_physical_concurrency() { + int NumPhysical = sys::getHostNumPhysicalCores(); + if (NumPhysical == -1) + return thread::hardware_concurrency(); + return NumPhysical; +} |