diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp index 48170fa908fd6..25fd940584624 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 73d7a94dd289c..43a478b0664d8 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"