<div dir="ltr"><div>Davide,</div><div><br></div><div>Looks like the new test for ThinLTO is failing. Are you sure that -save-temps create the intended files on any machines?</div><div><br></div><div>$ bin/llvm-lit -v /ssd/llvm/tools/lld/test/ELF/lto/thinlto.ll </div><div>-- Testing: 1 tests, 1 threads --</div><div>FAIL: lld :: ELF/lto/thinlto.ll (1 of 1)</div><div>******************** TEST 'lld :: ELF/lto/thinlto.ll' FAILED ********************</div><div>Script:</div><div>--</div><div>/ssd/build/./bin/llvm-as /ssd/llvm/tools/lld/test/ELF/lto/thinlto.ll -o /ssd/build/tools/lld/test/ELF/lto/Output/thinlto.ll.tmp.o</div><div>/ssd/build/./bin/llvm-as /ssd/llvm/tools/lld/test/ELF/lto/Inputs/thinlto.ll -o /ssd/build/tools/lld/test/ELF/lto/Output/thinlto.ll.tmp2.o</div><div>/ssd/build/./bin/ld.lld -save-temps --thinlto-jobs=1 -shared /ssd/build/tools/lld/test/ELF/lto/Output/thinlto.ll.tmp.o /ssd/build/tools/lld/test/ELF/lto/Output/thinlto.ll.tmp2.o -o /ssd/build/tools/lld/test/ELF/lto/Output/thinlto.ll.tmp</div><div>/ssd/build/./bin/llvm-nm /ssd/build/tools/lld/test/ELF/lto/Output/thinlto.ll.tmp.lto.o | /ssd/build/./bin/FileCheck /ssd/llvm/tools/lld/test/ELF/lto/thinlto.ll --check-prefix=NM</div><div>/ssd/build/./bin/ld.lld -save-temps --thinlto-jobs=2 -shared /ssd/build/tools/lld/test/ELF/lto/Output/thinlto.ll.tmp.o /ssd/build/tools/lld/test/ELF/lto/Output/thinlto.ll.tmp2.o -o /ssd/build/tools/lld/test/ELF/lto/Output/thinlto.ll.tmp2</div><div>/ssd/build/./bin/llvm-nm /ssd/build/tools/lld/test/ELF/lto/Output/thinlto.ll.tmp20.lto.o | /ssd/build/./bin/FileCheck /ssd/llvm/tools/lld/test/ELF/lto/thinlto.ll --check-prefix=NM1</div><div>/ssd/build/./bin/llvm-nm /ssd/build/tools/lld/test/ELF/lto/Output/thinlto.ll.tmp21.lto.o | /ssd/build/./bin/FileCheck /ssd/llvm/tools/lld/test/ELF/lto/thinlto.ll --check-prefix=NM2</div><div>--</div><div>Exit Code: 2</div><div><br></div><div>Command Output (stderr):</div><div>--</div><div>/ssd/build/./bin/llvm-nm: /ssd/build/tools/lld/test/ELF/lto/Output/thinlto.ll.tmp20.lto.o: No such file or directory.</div><div>FileCheck error: '-' is empty.</div><div>FileCheck command line:  /ssd/build/./bin/FileCheck /ssd/llvm/tools/lld/test/ELF/lto/thinlto.ll --check-prefix=NM1</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Oct 10, 2016 at 4:12 PM, Davide Italiano via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: davide<br>
Date: Mon Oct 10 18:12:14 2016<br>
New Revision: 283817<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=283817&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project?rev=283817&view=rev</a><br>
Log:<br>
[LTO] Split the options for ThinLTO jobs and Regular LTO partitions<br>
<br>
Differential Revision:   <a href="https://reviews.llvm.org/D25452" rel="noreferrer" target="_blank">https://reviews.llvm.org/<wbr>D25452</a><br>
<br>
Modified:<br>
    lld/trunk/ELF/Config.h<br>
    lld/trunk/ELF/Driver.cpp<br>
    lld/trunk/ELF/LTO.cpp<br>
    lld/trunk/ELF/Options.td<br>
    lld/trunk/test/ELF/basic.s<br>
    lld/trunk/test/ELF/lto/<wbr>parallel-internalize.ll<br>
    lld/trunk/test/ELF/lto/<wbr>parallel.ll<br>
    lld/trunk/test/ELF/lto/<wbr>thinlto.ll<br>
<br>
Modified: lld/trunk/ELF/Config.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Config.h?rev=283817&r1=283816&r2=283817&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/lld/trunk/ELF/Config.<wbr>h?rev=283817&r1=283816&r2=<wbr>283817&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- lld/trunk/ELF/Config.h (original)<br>
+++ lld/trunk/ELF/Config.h Mon Oct 10 18:12:14 2016<br>
@@ -138,9 +138,10 @@ struct Configuration {<br>
   uint64_t ImageBase;<br>
   uint64_t MaxPageSize;<br>
   uint64_t ZStackSize;<br>
-  unsigned LtoJobs;<br>
+  unsigned LtoPartitions;<br>
   unsigned LtoO;<br>
   unsigned Optimize;<br>
+  unsigned ThinLtoJobs;<br>
 };<br>
