diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp --- a/clang/lib/Driver/Driver.cpp +++ b/clang/lib/Driver/Driver.cpp @@ -4830,8 +4830,6 @@ } 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; diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp --- a/clang/lib/Driver/ToolChains/CommonArgs.cpp +++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp @@ -671,8 +671,11 @@ 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()) diff --git a/clang/test/CodeGen/thinlto-backend-option.ll b/clang/test/CodeGen/thinlto-backend-option.ll --- a/clang/test/CodeGen/thinlto-backend-option.ll +++ b/clang/test/CodeGen/thinlto-backend-option.ll @@ -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 diff --git a/clang/test/CodeGen/thinlto-emit-llvm.c b/clang/test/CodeGen/thinlto-emit-llvm.c --- a/clang/test/CodeGen/thinlto-emit-llvm.c +++ b/clang/test/CodeGen/thinlto-emit-llvm.c @@ -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 diff --git a/clang/test/Driver/aix-unsupported-features.c b/clang/test/Driver/aix-unsupported-features.c deleted file mode 100644 --- a/clang/test/Driver/aix-unsupported-features.c +++ /dev/null @@ -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' - diff --git a/clang/test/Driver/thinlto_backend.c b/clang/test/Driver/thinlto_backend.c --- a/clang/test/Driver/thinlto_backend.c +++ b/clang/test/Driver/thinlto_backend.c @@ -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 diff --git a/clang/test/Integration/thinlto_profile_sample_accurate.c b/clang/test/Integration/thinlto_profile_sample_accurate.c --- a/clang/test/Integration/thinlto_profile_sample_accurate.c +++ b/clang/test/Integration/thinlto_profile_sample_accurate.c @@ -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