[clang] [Driver] Normalize SPIRV offload triple to canonical form (PR #218792)

Tom Honermann via cfe-commits cfe-commits at lists.llvm.org
Sun Sep 13 20:23:54 PDT 2026


================
@@ -1119,7 +1119,14 @@ void Driver::CreateOffloadingDeviceToolChains(Compilation &C,
     std::vector<std::string> ArgValues =
         C.getInputArgs().getAllArgValues(options::OPT_offload_targets_EQ);
     for (llvm::StringRef Target : ArgValues) {
-      Triples.insert(ToolChain::normalizeOffloadTriple(Target));
+      llvm::Triple T(ToolChain::normalizeOffloadTriple(Target));
+      if (T.isSPIRV() && Kinds.contains(Action::OFK_SYCL)) {
+        if (T.getVendor() == llvm::Triple::UnknownVendor)
+          T.setVendor(llvm::Triple::UnknownVendor);
+        if (T.getOS() == llvm::Triple::UnknownOS)
+          T.setOS(llvm::Triple::UnknownOS);
+      }
----------------
tahonermann wrote:

Oh, I see, this isn't just for SPIR-V; this is also done for NVPTX and AMDGCN, but in `ToolChain::normalizeOffloadTriple()` itself. Please move these changes there.

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


More information about the cfe-commits mailing list