<br>
 // The only instance of Configuration struct.<br>
<br>
Modified: lld/trunk/ELF/Driver.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Driver.cpp?rev=283817&r1=283816&r2=283817&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/lld/trunk/ELF/Driver.<wbr>cpp?rev=283817&r1=283816&r2=<wbr>283817&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- lld/trunk/ELF/Driver.cpp (original)<br>
+++ lld/trunk/ELF/Driver.cpp Mon Oct 10 18:12:14 2016<br>
@@ -481,9 +481,12 @@ void LinkerDriver::readConfigs(opt:<wbr>:Inpu<br>
   Config->LtoO = getInteger(Args, OPT_lto_O, 2);<br>
   if (Config->LtoO > 3)<br>
     error("invalid optimization level for LTO: " + getString(Args, OPT_lto_O));<br>
-  Config->LtoJobs = getInteger(Args, OPT_lto_jobs, 1);<br>
-  if (Config->LtoJobs == 0)<br>
-    error("number of threads must be > 0");<br>
+  Config->LtoPartitions = getInteger(Args, OPT_lto_partitions, 1);<br>
+  if (Config->LtoPartitions == 0)<br>
+    error("--lto-partitions: number of threads must be > 0");<br>
+  Config->ThinLtoJobs = getInteger(Args, OPT_thinlto_jobs, -1u);<br>
+  if (Config->ThinLtoJobs == 0)<br>
+    error("--thinlto-jobs: number of threads must be > 0");<br>
<br>
   Config->ZCombreloc = !hasZOption(Args, "nocombreloc");<br>
   Config->ZExecStack = hasZOption(Args, "execstack");<br>
<br>
Modified: lld/trunk/ELF/LTO.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/LTO.cpp?rev=283817&r1=283816&r2=283817&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/lld/trunk/ELF/LTO.cpp?<wbr>rev=283817&r1=283816&r2=<wbr>283817&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- lld/trunk/ELF/LTO.cpp (original)<br>
+++ lld/trunk/ELF/LTO.cpp Mon Oct 10 18:12:14 2016<br>
@@ -68,9 +68,10 @@ static std::unique_ptr<lto::LTO> createL<br>
                             /*UseInputModulePath*/ true));<br>
<br>
   lto::ThinBackend Backend;<br>
-  if (Config->LtoJobs)<br>
-    Backend = lto::<wbr>createInProcessThinBackend(<wbr>Config->LtoJobs);<br>
-  return llvm::make_unique<lto::LTO>(<wbr>std::move(Conf), Backend, Config->LtoJobs);<br>
+  if (Config->ThinLtoJobs != -1u)<br>
+    Backend = lto::<wbr>createInProcessThinBackend(<wbr>Config->ThinLtoJobs);<br>
+  return llvm::make_unique<lto::LTO>(<wbr>std::move(Conf), Backend,<br>
+                                     Config->LtoPartitions);<br>
 }<br>
<br>
 BitcodeCompiler::<wbr>BitcodeCompiler() : LtoObj(createLTO()) {}<br>
<br>
Modified: lld/trunk/ELF/Options.td<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Options.td?rev=283817&r1=283816&r2=283817&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/lld/trunk/ELF/Options.<wbr>td?rev=283817&r1=283816&r2=<wbr>283817&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- lld/trunk/ELF/Options.td (original)<br>
+++ lld/trunk/ELF/Options.td Mon Oct 10 18:12:14 2016<br>
@@ -303,11 +303,13 @@ def alias_version_script_version_<wbr>script:<br>
   Alias<version_script>;<br>
<br>
 // LTO-related options.<br>
-def lto_jobs: J<"lto-jobs=">, HelpText<"Number of threads to run codegen">;<br>
 def lto_aa_pipeline: J<"lto-aa-pipeline=">,<br>
   HelpText<"AA pipeline to run during LTO. Used in conjunction with -lto-newpm-passes">;<br>
 def lto_newpm_passes: J<"lto-newpm-passes=">,<br>
   HelpText<"Passes to run during LTO">;<br>
+def lto_partitions: J<"lto-partitions=">,<br>
+  HelpText<"Number of LTO codegen partitions">;<br>
 def disable_verify: F<"disable-verify">;<br>
 def mllvm: S<"mllvm">;<br>
 def save_temps: F<"save-temps">;<br>
+def thinlto_jobs: J<"thinlto-jobs=">, HelpText<"Number of ThinLTO jobs">;<br>
<br>
Modified: lld/trunk/test/ELF/basic.s<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/basic.s?rev=283817&r1=283816&r2=283817&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/lld/trunk/test/ELF/<wbr>basic.s?rev=283817&r1=283816&<wbr>r2=283817&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- lld/trunk/test/ELF/basic.s (original)<br>
+++ lld/trunk/test/ELF/basic.s Mon Oct 10 18:12:14 2016<br>
@@ -226,5 +226,8 @@ _start:<br>
 # RUN: not ld.lld %t -o %t -m wrong_emul_fbsd 2>&1 | FileCheck --check-prefix=UNKNOWN_EMUL %s<br>
 # UNKNOWN_EMUL: unknown emulation: wrong_emul_fbsd<br>
