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