[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:
Wael Yehia
2023-07-18 21:48:03 -04:00
parent 1d49834280
commit 645f6dcd69
7 changed files with 4 additions and 18 deletions

View File

@@ -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;

View File

@@ -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())

View File

@@ -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

View File

@@ -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

View File

@@ -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'

View File

@@ -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

View File

@@ -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