diff options
| author | Chad Rosier <mcrosier@codeaurora.org> | 2016-11-11 14:10:12 +0000 |
|---|---|---|
| committer | Chad Rosier <mcrosier@codeaurora.org> | 2016-11-11 14:10:12 +0000 |
| commit | 10c7aaaee981ffe8d6f30bc999595e94ba303297 (patch) | |
| tree | 0fa822dab16f3b40ef49d624338538316363bf82 /llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp | |
| parent | ce0aba74c1d6d611b0ec6766cbba0475cdcb3a80 (diff) | |
| download | bcm5719-llvm-10c7aaaee981ffe8d6f30bc999595e94ba303297.tar.gz bcm5719-llvm-10c7aaaee981ffe8d6f30bc999595e94ba303297.zip | |
[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
Diffstat (limited to 'llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp')
| -rw-r--r-- | llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp b/llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp index 3fe589fe7f3..fc5ed6e9c8c 100644 --- a/llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp +++ b/llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp @@ -1699,8 +1699,7 @@ bool AArch64LoadStoreOpt::runOnMachineFunction(MachineFunction &Fn) { UsedRegs.resize(TRI->getNumRegs()); bool Modified = false; - bool enableNarrowZeroStOpt = - Subtarget->mergeNarrowStores() && !Subtarget->requiresStrictAlign(); + bool enableNarrowZeroStOpt = !Subtarget->requiresStrictAlign(); for (auto &MBB : Fn) Modified |= optimizeBlock(MBB, enableNarrowZeroStOpt); |

