[AIX] Update default arch on AIX

On AIX, the default arch level should match the minimum supported arch level of the OS version.

Differential Revision: https://reviews.llvm.org/D97823
This commit is contained in:
Steven Wan 2021-03-03 19:06:37 -05:00
parent e07c968a6d
commit 0b274ed499
2 changed files with 22 additions and 9 deletions

View File

@ -399,9 +399,14 @@ std::string tools::getCPUName(const ArgList &Args, const llvm::Triple &T,
if (!TargetCPUName.empty())
return TargetCPUName;
if (T.isOSAIX())
TargetCPUName = "pwr4";
else if (T.getArch() == llvm::Triple::ppc64le)
if (T.isOSAIX()) {
unsigned major, minor, unused_micro;
T.getOSVersion(major, minor, unused_micro);
// The minimal arch level moved from pwr4 for AIX7.1 to
// pwr7 for AIX7.2.
TargetCPUName =
(major < 7 || (major == 7 && minor < 2)) ? "pwr4" : "pwr7";
} else if (T.getArch() == llvm::Triple::ppc64le)
TargetCPUName = "ppc64le";
else if (T.getArch() == llvm::Triple::ppc64)
TargetCPUName = "ppc64";

View File

@ -1,10 +1,18 @@
// Check that the target cpu defaults to power4 on AIX.
// Check that the target cpu defaults to power7 on AIX7.2 and up.
// RUN: %clang -no-canonical-prefixes %s -### -c 2>&1 \
// RUN: -target powerpc-ibm-aix \
// RUN: | FileCheck --check-prefix=CHECK-MCPU-DEFAULT %s
// CHECK-MCPU-DEFAULT-NOT: warning:
// CHECK-MCPU-DEFAULT: {{.*}}clang{{.*}}" "-cc1"
// CHECK-MCPU-DEFAULT: "-target-cpu" "pwr4"
// RUN: -target powerpc-ibm-aix7.2 \
// RUN: | FileCheck --check-prefix=CHECK-MCPU-DEFAULT-AIX72 %s
// CHECK-MCPU-DEFAULT-AIX72-NOT: warning:
// CHECK-MCPU-DEFAULT-AIX72: {{.*}}clang{{.*}}" "-cc1"
// CHECK-MCPU-DEFAULT-AIX72: "-target-cpu" "pwr7"
// Check that the target cpu defaults to power4 on AIX7.1 and below.
// RUN: %clang -no-canonical-prefixes %s -### -c 2>&1 \
// RUN: -target powerpc-ibm-aix7.1 \
// RUN: | FileCheck --check-prefix=CHECK-MCPU-DEFAULT-AIX71 %s
// CHECK-MCPU-DEFAULT-AIX71-NOT: warning:
// CHECK-MCPU-DEFAULT-AIX71: {{.*}}clang{{.*}}" "-cc1"
// CHECK-MCPU-DEFAULT-AIX71: "-target-cpu" "pwr4"
// Check that the user is able to overwrite the default with '-mcpu'.
// RUN: %clang -no-canonical-prefixes %s -### -c 2>&1 \