https://github.com/kbelochapka updated https://github.com/llvm/llvm-project/pull/202924
>From e24d9a71294cabfb6b7716ecb776d980179206f2 Mon Sep 17 00:00:00 2001 From: Konstantin Belochapka <[email protected]> Date: Wed, 10 Jun 2026 03:38:06 -0700 Subject: [PATCH 1/3] [clang][PS5] Clang driver PS5 - pass the target CPU to lld. --- clang/lib/Driver/ToolChains/PS4CPU.cpp | 4 ++++ clang/test/Driver/ps5-linker.c | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/clang/lib/Driver/ToolChains/PS4CPU.cpp b/clang/lib/Driver/ToolChains/PS4CPU.cpp index 8f5d3ec8a6f91..234dcba64c897 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" @@ -178,6 +179,9 @@ void tools::PS4cpu::Linker::ConstructJob(Compilation &C, const JobAction &JA, if (StringRef Threads = getLTOParallelism(Args, D); !Threads.empty()) AddLTOFlag(Twine("-threads=") + Threads); + std::string CPU = tools::x86::getX86TargetCPU(D, Args, TC.getTriple()); + AddLTOFlag(Twine("mcpu=" + CPU)); + if (*LTOArgs) CmdArgs.push_back( Args.MakeArgString(Twine("-lto-debug-options=") + LTOArgs)); diff --git a/clang/test/Driver/ps5-linker.c b/clang/test/Driver/ps5-linker.c index 6f37ca8958fc1..ea8d7f95de5dd 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=znver2s 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=znver2s" >From a2cba9f93149da3f912bc6a96df6bbcf17184966 Mon Sep 17 00:00:00 2001 From: Konstantin Belochapka <[email protected]> Date: Wed, 10 Jun 2026 23:04:05 -0700 Subject: [PATCH 2/3] [clang][PS5] Clang driver PS5 pass the target CPU to lld - Fixed incorrect merge. Replaced mcpu=znver2s for mcpu=znver2. --- clang/lib/Driver/ToolChains/PS4CPU.cpp | 6 +++--- clang/test/Driver/ps5-linker.c | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/clang/lib/Driver/ToolChains/PS4CPU.cpp b/clang/lib/Driver/ToolChains/PS4CPU.cpp index 234dcba64c897..431df5dbfabd1 100644 --- a/clang/lib/Driver/ToolChains/PS4CPU.cpp +++ b/clang/lib/Driver/ToolChains/PS4CPU.cpp @@ -179,9 +179,6 @@ void tools::PS4cpu::Linker::ConstructJob(Compilation &C, const JobAction &JA, if (StringRef Threads = getLTOParallelism(Args, D); !Threads.empty()) AddLTOFlag(Twine("-threads=") + Threads); - std::string CPU = tools::x86::getX86TargetCPU(D, Args, TC.getTriple()); - AddLTOFlag(Twine("mcpu=" + CPU)); - if (*LTOArgs) CmdArgs.push_back( Args.MakeArgString(Twine("-lto-debug-options=") + LTOArgs)); @@ -374,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 ea8d7f95de5dd..75aeb2a0c0b8f 100644 --- a/clang/test/Driver/ps5-linker.c +++ b/clang/test/Driver/ps5-linker.c @@ -225,4 +225,4 @@ // 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=znver2s" +// CHECK-CLANG-TARGET-CPU: "-plugin-opt=mcpu=znver2" >From 8fa3efadae98e4958eeb917d624d7ecb688cc68f Mon Sep 17 00:00:00 2001 From: Konstantin Belochapka <[email protected]> Date: Thu, 11 Jun 2026 02:21:18 -0700 Subject: [PATCH 3/3] Update clang/test/Driver/ps5-linker.c Co-authored-by: Edd Dawson <[email protected]> --- clang/test/Driver/ps5-linker.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clang/test/Driver/ps5-linker.c b/clang/test/Driver/ps5-linker.c index 75aeb2a0c0b8f..ed30a4f054df6 100644 --- a/clang/test/Driver/ps5-linker.c +++ b/clang/test/Driver/ps5-linker.c @@ -221,7 +221,7 @@ // CHECK-NO-FAT-LTO-NOT: "--fat-lto-objects" // CHECK-NO-FAT-LTO-SAME: {{$}} -// Check -plugin-opt=mcpu=znver2s is passed to prospero-lld. +// 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)?}}" _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
