[llvm-cov] Prevent llvm-cov from using too many threads
authorAlexandre Ganea <alexandre.ganea@ubisoft.com>
Fri, 24 Apr 2020 19:28:01 +0000 (15:28 -0400)
committerAlexandre Ganea <alexandre.ganea@ubisoft.com>
Fri, 24 Apr 2020 19:28:25 +0000 (15:28 -0400)
commit0e13a0331fb90078bf71cc0c4612492a6954a5d0
tree9b96f8665fadce4dd425bed64a0bf82099421578
parent0e2bd49370197dd8bf2c36ee0ce1275f7cfb515b
[llvm-cov] Prevent llvm-cov from using too many threads

As reported here: https://reviews.llvm.org/D75153#1987272

Before, each instance of llvm-cov was creating one thread per hardware core, which wasn't needed probably because the number of inputs were small. This was probably causing a thread rlimit issue on large core count systems.

After this patch, the previous behavior is restored (to what was before rG8404aeb5):

If --num-threads is not specified, we create one thread per input, up to num.cores.
When specified, --num-threads indicates any number of threads, with no upper limit.

Differential Revision: https://reviews.llvm.org/D78408
llvm/include/llvm/Support/Threading.h
llvm/lib/Support/Threading.cpp
llvm/tools/dsymutil/dsymutil.cpp
llvm/tools/llvm-cov/CodeCoverage.cpp
llvm/tools/llvm-cov/CoverageExporterJson.cpp
llvm/tools/llvm-cov/CoverageReport.cpp