OSDN Git Service

[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)
commit0906927bc751624d560a93598def6d057e3c51c7
tree707923b090907242f13408900c94ad4ef000f211
parent45849f5ed4afbbff3843f4f21098bbc7ba1dd2a7
[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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@286592 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/AArch64/AArch64.td
lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp
lib/Target/AArch64/AArch64Subtarget.h
test/CodeGen/AArch64/arm64-narrow-st-merge.ll