Author: Dhanrajbir-Hira Date: 2023-10-03T09:18:21-04:00 New Revision: 0bb4b24ca35e1e67efc8ea2152085f981207210c
URL: https://github.com/llvm/llvm-project/commit/0bb4b24ca35e1e67efc8ea2152085f981207210c DIFF: https://github.com/llvm/llvm-project/commit/0bb4b24ca35e1e67efc8ea2152085f981207210c.diff LOG: [clang][AIX]Fix -flto-jobs for AIX. (#67853) Currently using the `-flto-jobs=N` option passes `-bplugin_opt:jobs=N` to the AIX linker which is not a valid option. This PR seeks to change this behaviour to instead pass `-bplugin_opt:-threads=N` to control the level of concurrency during LTO builds. Added: Modified: clang/lib/Driver/ToolChains/CommonArgs.cpp clang/test/Driver/lto-jobs.c Removed: ################################################################################ diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp index 48170fa908fd62f..25fd940584624ee 100644 --- a/clang/lib/Driver/ToolChains/CommonArgs.cpp +++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp @@ -631,6 +631,7 @@ void tools::addLTOOptions(const ToolChain &ToolChain, const ArgList &Args, const char *PluginOptPrefix = IsOSAIX ? "-bplugin_opt:" : "-plugin-opt="; const char *ExtraDash = IsOSAIX ? "-" : ""; + const char *ParallelismOpt = IsOSAIX ? "-threads=" : "jobs="; // Note, this solution is far from perfect, better to encode it into IR // metadata, but this may not be worth it, since it looks like aranges is on @@ -690,8 +691,8 @@ void tools::addLTOOptions(const ToolChain &ToolChain, const ArgList &Args, StringRef Parallelism = getLTOParallelism(Args, D); if (!Parallelism.empty()) - CmdArgs.push_back( - Args.MakeArgString(Twine(PluginOptPrefix) + "jobs=" + Parallelism)); + CmdArgs.push_back(Args.MakeArgString(Twine(PluginOptPrefix) + + ParallelismOpt + Parallelism)); // If an explicit debugger tuning argument appeared, pass it along. if (Arg *A = diff --git a/clang/test/Driver/lto-jobs.c b/clang/test/Driver/lto-jobs.c index 73d7a94dd289cfa..43a478b0664d847 100644 --- a/clang/test/Driver/lto-jobs.c +++ b/clang/test/Driver/lto-jobs.c @@ -17,3 +17,8 @@ // RUN: FileCheck -check-prefix=CHECK-LINK-THIN-JOBS2-ACTION < %t %s // // CHECK-LINK-THIN-JOBS2-ACTION: "-mllvm" "-threads={{[0-9]+}}" + +// RUN: %clang --target=powerpc-ibm-aix -### %s -flto=thin -flto-jobs=5 2> %t +// RUN: FileCheck -check-prefix=CHECK-AIX-LINK-THIN-JOBS-ACTION < %t %s +// +// CHECK-AIX-LINK-THIN-JOBS-ACTION: "-bplugin_opt:-threads=5" _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits