[lld] r265206 - PR27104: Add -mllvm option

Sean Silva via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 1 18:39:56 PDT 2016


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());
 }
 
 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:




More information about the llvm-commits mailing list