[ThinLTO][AIX] Enable thinlto on AIX
Starting from AIX 7.2 TL5 SP6 and AIX 7.3 TL2 the system linker supports thinLTO. Reviewed By: ZarkoCA, MaskRay Differential Revision: https://reviews.llvm.org/D155700
This commit is contained in:
@@ -4830,8 +4830,6 @@ void Driver::BuildJobs(Compilation &C) const {
|
||||
}
|
||||
|
||||
const llvm::Triple &RawTriple = C.getDefaultToolChain().getTriple();
|
||||
if (RawTriple.isOSAIX() && LTOMode == LTOK_Thin)
|
||||
Diag(diag::err_drv_clang_unsupported) << "thinLTO on AIX";
|
||||
|
||||
// Collect the list of architectures.
|
||||
llvm::StringSet<> ArchNames;
|
||||
|
||||
@@ -671,8 +671,11 @@ void tools::addLTOOptions(const ToolChain &ToolChain, const ArgList &Args,
|
||||
CmdArgs.push_back(Args.MakeArgString(
|
||||
Twine(PluginOptPrefix) + "dwo_dir=" + Output.getFilename() + "_dwo"));
|
||||
|
||||
if (IsThinLTO)
|
||||
if (IsThinLTO && !IsOSAIX)
|
||||
CmdArgs.push_back(Args.MakeArgString(Twine(PluginOptPrefix) + "thinlto"));
|
||||
else if (IsThinLTO && IsOSAIX)
|
||||
CmdArgs.push_back(Args.MakeArgString(Twine("-bdbg:thinlto")));
|
||||
|
||||
|
||||
StringRef Parallelism = getLTOParallelism(Args, D);
|
||||
if (!Parallelism.empty())
|
||||
|
||||
@@ -6,8 +6,6 @@
|
||||
; scenario independent of any particular backend options that may exist now or
|
||||
; in the future.
|
||||
|
||||
; XFAIL: target={{.*}}-aix{{.*}}
|
||||
|
||||
; RUN: %clang -flto=thin -c -o %t.o %s
|
||||
; RUN: llvm-lto -thinlto -o %t %t.o
|
||||
; RUN: not %clang_cc1 -x ir %t.o -fthinlto-index=%t.thinlto.bc -mllvm -nonexistent -emit-obj -o /dev/null 2>&1 | FileCheck %s -check-prefix=UNKNOWN
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
// XFAIL: target={{.*}}-aix{{.*}}
|
||||
|
||||
// Test to ensure -emit-llvm and -emit-llvm-bc work when invoking the
|
||||
// ThinLTO backend path.
|
||||
// RUN: %clang -O2 %s -flto=thin -c -o %t.o
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
// RUN: %clang -target powerpc-ibm-aix-xcoff -### -flto=thin 2>&1 %s | \
|
||||
// RUN: FileCheck --check-prefix=CHECKTHINLTO %s
|
||||
// RUN: %clang -target powerpc64-ibm-aix-xcoff -### -flto=thin 2>&1 %s | \
|
||||
// RUN: FileCheck --check-prefix=CHECKTHINLTO %s
|
||||
|
||||
// CHECKTHINLTO: error: the clang compiler does not support 'thinLTO on AIX'
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
// XFAIL: target={{.*}}-aix{{.*}}
|
||||
|
||||
// RUN: %clang -O2 %s -flto=thin -c -o %t.o
|
||||
// RUN: llvm-lto -thinlto -o %t %t.o
|
||||
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
// XFAIL: target={{.*}}-aix{{.*}}
|
||||
|
||||
// Test to ensure -emit-llvm profile-sample-accurate is honored in ThinLTO.
|
||||
// RUN: %clang -O2 %s -flto=thin -fprofile-sample-accurate -c -o %t.o
|
||||
// RUN: llvm-lto -thinlto -o %t %t.o
|
||||
|
||||
Reference in New Issue
Block a user