summaryrefslogtreecommitdiffstats
path: root/llvm/unittests/Support/Threading.cpp
diff options
context:
space:
mode:
authorTeresa Johnson <tejohnson@google.com>2016-10-14 00:13:59 +0000
committerTeresa Johnson <tejohnson@google.com>2016-10-14 00:13:59 +0000
commit2bd812c5dc94d16009c911ca6a38457fe4ea21e6 (patch)
tree481bb2cc65c7af6c65c89e820c948e29864c684b /llvm/unittests/Support/Threading.cpp
parent622c26389ffa6fd2dfb580289cce63f3e48a658c (diff)
downloadbcm5719-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/unittests/Support/Threading.cpp')
-rw-r--r--llvm/unittests/Support/Threading.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/llvm/unittests/Support/Threading.cpp b/llvm/unittests/Support/Threading.cpp
new file mode 100644
index 00000000000..30a3c741b35
--- /dev/null
+++ b/llvm/unittests/Support/Threading.cpp
@@ -0,0 +1,25 @@
+//===- unittests/Threading.cpp - Thread tests -----------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#include "llvm/Support/Threading.h"
+#include "llvm/Support/thread.h"
+#include "gtest/gtest.h"
+
+using namespace llvm;
+
+namespace {
+
+TEST(Threading, PhysicalConcurrency) {
+ auto Num = hardware_physical_concurrency();
+ // Since Num is unsigned this will also catch us trying to
+ // return -1.
+ ASSERT_LE(Num, thread::hardware_concurrency());
+}
+
+} // end anon namespace
OpenPOWER on IntegriCloud