summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorBob Wilson <bob.wilson@apple.com>2010-12-13 23:02:37 +0000
committerBob Wilson <bob.wilson@apple.com>2010-12-13 23:02:37 +0000
commit4711d5cda37fc4a756f83fc1090e85ec9302c52f (patch)
tree99f985c78022ed2096100e554e66f39e1d104ad1 /utils
parent0e6d540d1745ea00042ca6d56d6e5929e7c8e5ca (diff)
downloadllvm-4711d5cda37fc4a756f83fc1090e85ec9302c52f.tar.gz
llvm-4711d5cda37fc4a756f83fc1090e85ec9302c52f.tar.bz2
llvm-4711d5cda37fc4a756f83fc1090e85ec9302c52f.tar.xz
Remove the rest of the *_sfp Neon instruction patterns.
Use the same COPY_TO_REGCLASS approach as for the 2-register *_sfp instructions. This change made a big difference in the code generated for the CodeGen/Thumb2/cross-rc-coalescing-2.ll test: The coalescer is still doing a fine job, but some instructions that were previously moved outside the loop are not moved now. It's using fewer VFP registers now, which is generally a good thing, so I think the estimates for register pressure changed and that affected the LICM behavior. Since that isn't obviously wrong, I've just changed the test file. This completes the work for Radar 8711675. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121730 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils')
-rw-r--r--utils/TableGen/ARMDecoderEmitter.cpp5
1 files changed, 0 insertions, 5 deletions
diff --git a/utils/TableGen/ARMDecoderEmitter.cpp b/utils/TableGen/ARMDecoderEmitter.cpp
index c4e78f358e..10e507f603 100644
--- a/utils/TableGen/ARMDecoderEmitter.cpp
+++ b/utils/TableGen/ARMDecoderEmitter.cpp
@@ -1613,11 +1613,6 @@ ARMDEBackend::populateInstruction(const CodeGenInstruction &CGI,
Name == "VNEGScc")
return false;
- // Ignore the *_sfp instructions when decoding. They are used by the
- // compiler to implement scalar floating point operations using vector
- // operations in order to work around some performance issues.
- if (Name.find("_sfp") != std::string::npos) return false;
-
// LDMIA_RET is a special case of LDM (Load Multiple) where the registers
// loaded include the PC, causing a branch to a loaded address. Ignore
// the LDMIA_RET instruction when decoding.