[AArch64] Enable merging of adjacent zero stores for all subtargets.
authorChad Rosier <mcrosier@codeaurora.org>
Fri, 11 Nov 2016 14:10:12 +0000 (14:10 +0000)
committerChad Rosier <mcrosier@codeaurora.org>
Fri, 11 Nov 2016 14:10:12 +0000 (14:10 +0000)
commit10c7aaaee981ffe8d6f30bc999595e94ba303297
tree0fa822dab16f3b40ef49d624338538316363bf82
parentce0aba74c1d6d611b0ec6766cbba0475cdcb3a80
[AArch64] Enable merging of adjacent zero stores for all subtargets.

This optimization merges adjacent zero stores into a wider store.

e.g.,

strh wzr, [x0]
strh wzr, [x0, #2]
; becomes
str wzr, [x0]

e.g.,

str wzr, [x0]
str wzr, [x0, #4]
; becomes
str xzr, [x0]

Previously, this was only enabled for Kryo and Cortex-A57.

Differential Revision: https://reviews.llvm.org/D26396

llvm-svn: 286592
llvm/lib/Target/AArch64/AArch64.td
llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp
llvm/lib/Target/AArch64/AArch64Subtarget.h
llvm/test/CodeGen/AArch64/arm64-narrow-st-merge.ll