[clang] Refactor OPT_linker_arg_EQ and OPT_compiler_arg_EQ (PR #181600)
via cfe-commits
cfe-commits at lists.llvm.org
Sun Feb 15 21:25:26 PST 2026
https://github.com/YixingZhang007 created https://github.com/llvm/llvm-project/pull/181600
None
>From f1371bb8f9f6aabff539c1a93ab9ed373c0cf328 Mon Sep 17 00:00:00 2001
From: "yixing.zhang" <yixingzh at smtp.igk.intel.com>
Date: Mon, 16 Feb 2026 06:14:24 +0100
Subject: [PATCH] remove OPT_linker_arg_EQ and OPT_compiler_arg_EQ
---
.../ClangLinkerWrapper.cpp | 23 +++++++++++--------
.../clang-linker-wrapper/LinkerWrapperOpts.td | 6 -----
2 files changed, 13 insertions(+), 16 deletions(-)
diff --git a/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp b/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp
index 619e539857fc6..fc8ab5b0cdedf 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]>,
More information about the cfe-commits
mailing list