[clang] f5bf584 - [clang][PS5] Clang driver PS5 - pass the target CPU to lld. (#202924)
via cfe-commits
cfe-commits at lists.llvm.org
Thu Jun 11 03:15:15 PDT 2026
Author: Konstantin Belochapka
Date: 2026-06-11T03:15:10-07:00
New Revision: f5bf584afaaf0549fbf5d645298ff5a3bea31b96
URL: https://github.com/llvm/llvm-project/commit/f5bf584afaaf0549fbf5d645298ff5a3bea31b96
DIFF: https://github.com/llvm/llvm-project/commit/f5bf584afaaf0549fbf5d645298ff5a3bea31b96.diff
LOG: [clang][PS5] Clang driver PS5 - pass the target CPU to lld. (#202924)
Forward the PS5 target CPU from the clang driver to lld as
`-plugin-opt=mcpu=znver2`, matching behavior of other platforms.
Most drivers call addLTOOptions to include LTO-related link options. That includes specifying mcpu. The PS5 driver doesn't yet call addLTOOptions. In time I hope we'll arrive at a point where we can refactor to use the same functionality. This is one step towards that.
---------
Co-authored-by: Edd Dawson <edd.dawson at sony.com>
Added:
Modified:
clang/lib/Driver/ToolChains/PS4CPU.cpp
clang/test/Driver/ps5-linker.c
Removed:
################################################################################
diff --git a/clang/lib/Driver/ToolChains/PS4CPU.cpp b/clang/lib/Driver/ToolChains/PS4CPU.cpp
index 20ba7aa9de04a..f9f66d53a0e81 100644
--- a/clang/lib/Driver/ToolChains/PS4CPU.cpp
+++ b/clang/lib/Driver/ToolChains/PS4CPU.cpp
@@ -7,6 +7,7 @@
//===----------------------------------------------------------------------===//
#include "PS4CPU.h"
+#include "Arch/X86.h"
#include "clang/Config/config.h"
#include "clang/Driver/CommonArgs.h"
#include "clang/Driver/Compilation.h"
@@ -370,6 +371,9 @@ void tools::PS5cpu::Linker::ConstructJob(Compilation &C, const JobAction &JA,
if (StringRef Jobs = getLTOParallelism(Args, D); !Jobs.empty())
AddLTOFlag(Twine("jobs=") + Jobs);
+ std::string CPU = tools::x86::getX86TargetCPU(D, Args, TC.getTriple());
+ AddLTOFlag(Twine("mcpu=" + CPU));
+
Args.AddAllArgs(CmdArgs, options::OPT_L);
TC.AddFilePathLibArgs(Args, CmdArgs);
Args.addAllArgs(CmdArgs,
diff --git a/clang/test/Driver/ps5-linker.c b/clang/test/Driver/ps5-linker.c
index 6f37ca8958fc1..ed30a4f054df6 100644
--- a/clang/test/Driver/ps5-linker.c
+++ b/clang/test/Driver/ps5-linker.c
@@ -220,3 +220,9 @@
// CHECK-NO-FAT-LTO: {{ld(\.exe)?}}"
// CHECK-NO-FAT-LTO-NOT: "--fat-lto-objects"
// CHECK-NO-FAT-LTO-SAME: {{$}}
+
+// Check -plugin-opt=mcpu=znver2 is passed to prospero-lld.
+// RUN: %clang --target=x86_64-sie-ps5 %s -### 2>&1 | FileCheck --check-prefixes=CHECK-CLANG-TARGET-CPU %s
+
+// CHECK-CLANG-TARGET-CPU: {{ld(\.exe)?}}"
+// CHECK-CLANG-TARGET-CPU: "-plugin-opt=mcpu=znver2"
More information about the cfe-commits
mailing list