From: Dan Albert Date: Fri, 15 Feb 2019 20:31:54 +0000 (+0000) Subject: [Driver] Default all Android ARM targets to NEON. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6611e04fd57307da62ed5708e98ae7a9b1041145;p=clang [Driver] Default all Android ARM targets to NEON. Summary: There are an insignificant number of ARM Android devices that don't support NEON. Default to using NEON since that will improve performance on the majority of devices. Users that need to target non-NEON devices can still explicitly disable NEON. Reviewers: srhines, pirama, kristof.beyls Reviewed By: pirama Subscribers: efriedma, javed.absar, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D58153 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@354166 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Driver/ToolChains/Arch/ARM.cpp b/lib/Driver/ToolChains/Arch/ARM.cpp index 1a6636ac32..c641e5c171 100644 --- a/lib/Driver/ToolChains/Arch/ARM.cpp +++ b/lib/Driver/ToolChains/Arch/ARM.cpp @@ -378,9 +378,7 @@ void arm::getARMTargetFeatures(const ToolChain &TC, } else if (FPUArg) { getARMFPUFeatures(D, FPUArg, Args, FPUArg->getValue(), Features); } else if (Triple.isAndroid() && getARMSubArchVersionNumber(Triple) >= 7) { - // Android mandates minimum FPU requirements based on OS version. - const char *AndroidFPU = - Triple.isAndroidVersionLT(23) ? "vfpv3-d16" : "neon"; + const char *AndroidFPU = "neon"; if (!llvm::ARM::getFPUFeatures(llvm::ARM::parseFPU(AndroidFPU), Features)) D.Diag(clang::diag::err_drv_clang_unsupported) << std::string("-mfpu=") + AndroidFPU; diff --git a/test/Driver/arm-mfpu.c b/test/Driver/arm-mfpu.c index c3a644f241..1352077848 100644 --- a/test/Driver/arm-mfpu.c +++ b/test/Driver/arm-mfpu.c @@ -376,55 +376,23 @@ // CHECK-ARM5-ANDROID-FP-DEFAULT-NOT: "-target-feature" "+neon" // CHECK-ARM5-ANDROID-FP-DEFAULT-NOT: "-target-feature" "+crypto" -// RUN: %clang -target arm-linux-androideabi21 -march=armv7-a %s -### -c 2>&1 \ -// RUN: | FileCheck --check-prefix=CHECK-MARCH-ARM7-ANDROID-FP %s -// CHECK-MARCH-ARM7-ANDROID-FP-NOT: "-target-feature" "+soft-float" -// CHECK-MARCH-ARM7-ANDROID-FP: "-target-feature" "+soft-float-abi" -// CHECK-MARCH-ARM7-ANDROID-FP: "-target-feature" "+d16" -// CHECK-MARCH-ARM7-ANDROID-FP: "-target-feature" "+vfp3" -// CHECK-MARCH-ARM7-ANDROID-FP-NOT: "-target-feature" "+vfp4" -// CHECK-MARCH-ARM7-ANDROID-FP-NOT: "-target-feature" "+fp-armv8" -// CHECK-MARCH-ARM7-ANDROID-FP-NOT: "-target-feature" "+neon" -// CHECK-MARCH-ARM7-ANDROID-FP-NOT: "-target-feature" "+crypto" - // RUN: %clang -target armv7-linux-androideabi21 %s -### -c 2>&1 \ -// RUN: | FileCheck --check-prefix=CHECK-ARM-ANDROID-L-FP-DEFAULT %s -// CHECK-ARM-ANDROID-L-FP-DEFAULT-NOT: "-target-feature" "+soft-float" -// CHECK-ARM-ANDROID-L-FP-DEFAULT: "-target-feature" "+soft-float-abi" -// CHECK-ARM-ANDROID-L-FP-DEFAULT: "-target-feature" "+d16" -// CHECK-ARM-ANDROID-L-FP-DEFAULT: "-target-feature" "+vfp3" -// CHECK-ARM-ANDROID-L-FP-DEFAULT-NOT: "-target-feature" "+vfp4" -// CHECK-ARM-ANDROID-L-FP-DEFAULT-NOT: "-target-feature" "+fp-armv8" -// CHECK-ARM-ANDROID-L-FP-DEFAULT-NOT: "-target-feature" "+neon" -// CHECK-ARM-ANDROID-L-FP-DEFAULT-NOT: "-target-feature" "+crypto" - -// RUN: %clang -target armv7-linux-androideabi21 -mfpu=neon %s -### -c 2>&1 \ -// RUN: | FileCheck --check-prefix=CHECK-ARM-ANDROID-L-FP-NEON %s -// CHECK-ARM-ANDROID-L-FP-NEON-NOT: "-target-feature" "+soft-float" -// CHECK-ARM-ANDROID-L-FP-NEON: "-target-feature" "+soft-float-abi" -// CHECK-ARM-ANDROID-L-FP-NEON: "-target-feature" "+vfp3" -// CHECK-ARM-ANDROID-L-FP-NEON-NOT: "-target-feature" "+vfp4" -// CHECK-ARM-ANDROID-L-FP-NEON-NOT: "-target-feature" "+fp-armv8" -// CHECK-ARM-ANDROID-L-FP-NEON: "-target-feature" "+neon" -// CHECK-ARM-ANDROID-L-FP-NEON-NOT: "-target-feature" "+crypto" - -// RUN: %clang -target armv7-linux-androideabi23 %s -### -c 2>&1 \ -// RUN: | FileCheck --check-prefix=CHECK-ARM-ANDROID-M-FP-DEFAULT %s -// CHECK-ARM-ANDROID-M-FP-DEFAULT-NOT: "-target-feature" "+soft-float" -// CHECK-ARM-ANDROID-M-FP-DEFAULT: "-target-feature" "+soft-float-abi" -// CHECK-ARM-ANDROID-M-FP-DEFAULT: "-target-feature" "+vfp3" -// CHECK-ARM-ANDROID-M-FP-DEFAULT-NOT: "-target-feature" "+vfp4" -// CHECK-ARM-ANDROID-M-FP-DEFAULT-NOT: "-target-feature" "+fp-armv8" -// CHECK-ARM-ANDROID-M-FP-DEFAULT: "-target-feature" "+neon" -// CHECK-ARM-ANDROID-M-FP-DEFAULT-NOT: "-target-feature" "+crypto" - -// RUN: %clang -target armv7-linux-androideabi23 %s -mfpu=vfp3-d16 -### -c 2>&1 \ -// RUN: | FileCheck --check-prefix=CHECK-ARM-ANDROID-M-FP-D16 %s -// CHECK-ARM-ANDROID-M-FP-D16-NOT: "-target-feature" "+soft-float" -// CHECK-ARM-ANDROID-M-FP-D16: "-target-feature" "+soft-float-abi" -// CHECK-ARM-ANDROID-M-FP-D16: "-target-feature" "+d16" -// CHECK-ARM-ANDROID-M-FP-D16: "-target-feature" "+vfp3" -// CHECK-ARM-ANDROID-M-FP-D16-NOT: "-target-feature" "+vfp4" -// CHECK-ARM-ANDROID-M-FP-D16-NOT: "-target-feature" "+fp-armv8" -// CHECK-ARM-ANDROID-M-FP-D16-NOT: "-target-feature" "+neon" -// CHECK-ARM-ANDROID-M-FP-D16-NOT: "-target-feature" "+crypto" +// RUN: | FileCheck --check-prefix=CHECK-ARM7-ANDROID-FP-DEFAULT %s +// CHECK-ARM7-ANDROID-FP-DEFAULT-NOT: "-target-feature" "+soft-float" +// CHECK-ARM7-ANDROID-FP-DEFAULT: "-target-feature" "+soft-float-abi" +// CHECK-ARM7-ANDROID-FP-DEFAULT: "-target-feature" "+vfp3" +// CHECK-ARM7-ANDROID-FP-DEFAULT-NOT: "-target-feature" "+vfp4" +// CHECK-ARM7-ANDROID-FP-DEFAULT-NOT: "-target-feature" "+fp-armv8" +// CHECK-ARM7-ANDROID-FP-DEFAULT: "-target-feature" "+neon" +// CHECK-ARM7-ANDROID-FP-DEFAULT-NOT: "-target-feature" "+crypto" + +// RUN: %clang -target armv7-linux-androideabi21 %s -mfpu=vfp3-d16 -### -c 2>&1 \ +// RUN: | FileCheck --check-prefix=CHECK-ARM7-ANDROID-FP-D16 %s +// CHECK-ARM7-ANDROID-FP-D16-NOT: "-target-feature" "+soft-float" +// CHECK-ARM7-ANDROID-FP-D16: "-target-feature" "+soft-float-abi" +// CHECK-ARM7-ANDROID-FP-D16: "-target-feature" "+d16" +// CHECK-ARM7-ANDROID-FP-D16: "-target-feature" "+vfp3" +// CHECK-ARM7-ANDROID-FP-D16-NOT: "-target-feature" "+vfp4" +// CHECK-ARM7-ANDROID-FP-D16-NOT: "-target-feature" "+fp-armv8" +// CHECK-ARM7-ANDROID-FP-D16-NOT: "-target-feature" "+neon" +// CHECK-ARM7-ANDROID-FP-D16-NOT: "-target-feature" "+crypto"