[PATCH] D99312: [lld-macho] Add support for --threads
Jez Ng via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Mar 25 11:52:20 PDT 2021
This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
Closed by commit rG0113cf00b6f4: [lld-macho] Add support for --threads (authored by int3).
Changed prior to commit:
https://reviews.llvm.org/D99312?vs=333183&id=333381#toc
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D99312/new/
https://reviews.llvm.org/D99312
Files:
lld/MachO/Driver.cpp
lld/MachO/Options.td
lld/test/MachO/threads.s
Index: lld/test/MachO/threads.s
===================================================================
--- /dev/null
+++ lld/test/MachO/threads.s
@@ -0,0 +1,16 @@
+# REQUIRES: x86
+# RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %s -o %t.o
+
+## A positive integer is allowed.
+# RUN: %lld --threads=1 %t.o -o /dev/null
+# RUN: %lld --threads=2 %t.o -o /dev/null
+
+# RUN: not %lld --threads=all %t.o -o /dev/null 2>&1 | FileCheck %s -DN=all
+# RUN: not %lld --threads=0 %t.o -o /dev/null 2>&1 | FileCheck %s -DN=0
+# RUN: not %lld --threads=-1 %t.o -o /dev/null 2>&1 | FileCheck %s -DN=-1
+
+# CHECK: error: --threads=: expected a positive integer, but got '[[N]]'
+
+.globl _main
+_main:
+ ret
Index: lld/MachO/Options.td
===================================================================
--- lld/MachO/Options.td
+++ lld/MachO/Options.td
@@ -20,6 +20,9 @@
HelpText<"Use colors in diagnostics (default: auto)">,
MetaVarName<"[auto,always,never]">,
Group<grp_lld>;
+def threads_eq : Joined<["--"], "threads=">,
+ HelpText<"Number of threads. '1' disables multi-threading. By default all available hardware threads are used">,
+ Group<grp_lld>;
def reproduce: Separate<["--"], "reproduce">,
Group<grp_lld>;
def reproduce_eq: Joined<["--"], "reproduce=">,
Index: lld/MachO/Driver.cpp
===================================================================
--- lld/MachO/Driver.cpp
+++ lld/MachO/Driver.cpp
@@ -38,6 +38,7 @@
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/Host.h"
#include "llvm/Support/MemoryBuffer.h"
+#include "llvm/Support/Parallel.h"
#include "llvm/Support/Path.h"
#include "llvm/Support/TarWriter.h"
#include "llvm/Support/TargetSelect.h"
@@ -861,6 +862,16 @@
depTracker =
make<DependencyTracker>(args.getLastArgValue(OPT_dependency_info, ""));
+ if (auto *arg = args.getLastArg(OPT_threads_eq)) {
+ StringRef v(arg->getValue());
+ unsigned threads = 0;
+ if (!llvm::to_integer(v, threads, 0) || threads == 0)
+ error(arg->getSpelling() + ": expected a positive integer, but got '" +
+ arg->getValue() + "'");
+ parallel::strategy = hardware_concurrency(threads);
+ // FIXME: use this to configure ThinLTO concurrency too
+ }
+
config->entry = symtab->addUndefined(args.getLastArgValue(OPT_e, "_main"),
/*file=*/nullptr,
/*isWeakRef=*/false);
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D99312.333381.patch
Type: text/x-patch
Size: 2442 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210325/cf62d1ad/attachment.bin>
More information about the llvm-commits
mailing list