From: Jonas Devlieghere Date: Fri, 7 Jun 2019 17:35:19 +0000 (+0000) Subject: [dsymutil] Use the number of threads specified. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ca54a620a5220dbe2f820c5aa98bf66523d3eb35;p=llvm [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 --- diff --git a/tools/dsymutil/dsymutil.cpp b/tools/dsymutil/dsymutil.cpp index 2e835e444c2..60ba1432554 100644 --- a/tools/dsymutil/dsymutil.cpp +++ b/tools/dsymutil/dsymutil.cpp @@ -367,6 +367,8 @@ static Expected 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(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);