aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/ARM/ARMSubtarget.cpp
diff options
context:
space:
mode:
authorJim Grosbach <grosbach@apple.com>2010-03-24 22:31:46 +0000
committerJim Grosbach <grosbach@apple.com>2010-03-24 22:31:46 +0000
commitbf83ec6ee76e43bf2c9e92d14b2c2c0114c81f43 (patch)
tree48ab73eca523ba3889720df84425b36b6be252fc /lib/Target/ARM/ARMSubtarget.cpp
parent144bd6823fbf63e2fb4befcadc3552c8df9b4030 (diff)
downloadexternal_llvm-bf83ec6ee76e43bf2c9e92d14b2c2c0114c81f43.zip
external_llvm-bf83ec6ee76e43bf2c9e92d14b2c2c0114c81f43.tar.gz
external_llvm-bf83ec6ee76e43bf2c9e92d14b2c2c0114c81f43.tar.bz2
Make the use of the vmla and vmls VFP instructions controllable via cmd line.
Preliminary testing shows significant performance wins by not using these instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99436 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/ARMSubtarget.cpp')
-rw-r--r--lib/Target/ARM/ARMSubtarget.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/Target/ARM/ARMSubtarget.cpp b/lib/Target/ARM/ARMSubtarget.cpp
index 2dad7f1..6b4438d 100644
--- a/lib/Target/ARM/ARMSubtarget.cpp
+++ b/lib/Target/ARM/ARMSubtarget.cpp
@@ -26,6 +26,10 @@ 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>
+UseVMLxInstructions("arm-use-vmlx",
+ cl::desc("Use VFP vmla and vmls instructions"),
+ cl::init(true), cl::Hidden);
static cl::opt<bool>
UseMOVT("arm-use-movt",
@@ -36,6 +40,7 @@ ARMSubtarget::ARMSubtarget(const std::string &TT, const std::string &FS,
: ARMArchVersion(V4)
, ARMFPUType(None)
, UseNEONForSinglePrecisionFP(UseNEONFP)
+ , UseVMLx(UseVMLxInstructions)
, IsThumb(isT)
, ThumbMode(Thumb1)
, PostRAScheduler(false)