From c3c1826c310c42244c7cad8d0c6af3a368fcd064 Mon Sep 17 00:00:00 2001 From: Jamie Schmeiser Date: Thu, 29 Jul 2021 09:59:24 -0400 Subject: [PATCH] Set TargetCPUName for AIX to default to pwr7. Summary: Set the TargetCPUName for AIX to default to pwr7, removing the setting of it based on the major/minor of the OS version, which previously set it to pwr4 for AIX 7.1 and earlier. The old code would also set it to pwr4 when the OS version was not specified and with the change, it will default it to pwr7 in all cases. Author: Jamie Schmeiser Reviewed By:hubert.reinterpretcast (Hubert Tong) Differential Revision: https://reviews.llvm.org/D107063 --- clang/lib/Driver/ToolChains/CommonArgs.cpp | 11 ++----- clang/test/Driver/aix-mcpu-default.c | 34 +++++++++++++++++----- 2 files changed, 29 insertions(+), 16 deletions(-) diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp index 83cab3ac00cb..d9a6599a2416 100644 --- a/clang/lib/Driver/ToolChains/CommonArgs.cpp +++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp @@ -403,14 +403,9 @@ std::string tools::getCPUName(const ArgList &Args, const llvm::Triple &T, if (!TargetCPUName.empty()) return TargetCPUName; - 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) + if (T.isOSAIX()) + TargetCPUName = "pwr7"; + else if (T.getArch() == llvm::Triple::ppc64le) TargetCPUName = "ppc64le"; else if (T.getArch() == llvm::Triple::ppc64) TargetCPUName = "ppc64"; diff --git a/clang/test/Driver/aix-mcpu-default.c b/clang/test/Driver/aix-mcpu-default.c index 7b55839a8066..3bb3c7f95e1e 100644 --- a/clang/test/Driver/aix-mcpu-default.c +++ b/clang/test/Driver/aix-mcpu-default.c @@ -2,18 +2,36 @@ // RUN: %clang -no-canonical-prefixes %s -### -c 2>&1 \ // RUN: -target powerpc-ibm-aix7.2 \ // RUN: | FileCheck --check-prefix=CHECK-MCPU-DEFAULT-AIX72 %s + +// Check that the target cpu defaults to power7 on AIX7.2 and up. +// RUN: %clang -no-canonical-prefixes %s -### -c 2>&1 \ +// RUN: -target powerpc64-ibm-aix7.2 \ +// RUN: | FileCheck --check-prefix=CHECK-MCPU-DEFAULT-AIX72 %s + +// Check that the target cpu defaults to power7 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-AIX72 %s + +// Check that the target cpu defaults to power7 on AIX7.1 and below. +// RUN: %clang -no-canonical-prefixes %s -### -c 2>&1 \ +// RUN: -target powerpc64-ibm-aix7.1 \ +// RUN: | FileCheck --check-prefix=CHECK-MCPU-DEFAULT-AIX72 %s + +// Check that the target cpu defaults to power7 when level not specified. +// RUN: %clang -no-canonical-prefixes %s -### -c 2>&1 \ +// RUN: -target powerpc-ibm-aix \ +// RUN: | FileCheck --check-prefix=CHECK-MCPU-DEFAULT-AIX72 %s + +// Check that the target cpu defaults to power7 when level not specified. +// RUN: %clang -no-canonical-prefixes %s -### -c 2>&1 \ +// RUN: -target powerpc64-ibm-aix \ +// 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 \ // RUN: -mcpu=pwr6 \