<br>
-# RUN: not ld.lld %t --lto-jobs=0 2>&1 | FileCheck --check-prefix=NOTHREADS %s<br>
-# NOTHREADS: number of threads must be > 0<br>
+# RUN: not ld.lld %t --lto-partitions=0 2>&1 | FileCheck --check-prefix=NOTHREADS %s<br>
+# NOTHREADS: --lto-partitions: number of threads must be > 0<br>
+<br>
+# RUN: not ld.lld %t --thinlto-jobs=0 2>&1 | FileCheck --check-prefix=NOTHREADSTHIN %s<br>
+# NOTHREADSTHIN: --thinlto-jobs: number of threads must be > 0<br>
<br>
Modified: lld/trunk/test/ELF/lto/<wbr>parallel-internalize.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/lto/parallel-internalize.ll?rev=283817&r1=283816&r2=283817&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/lld/trunk/test/ELF/<wbr>lto/parallel-internalize.ll?<wbr>rev=283817&r1=283816&r2=<wbr>283817&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- lld/trunk/test/ELF/lto/<wbr>parallel-internalize.ll (original)<br>
+++ lld/trunk/test/ELF/lto/<wbr>parallel-internalize.ll Mon Oct 10 18:12:14 2016<br>
@@ -1,6 +1,7 @@<br>
 ; REQUIRES: x86<br>
 ; RUN: llvm-as -o %t.bc %s<br>
-; RUN: ld.lld -m elf_x86_64 --lto-jobs=2 -save-temps -o %t %t.bc -e foo --lto-O0<br>
+; RUN: ld.lld -m elf_x86_64 --lto-partitions=2 -save-temps -o %t %t.bc \<br>
+; RUN:   -e foo --lto-O0<br>
 ; RUN: llvm-readobj -t -dyn-symbols %t | FileCheck %s<br>
 ; RUN: llvm-nm %t0.lto.o | FileCheck --check-prefix=CHECK0 %s<br>
 ; RUN: llvm-nm %t1.lto.o | FileCheck --check-prefix=CHECK1 %s<br>
<br>
Modified: lld/trunk/test/ELF/lto/<wbr>parallel.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/lto/parallel.ll?rev=283817&r1=283816&r2=283817&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/lld/trunk/test/ELF/<wbr>lto/parallel.ll?rev=283817&r1=<wbr>283816&r2=283817&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- lld/trunk/test/ELF/lto/<wbr>parallel.ll (original)<br>
+++ lld/trunk/test/ELF/lto/<wbr>parallel.ll Mon Oct 10 18:12:14 2016<br>
@@ -1,6 +1,6 @@<br>
 ; REQUIRES: x86<br>
 ; RUN: llvm-as -o %t.bc %s<br>
-; RUN: ld.lld -m elf_x86_64 --lto-jobs=2 -save-temps -o %t %t.bc -shared<br>
+; RUN: ld.lld -m elf_x86_64 --lto-partitions=2 -save-temps -o %t %t.bc -shared<br>
 ; RUN: llvm-nm %t0.lto.o | FileCheck --check-prefix=CHECK0 %s<br>
 ; RUN: llvm-nm %t1.lto.o | FileCheck --check-prefix=CHECK1 %s<br>
<br>
<br>
Modified: lld/trunk/test/ELF/lto/<wbr>thinlto.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/lto/thinlto.ll?rev=283817&r1=283816&r2=283817&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/lld/trunk/test/ELF/<wbr>lto/thinlto.ll?rev=283817&r1=<wbr>283816&r2=283817&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- lld/trunk/test/ELF/lto/<wbr>thinlto.ll (original)<br>
+++ lld/trunk/test/ELF/lto/<wbr>thinlto.ll Mon Oct 10 18:12:14 2016<br>
@@ -3,14 +3,14 @@<br>
 ; RUN: llvm-as %p/Inputs/thinlto.ll -o %t2.o<br>
<br>
 ; First force single-threaded mode<br>
-; RUN: ld.lld -save-temps --lto-jobs=1 -shared %t.o %t2.o -o %t<br>
+; RUN: ld.lld -save-temps --thinlto-jobs=1 -shared %t.o %t2.o -o %t<br>
 ; RUN: llvm-nm %t.lto.o | FileCheck %s --check-prefix=NM<br>
<br>
 ; NM: T f<br>
 ; NM: T g<br>
<br>
 ; Next force multi-threaded mode<br>
-; RUN: ld.lld -save-temps --lto-jobs=2 -shared %t.o %t2.o -o %t2<br>
+; RUN: ld.lld -save-temps --thinlto-jobs=2 -shared %t.o %t2.o -o %t2<br>
 ; RUN: llvm-nm %t20.lto.o | FileCheck %s --check-prefix=NM1<br>
 ; RUN: llvm-nm %t21.lto.o | FileCheck %s --check-prefix=NM2<br>
<br>
<br>
<br>
______________________________<wbr>_________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br></div>