diff options
author | Jim Grosbach <grosbach@apple.com> | 2010-03-25 23:34:05 +0000 |
---|---|---|
committer | Jim Grosbach <grosbach@apple.com> | 2010-03-25 23:34:05 +0000 |
commit | 78e496e165e3093f3d7373e50da1c91b9937bc69 (patch) | |
tree | 5f1559f0211cd9481cfce08b0ab111d76ba5fb19 /lib/Target/ARM/ARMSubtarget.cpp | |
parent | bd17bc96bf54cc58d91c2d20964c6c5e28bffa57 (diff) |
need to fix 'make check' tests first. revert for a moment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99569 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/ARMSubtarget.cpp')
-rw-r--r-- | lib/Target/ARM/ARMSubtarget.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/lib/Target/ARM/ARMSubtarget.cpp b/lib/Target/ARM/ARMSubtarget.cpp index 9e55cd8700..76ed66fe7d 100644 --- a/lib/Target/ARM/ARMSubtarget.cpp +++ b/lib/Target/ARM/ARMSubtarget.cpp @@ -22,6 +22,10 @@ using namespace llvm; static cl::opt<bool> ReserveR9("arm-reserve-r9", cl::Hidden, cl::desc("Reserve R9, making it unavailable as GPR")); +static cl::opt<bool> +UseNEONFP("arm-use-neon-fp", + cl::desc("Use NEON for single-precision FP"), + cl::init(false), cl::Hidden); static cl::opt<bool> UseMOVT("arm-use-movt", @@ -31,7 +35,7 @@ ARMSubtarget::ARMSubtarget(const std::string &TT, const std::string &FS, bool isT) : ARMArchVersion(V4) , ARMFPUType(None) - , UseNEONForSinglePrecisionFP(false) + , UseNEONForSinglePrecisionFP(UseNEONFP) , SlowVMLx(false) , IsThumb(isT) , ThumbMode(Thumb1) @@ -112,6 +116,14 @@ ARMSubtarget::ARMSubtarget(const std::string &TT, const std::string &FS, if (!isThumb() || hasThumb2()) PostRAScheduler = true; + + // Set CPU specific features. + if (CPUString == "cortex-a8") { + // On Cortex-a8, it's faster to perform some single-precision FP + // operations with NEON instructions. + if (UseNEONFP.getPosition() == 0) + UseNEONForSinglePrecisionFP = true; + } } /// GVIsIndirectSymbol - true if the GV will be accessed via an indirect symbol. |