[dsymutil] Use the number of threads specified.

Before this patch we used either a single thread, or the number of
hardware threads available, effectively ignoring the number of threads
specified on the command line.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@362815 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Jonas Devlieghere
2019-06-07 17:35:19 +00:00
parent 29f89f1e57
commit ca54a620a5
+5 -3
View File
@@ -367,6 +367,8 @@ static Expected<LinkOptions> getOptions() {
if (NumThreads == 0)
Options.Threads = llvm::thread::hardware_concurrency();
else
Options.Threads = NumThreads;
if (DumpDebugMap || Verbose)
Options.Threads = 1;
@@ -526,9 +528,9 @@ int main(int argc, char **argv) {
// Shared a single binary holder for all the link steps.
BinaryHolder BinHolder;
NumThreads =
unsigned ThreadCount =
std::min<unsigned>(OptionsOrErr->Threads, DebugMapPtrsOrErr->size());
llvm::ThreadPool Threads(NumThreads);
llvm::ThreadPool Threads(ThreadCount);
// If there is more than one link to execute, we need to generate
// temporary files.
@@ -600,7 +602,7 @@ int main(int argc, char **argv) {
// FIXME: The DwarfLinker can have some very deep recursion that can max
// out the (significantly smaller) stack when using threads. We don't
// want this limitation when we only have a single thread.
if (NumThreads == 1)
if (ThreadCount == 1)
LinkLambda(OS);
else
Threads.async(LinkLambda, OS);