[PATCH] D129424: [LinkerWrapper] Forward `-mllvm` options to the linker wrapper

Fangrui Song via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Sat Jul 9 15:17:21 PDT 2022


MaskRay accepted this revision.
MaskRay added a comment.
This revision is now accepted and ready to land.

> This patch adds the ability to use -mllvm options in the linker wrapper when performing bitcode linking or the module compilation. This is done by passing in the LLVM argument to the clang-linker-wrapper ...

The description can be simplified. "This patch adds the ability to " can be simplified as "Add ..." (imperative).

> The actual arguments to the linker wrapper are parsed using the Opt library instead.

It is called `LLVMOption`. You can also refer to it as `llvm/lib/Option`.

> As far as I can tell this is the easiest way to forward arguments to LLVM tool invocations. If there is a better way to pass these arguments (such as through the LTO config) let me know.

This is how `Clang::ConstructJob` handles -mllvm, too.



================
Comment at: clang/lib/Driver/ToolChains/Clang.cpp:8466
+  // Forward `-mllvm` arguments to the LLVM invocations if present.
+  for (auto *Arg : Args.filtered(options::OPT_mllvm)) {
+    CmdArgs.push_back("-mllvm");
----------------



================
Comment at: clang/lib/Driver/ToolChains/Clang.cpp:8467
+  for (auto *Arg : Args.filtered(options::OPT_mllvm)) {
+    CmdArgs.push_back("-mllvm");
+    CmdArgs.push_back(Arg->getValue());
----------------
Add `A->claim();`


================
Comment at: clang/test/Driver/openmp-offload.c:676
+
+// CHK-NEW-DRIVER-MLLVM: clang-linker-wrapper{{.*}}"-abc
----------------
Just add the ending `"`


================
Comment at: clang/tools/clang-linker-wrapper/LinkerWrapperOpts.td:74
+// Arguments for the LLVM backend.
+def mllvm : Separate<["--", "-"], "mllvm">, Flags<[WrapperOnlyOption]>,
+  MetaVarName<"<arg>">, HelpText<"Arguments passed to the LLVM invocation">;
----------------
Just keep `"-"` and remove `"--"`. clang doesn't support --mllvm. There is no need making users choose different spellings.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D129424/new/

https://reviews.llvm.org/D129424



More information about the cfe-commits mailing list