[AArch64] Improve load/store optimizer to handle LDUR + LDR.
authorChad Rosier <mcrosier@codeaurora.org>
Thu, 4 Feb 2016 14:42:55 +0000 (14:42 +0000)
committerChad Rosier <mcrosier@codeaurora.org>
Thu, 4 Feb 2016 14:42:55 +0000 (14:42 +0000)
commitfeec2aeb0feb51027dfb14f81da10a8df779ba15
tree55ce5a5ccce008d50251186c8e288d20f6d41c3c
parent7d7336047955af4547d298f0b8a2f2aac6a30894
[AArch64] Improve load/store optimizer to handle LDUR + LDR.

This patch allows the mixing of scaled and unscaled load/stores to form
load/store pairs.

PR24465
http://reviews.llvm.org/D12116
Many thanks to Ahmed and Michael for fixes and code review.

This is a reapplication of r246769, which was reverted in r246782 due to a
test-suite failure.  I'm unable to reproduce the issue at this time.

llvm-svn: 259790
llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp
llvm/test/CodeGen/AArch64/ldp-stp-scaled-unscaled-pairs.ll [new file with mode: 0644]