ARMLoadStoreOpt: Merge subs/adds into LDRD/STRD; Factor out common code
authorMatthias Braun <matze@braunis.de>
Fri, 10 Jul 2015 18:37:33 +0000 (18:37 +0000)
committerMatthias Braun <matze@braunis.de>
Fri, 10 Jul 2015 18:37:33 +0000 (18:37 +0000)
commit74c23af0065edb138c8a90fc61fcd3b43857453c
treef67056665d87536b1151756f91a994fd1aa1117a
parentb0a2d8c5a51ebf0944fe271dc742550979e6877c
ARMLoadStoreOpt: Merge subs/adds into LDRD/STRD; Factor out common code

This commit factors out common code from MergeBaseUpdateLoadStore() and
MergeBaseUpdateLSMultiple() and introduces a new function
MergeBaseUpdateLSDouble() which merges adds/subs preceding/following a
strd/ldrd instruction into an strd/ldrd instruction with writeback where
possible.

Differential Revision: http://reviews.llvm.org/D10676

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@241928 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/ARM/ARMLoadStoreOptimizer.cpp
test/CodeGen/ARM/ldrd.ll