8 Commits

Author SHA1 Message Date
Rafael Espindola
a72e2a9037 Bring r314809 back.
But now include a check for CPU_COUNT so we still build on 10 year old
versions of glibc.

Original message:

Use sched_getaffinity instead of std:🧵:hardware_concurrency.

The issue with std:🧵:hardware_concurrency is that it forwards
to libc and some implementations (like glibc) don't take thread
affinity into consideration.

With this change a llvm program that can execute in only 2 cores will
use 2 threads, even if the machine has 32 cores.

This makes benchmarking a lot easier, but should also help if someone
doesn't want to use all cores for compilation for example.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314931 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-04 20:27:01 +00:00
Daniel Neilson
9f2abf5c52 Revert D38481 due to missing cmake check for CPU_COUNT
Summary:
This reverts D38481. The change breaks systems with older versions of glibc. It
injects a use of CPU_COUNT() from sched.h without checking to ensure that the
function exists first.

Reviewers:

Subscribers:

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314922 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-04 18:19:03 +00:00
Rafael Espindola
70deadb171 Use sched_getaffinity instead of std:🧵:hardware_concurrency.
The issue with std:🧵:hardware_concurrency is that it forwards
to libc and some implementations (like glibc) don't take thread
affinity into consideration.

With this change a llvm program that can execute in only 2 cores will
use 2 threads, even if the machine has 32 cores.

This makes benchmarking a lot easier, but should also help if someone
doesn't want to use all cores for compilation for example.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314809 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-03 16:25:15 +00:00
Hans Wennborg
21a6645e69 Fix -DLLVM_ENABLE_THREADS=OFF build after r302748
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302806 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-11 15:32:47 +00:00
Zachary Turner
3e0a9ecbab Final (hopefully) fix for the build bots.
This time it actually occurred to me to change the #defines
to actually test the pre-processed out codepath.  Hopefully
this time it works.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302752 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-11 00:22:18 +00:00
Zachary Turner
9525cd9ea7 Try again to fix the buildbots.
TaskGroup and Latch need to be in llvm::parallel::detail, not
in llvm::detail.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302751 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-11 00:18:52 +00:00
Zachary Turner
7c964ef14c Fix build errors with Parallel.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302749 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-11 00:09:30 +00:00
Zachary Turner
3c1ec57f40 [Support] Move Parallel algorithms from LLD to LLVM.
Differential Revision: https://reviews.llvm.org/D33024

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302748 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-11 00:03:52 +00:00