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)
commitd9bd22b2c48e0f7b8916447c74167b44556fc7c3
tree4d44c2627b417263b14ff1f8919587c2711282b9
parentb08ae7affb16f9f2efb8b9d77f2e581cb7d5b21f
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

llvm-svn: 241928
llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp
llvm/test/CodeGen/ARM/ldrd.ll