[clang] [Clang] Lift HIPSPV onto the new offload driver (WIP) (PR #168043)

Henry Linjamäki via cfe-commits cfe-commits at lists.llvm.org
Mon Nov 17 22:46:59 PST 2025


================
@@ -9178,19 +9179,21 @@ void LinkerWrapper::ConstructJob(Compilation &C, const JobAction &JA,
   Linker->ConstructJob(C, JA, Output, Inputs, Args, LinkingOutput);
   const auto &LinkCommand = C.getJobs().getJobs().back();
 
-  // Forward -Xoffload-linker<-triple> arguments to the device link job.
-  for (Arg *A : Args.filtered(options::OPT_Xoffload_linker)) {
+  for (Arg *A :
+       Args.filtered(options::OPT_Xoffload_compiler, OPT_Xoffload_linker)) {
     StringRef Val = A->getValue(0);
+    bool IsLinkJob = A->getOption().getID() == OPT_Xoffload_linker;
+    auto WrapperOption =
+        IsLinkJob ? Twine("--device-linker=") : Twine("--device-compiler=");
     if (Val.empty())
-      CmdArgs.push_back(
-          Args.MakeArgString(Twine("--device-linker=") + A->getValue(1)));
+      CmdArgs.push_back(Args.MakeArgString(WrapperOption + A->getValue(1)));
     else
       CmdArgs.push_back(Args.MakeArgString(
-          "--device-linker=" +
+          WrapperOption +
           ToolChain::getOpenMPTriple(Val.drop_front()).getTriple() + "=" +
           A->getValue(1)));
   }
-  Args.ClaimAllArgs(options::OPT_Xoffload_linker);
+  Args.ClaimAllArgs(options::OPT_Xoffload_compiler);
----------------
linehill wrote:

My mistake - I'll fix it.

https://github.com/llvm/llvm-project/pull/168043


More information about the cfe-commits mailing list