summaryrefslogtreecommitdiffstats
path: root/llvm/utils/TableGen/ARMDecoderEmitter.cpp
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
commit651eaa02b8fc82c616840e28014085a19108a643 (patch)
tree581f74590aab765a2950bf219f9a7f0d0ef5e499 /llvm/utils/TableGen/ARMDecoderEmitter.cpp
parentaae0862172b9cee88b7cbe61f6f35fa5b5adbc3c (diff)
downloadbcm5719-llvm-651eaa02b8fc82c616840e28014085a19108a643.tar.gz
bcm5719-llvm-651eaa02b8fc82c616840e28014085a19108a643.zip
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. llvm-svn: 121730
Diffstat (limited to 'llvm/utils/TableGen/ARMDecoderEmitter.cpp')
-rw-r--r--llvm/utils/TableGen/ARMDecoderEmitter.cpp5
1 files changed, 0 insertions, 5 deletions
diff --git a/llvm/utils/TableGen/ARMDecoderEmitter.cpp b/llvm/utils/TableGen/ARMDecoderEmitter.cpp
index c4e78f358ec..10e507f603b 100644
--- a/llvm/utils/TableGen/ARMDecoderEmitter.cpp
+++ b/llvm/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.
OpenPOWER on IntegriCloud