]> granicus.if.org Git - llvm/commitdiff
[dsymutil] Use the number of threads specified.
authorJonas Devlieghere <jonas@devlieghere.com>
Fri, 7 Jun 2019 17:35:19 +0000 (17:35 +0000)
committerJonas Devlieghere <jonas@devlieghere.com>
Fri, 7 Jun 2019 17:35:19 +0000 (17:35 +0000)
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

tools/dsymutil/dsymutil.cpp

index 2e835e444c27008afd92f9cc82d312f82b5fb0ff..60ba14325549424a5d5cec2ff08e57f373f108de 100644 (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);