diff --git a/clang/lib/Driver/ToolChains/PS4CPU.cpp b/clang/lib/Driver/ToolChains/PS4CPU.cpp index 71c6b650e1f52..b280abb0d58b7 100644 --- a/clang/lib/Driver/ToolChains/PS4CPU.cpp +++ b/clang/lib/Driver/ToolChains/PS4CPU.cpp @@ -180,6 +180,14 @@ void tools::PScpu::Linker::ConstructJob(Compilation &C, const JobAction &JA, if (Arg *A = Args.getLastArg(options::OPT_fcrash_diagnostics_dir)) AddCodeGenFlag(Twine("-crash-diagnostics-dir=") + A->getValue()); + StringRef Parallelism = getLTOParallelism(Args, D); + if (!Parallelism.empty()) { + if (IsPS4) + AddCodeGenFlag(Twine("-threads=") + Parallelism); + else + CmdArgs.push_back(Args.MakeArgString(Twine("-plugin-opt=jobs=") + Parallelism)); + } + if (IsPS4) { const char *Prefix = nullptr; if (D.getLTOMode() == LTOK_Thin) @@ -193,12 +201,6 @@ void tools::PScpu::Linker::ConstructJob(Compilation &C, const JobAction &JA, } } - if (IsPS5 && UseLTO) { - StringRef Parallelism = getLTOParallelism(Args, D); - if (!Parallelism.empty()) - CmdArgs.push_back(Args.MakeArgString("-plugin-opt=jobs=" + Parallelism)); - } - if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nodefaultlibs)) TC.addSanitizerArgs(Args, CmdArgs, "-l", ""); diff --git a/clang/test/Driver/lto-jobs.c b/clang/test/Driver/lto-jobs.c index 443f8abced788..5402442ce6972 100644 --- a/clang/test/Driver/lto-jobs.c +++ b/clang/test/Driver/lto-jobs.c @@ -7,6 +7,11 @@ // RUN: FileCheck -check-prefix=CHECK-LINK-THIN-JOBS-ACTION < %t %s // // CHECK-LINK-THIN-JOBS-ACTION: "-plugin-opt=jobs=5" +// +// RUN: %clang -target x86_64-scei-ps4 -### %s -flto=thin -flto-jobs=5 2> %t +// RUN: FileCheck -check-prefix=CHECK-PS4-LINK-THIN-JOBS-ACTION < %t %s +// +// CHECK-PS4-LINK-THIN-JOBS-ACTION: "-lto-thin-debug-options= -generate-arange-section -threads=5" // RUN: %clang -target x86_64-apple-darwin13.3.0 -### %s -flto=thin -flto-jobs=5 2> %t // RUN: FileCheck -check-prefix=CHECK-LINK-THIN-JOBS2-ACTION < %t %s