[lld] r265206 - PR27104: Add -mllvm option
Rui Ueyama via llvm-commits
llvm-commits at lists.llvm.org
Fri Apr 1 19:41:02 PDT 2016
On Fri, Apr 1, 2016 at 6:39 PM, Sean Silva via llvm-commits <
llvm-commits at lists.llvm.org> wrote:
> Author: silvas
> Date: Fri Apr 1 20:39:56 2016
> New Revision: 265206
>
> URL: http://llvm.org/viewvc/llvm-project?rev=265206&view=rev
> Log:
> PR27104: Add -mllvm option
>
> The argv[0] is based on the analogous thing in clang.
>
> 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/lto/ltopasses-basic.ll
>
> Modified: lld/trunk/ELF/Config.h
> URL:
> http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Config.h?rev=265206&r1=265205&r2=265206&view=diff
>
> ==============================================================================
> --- lld/trunk/ELF/Config.h (original)
> +++ lld/trunk/ELF/Config.h Fri Apr 1 20:39:56 2016
> @@ -91,6 +91,7 @@ struct Configuration {
> uint16_t EMachine = llvm::ELF::EM_NONE;
> uint64_t EntryAddr = -1;
> unsigned LtoO;
> + std::vector<const char *> MLlvm = {"lld (LLVM option parsing)"};
> unsigned Optimize;
> };
>
>
> Modified: lld/trunk/ELF/Driver.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Driver.cpp?rev=265206&r1=265205&r2=265206&view=diff
>
> ==============================================================================
> --- lld/trunk/ELF/Driver.cpp (original)
> +++ lld/trunk/ELF/Driver.cpp Fri Apr 1 20:39:56 2016
> @@ -308,6 +308,9 @@ void LinkerDriver::readConfigs(opt::Inpu
>
> for (auto *Arg : Args.filtered(OPT_undefined))
> Config->Undefined.push_back(Arg->getValue());
> +
> + for (auto *Arg : Args.filtered(OPT_mllvm))
> + Config->MLlvm.push_back(Arg->getValue());
>
Do you need to store -mllvm options to Config? It seems that you can
directly call cl::ParseCommandLineOptions here without storing it to Config.
> }
>
> void LinkerDriver::createFiles(opt::InputArgList &Args) {
>
> Modified: lld/trunk/ELF/LTO.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/LTO.cpp?rev=265206&r1=265205&r2=265206&view=diff
>
> ==============================================================================
> --- lld/trunk/ELF/LTO.cpp (original)
> +++ lld/trunk/ELF/LTO.cpp Fri Apr 1 20:39:56 2016
> @@ -143,6 +143,8 @@ std::unique_ptr<InputFile> BitcodeCompil
> internalize(*GV);
> }
>
> + cl::ParseCommandLineOptions(Config->MLlvm.size(), Config->MLlvm.data());
> +
> if (Config->SaveTemps)
> saveBCFile(Combined, ".lto.bc");
>
>
> Modified: lld/trunk/ELF/Options.td
> URL:
> http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Options.td?rev=265206&r1=265205&r2=265206&view=diff
>
> ==============================================================================
> --- lld/trunk/ELF/Options.td (original)
> +++ lld/trunk/ELF/Options.td Fri Apr 1 20:39:56 2016
> @@ -215,5 +215,6 @@ def G : Separate<["-"], "G">;
> // Aliases for ignored options
> def alias_version_script_version_script : Joined<["--"],
> "version-script=">, Alias<version_script>;
>
> -// Debugging options
> +// Debugging/developer options
> def save_temps : Flag<["-"], "save-temps">;
> +def mllvm : Separate<["-"], "mllvm">;
>
> Modified: lld/trunk/test/ELF/lto/ltopasses-basic.ll
> URL:
> http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/lto/ltopasses-basic.ll?rev=265206&r1=265205&r2=265206&view=diff
>
> ==============================================================================
> --- lld/trunk/test/ELF/lto/ltopasses-basic.ll (original)
> +++ lld/trunk/test/ELF/lto/ltopasses-basic.ll Fri Apr 1 20:39:56 2016
> @@ -1,7 +1,7 @@
> ; REQUIRES: x86
> ; RUN: rm -f %t.so.lto.bc %t.so.lto.opt.bc %t.so.lto.o
> ; RUN: llvm-as %s -o %t.o
> -; RUN: ld.lld -m elf_x86_64 %t.o -o %t.so -save-temps -shared
> +; RUN: ld.lld -m elf_x86_64 %t.o -o %t.so -save-temps -mllvm
> -debug-pass=Arguments -shared 2>&1 | FileCheck %s --check-prefix=MLLVM
> ; RUN: llvm-dis %t.so.lto.opt.bc -o - | FileCheck %s
>
> target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
> @@ -14,3 +14,5 @@ define void @ctor() {
>
> ; `@ctor` doesn't do anything and so the optimizer should kill it,
> leaving no ctors
> ; CHECK: @llvm.global_ctors = appending global [0 x { i32, void ()*, i8*
> }] zeroinitializer
> +
> +; MLLVM: Pass Arguments:
>
>
> _______________________________________________
> 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/20160401/ea0a4097/attachment.html>
More information about the llvm-commits
mailing list