summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver/ToolChains/Arch/ARM.cpp
diff options
context:
space:
mode:
authorDan Albert <danalbert@google.com>2018-10-12 17:06:31 +0000
committerDan Albert <danalbert@google.com>2018-10-12 17:06:31 +0000
commitd0fbef9c753a78aa20d5a462b682bfaf83cc6e6e (patch)
tree1534f1e2f0c459733adc01921e4422e5671f3521 /clang/lib/Driver/ToolChains/Arch/ARM.cpp
parent6c2327a09e2820302a3a2be0f0dbe24530ca5e7c (diff)
downloadbcm5719-llvm-d0fbef9c753a78aa20d5a462b682bfaf83cc6e6e.tar.gz
bcm5719-llvm-d0fbef9c753a78aa20d5a462b682bfaf83cc6e6e.zip
[Driver] Add defaults for Android ARM FPUs.
Summary: Android mandates that devices have at least vfpv3-d16 until Marshmallow and NEON after that. Still honor the user's decision, but raise the defaults for Android targets. Reviewers: srhines, pirama, javed.absar, kristof.beyls, peter.smith Reviewed By: peter.smith Subscribers: peter.smith, rengolin, kristof.beyls, chrib, cfe-commits Differential Revision: https://reviews.llvm.org/D53121 llvm-svn: 344367
Diffstat (limited to 'clang/lib/Driver/ToolChains/Arch/ARM.cpp')
-rw-r--r--clang/lib/Driver/ToolChains/Arch/ARM.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/clang/lib/Driver/ToolChains/Arch/ARM.cpp b/clang/lib/Driver/ToolChains/Arch/ARM.cpp
index 1ff73ea4fd7..e454a30b61a 100644
--- a/clang/lib/Driver/ToolChains/Arch/ARM.cpp
+++ b/clang/lib/Driver/ToolChains/Arch/ARM.cpp
@@ -378,6 +378,13 @@ void arm::getARMTargetFeatures(const ToolChain &TC,
Features);
} 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";
+ if (!llvm::ARM::getFPUFeatures(llvm::ARM::parseFPU(AndroidFPU), Features))
+ D.Diag(clang::diag::err_drv_clang_unsupported)
+ << std::string("-mfpu=") + AndroidFPU;
}
// Honor -mhwdiv=. ClangAs gives preference to -Wa,-mhwdiv=.
OpenPOWER on IntegriCloud