[lld] r312956 - LLD: Add -mllvm flag to the MinGW driver.

Martell Malone via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 11 14:36:37 PDT 2017


Author: martell
Date: Mon Sep 11 14:36:37 2017
New Revision: 312956

URL: http://llvm.org/viewvc/llvm-project?rev=312956&view=rev
Log:
LLD: Add -mllvm flag to the MinGW driver.

This adds support for passing LTO flags to the MINGW driver
in GNU LD style i.e. -mllvm flag -> /mllvm:flag

Reviewers: ruiu, mstorsjo

Differential Revision: https://reviews.llvm.org/D37712

Added:
    lld/trunk/test/MinGW/lto-debug-pass-arguments.ll
Modified:
    lld/trunk/MinGW/Driver.cpp
    lld/trunk/MinGW/Options.td

Modified: lld/trunk/MinGW/Driver.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/MinGW/Driver.cpp?rev=312956&r1=312955&r2=312956&view=diff
==============================================================================
--- lld/trunk/MinGW/Driver.cpp (original)
+++ lld/trunk/MinGW/Driver.cpp Mon Sep 11 14:36:37 2017
@@ -160,6 +160,9 @@ bool link(ArrayRef<const char *> ArgsArr
       error("unknown parameter: -m" + S);
   }
 
+  for (auto *A : Args.filtered(OPT_mllvm))
+    Add("-mllvm:" + StringRef(A->getValue()));
+
   if (Args.getLastArgValue(OPT_m) == "i386pe")
     Add("-alternatename:__image_base__=___ImageBase");
   else

Modified: lld/trunk/MinGW/Options.td
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/MinGW/Options.td?rev=312956&r1=312955&r2=312956&view=diff
==============================================================================
--- lld/trunk/MinGW/Options.td (original)
+++ lld/trunk/MinGW/Options.td Mon Sep 11 14:36:37 2017
@@ -11,6 +11,7 @@ def entry: S<"entry">, MetaVarName<"<ent
 def l: JoinedOrSeparate<["-"], "l">, MetaVarName<"<libName>">,
   HelpText<"Root name of library to use">;
 def m: JoinedOrSeparate<["-"], "m">, HelpText<"Set target emulation">;
+def mllvm: S<"mllvm">;
 def o: JoinedOrSeparate<["-"], "o">, MetaVarName<"<path>">,
   HelpText<"Path to file to write output">;
 def out_implib: Separate<["--"], "out-implib">, HelpText<"Import library name">;

Added: lld/trunk/test/MinGW/lto-debug-pass-arguments.ll
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/MinGW/lto-debug-pass-arguments.ll?rev=312956&view=auto
==============================================================================
--- lld/trunk/test/MinGW/lto-debug-pass-arguments.ll (added)
+++ lld/trunk/test/MinGW/lto-debug-pass-arguments.ll Mon Sep 11 14:36:37 2017
@@ -0,0 +1,16 @@
+; REQUIRES: x86
+; RUN: llvm-as %s -o %t.obj
+; RUN: ld.lld -m i386pep -shared -o %t.dll %t.obj -mllvm -debug-pass=Arguments 2>&1 | FileCheck %s
+
+target datalayout = "e-m:w-i64:64-f80:128-n8:16:32:64-S128"
+target triple = "x86_64-pc-windows-gnu"
+
+define void @dummy() {
+  ret void
+}
+
+define void @_DllMainCRTStartup() {
+  ret void
+}
+
+; CHECK: Pass Arguments:




More information about the llvm-commits mailing list