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
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to