[clang] [ClangLinkerWrapper] Remove OPT_linker_arg_EQ and OPT_compiler_arg_EQ options from ClangLinkerWrapper (PR #181600)
via cfe-commits
cfe-commits at lists.llvm.org
Mon Feb 16 14:53:38 PST 2026
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-clang
Author: None (YixingZhang007)
<details>
<summary>Changes</summary>
This patch removes the use of `OPT_compiler_arg_EQ` and `OPT_linker_arg_EQ` in `clang-linker-wrapper`. The following changes are made:
1. Use `OPT_device_compiler_args_EQ` and `OPT_device_linker_args_EQ` to store parsed compiler and linker options in `ClangLinkerWrapper.cpp`, replacing `OPT_compiler_arg_EQ` and `OPT_linker_arg_EQ`.
2. Remove `OPT_compiler_arg_EQ` and `OPT_linker_arg_EQ` from `LinkerWrapperOpts.td`.
---
Full diff: https://github.com/llvm/llvm-project/pull/181600.diff
2 Files Affected:
- (modified) clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp (+13-10)
- (modified) clang/tools/clang-linker-wrapper/LinkerWrapperOpts.td (-6)
``````````diff
diff --git a/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp b/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp
index 619e539857fc6..f2052d51dfef9 100644
--- a/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp
+++ b/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp
@@ -585,9 +585,9 @@ Expected<StringRef> clang(ArrayRef<StringRef> InputFiles, const ArgList &Args,
CmdArgs.append({"-Xlinker", Args.MakeArgString("-arch=" + Arch)});
}
- for (StringRef Arg : Args.getAllArgValues(OPT_linker_arg_EQ))
+ for (StringRef Arg : Args.getAllArgValues(OPT_device_linker_args_EQ))
CmdArgs.append({"-Xlinker", Args.MakeArgString(Arg)});
- for (StringRef Arg : Args.getAllArgValues(OPT_compiler_arg_EQ))
+ for (StringRef Arg : Args.getAllArgValues(OPT_device_compiler_args_EQ))
CmdArgs.push_back(Args.MakeArgString(Arg));
if (Error Err = executeCommands(*ClangPath, CmdArgs))
@@ -873,8 +873,11 @@ bundleLinkedOutput(ArrayRef<OffloadingImage> Images, const ArgList &Args,
DerivedArgList getLinkerArgs(ArrayRef<OffloadFile> Input,
const InputArgList &Args) {
DerivedArgList DAL = DerivedArgList(DerivedArgList(Args));
- for (Arg *A : Args)
- DAL.append(A);
+ for (Arg *A : Args) {
+ if (!A->getOption().matches(OPT_device_linker_args_EQ) &&
+ !A->getOption().matches(OPT_device_compiler_args_EQ))
+ DAL.append(A);
+ }
// Set the subarchitecture and target triple for this compilation.
const OptTable &Tbl = getOptTable();
@@ -898,13 +901,13 @@ DerivedArgList getLinkerArgs(ArrayRef<OffloadFile> Input,
llvm::Triple TT(Triple);
// If this isn't a recognized triple then it's an `arg=value` option.
if (TT.getArch() == Triple::ArchType::UnknownArch)
- DAL.AddJoinedArg(nullptr, Tbl.getOption(OPT_linker_arg_EQ),
+ DAL.AddJoinedArg(nullptr, Tbl.getOption(OPT_device_linker_args_EQ),
Args.MakeArgString(Arg));
else if (Value.empty())
- DAL.AddJoinedArg(nullptr, Tbl.getOption(OPT_linker_arg_EQ),
+ DAL.AddJoinedArg(nullptr, Tbl.getOption(OPT_device_linker_args_EQ),
Args.MakeArgString(Triple));
else if (Triple == DAL.getLastArgValue(OPT_triple_EQ))
- DAL.AddJoinedArg(nullptr, Tbl.getOption(OPT_linker_arg_EQ),
+ DAL.AddJoinedArg(nullptr, Tbl.getOption(OPT_device_linker_args_EQ),
Args.MakeArgString(Value));
}
@@ -914,13 +917,13 @@ DerivedArgList getLinkerArgs(ArrayRef<OffloadFile> Input,
llvm::Triple TT(Triple);
// If this isn't a recognized triple then it's an `arg=value` option.
if (TT.getArch() == Triple::ArchType::UnknownArch)
- DAL.AddJoinedArg(nullptr, Tbl.getOption(OPT_compiler_arg_EQ),
+ DAL.AddJoinedArg(nullptr, Tbl.getOption(OPT_device_compiler_args_EQ),
Args.MakeArgString(Arg));
else if (Value.empty())
- DAL.AddJoinedArg(nullptr, Tbl.getOption(OPT_compiler_arg_EQ),
+ DAL.AddJoinedArg(nullptr, Tbl.getOption(OPT_device_compiler_args_EQ),
Args.MakeArgString(Triple));
else if (Triple == DAL.getLastArgValue(OPT_triple_EQ))
- DAL.AddJoinedArg(nullptr, Tbl.getOption(OPT_compiler_arg_EQ),
+ DAL.AddJoinedArg(nullptr, Tbl.getOption(OPT_device_compiler_args_EQ),
Args.MakeArgString(Value));
}
diff --git a/clang/tools/clang-linker-wrapper/LinkerWrapperOpts.td b/clang/tools/clang-linker-wrapper/LinkerWrapperOpts.td
index ef3a16b2f58bb..8192c71d2c573 100644
--- a/clang/tools/clang-linker-wrapper/LinkerWrapperOpts.td
+++ b/clang/tools/clang-linker-wrapper/LinkerWrapperOpts.td
@@ -79,12 +79,6 @@ def triple_EQ : Joined<["--"], "triple=">,
def whole_program : Flag<["--"], "whole-program">,
Flags<[DeviceOnlyOption, HelpHidden]>,
HelpText<"LTO has visibility of all input files">;
-def linker_arg_EQ : Joined<["--"], "linker-arg=">,
- Flags<[DeviceOnlyOption, HelpHidden]>,
- HelpText<"An extra argument to be passed to the linker">;
-def compiler_arg_EQ : Joined<["--"], "compiler-arg=">,
- Flags<[DeviceOnlyOption, HelpHidden]>,
- HelpText<"An extra argument to be passed to the compiler">;
// Arguments for the LLVM backend.
def mllvm : Separate<["-"], "mllvm">, Flags<[WrapperOnlyOption]>,
``````````
</details>
https://github.com/llvm/llvm-project/pull/181600
More information about the cfe-commits
mailing list