ARM: Thumb2 LDRD/STRD supports independent input/output regs
authorMatthias Braun <matze@braunis.de>
Wed, 3 Jun 2015 16:30:24 +0000 (16:30 +0000)
committerMatthias Braun <matze@braunis.de>
Wed, 3 Jun 2015 16:30:24 +0000 (16:30 +0000)
commit125c9f5f7b81c78ef19ffd85afeb3f389eb8bc59
tree1a71eb4f749c878ad89d659986e8abf8eb7a3d0a
parent2f249bab071f9e0d08cf66da613c2744f232b34b
ARM: Thumb2 LDRD/STRD supports independent input/output regs

The existing code would unnecessarily break LDRD/STRD apart with
non-adjacent registers, on thumb2 this is not necessary.

Ideally on thumb2 we shouldn't match for ldrd/strd pre-regalloc anymore
as there is not reason to set register hints anymore, changing that is
something for a future patch however.

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

Recommiting after the revert in r238821, the buildbot still failed with
the patch removed so there seems to be another reason for the breakage.

llvm-svn: 238935
llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp
llvm/test/CodeGen/ARM/atomic-ops-v8.ll
llvm/test/CodeGen/ARM/ldrd.ll
llvm/test/CodeGen/Thumb2/float-ops.ll