This change merges adjacent zero stores into a wider store.
For example :
strh wzr, [x0] strh wzr, [x0, #2]
becomes
str wzr, [x0]
This will fix PR25410.
Paths
| Differential D14514
[AArch64]Merge narrow zero stores to wider single store ClosedPublic Authored by junbuml on Nov 9 2015, 2:08 PM.
Details Summary This change merges adjacent zero stores into a wider store. strh wzr, [x0] strh wzr, [x0, #2] becomes str wzr, [x0] This will fix PR25410.
Diff Detail Event Timelinejunbuml updated this object. junbuml added a parent revision: D14183: [AArch64]Extend merging narrow loads into a wider load.Nov 9 2015, 2:08 PM t.p.northover added inline comments.
t.p.northover edited edge metadata. Comment ActionsOK, I think this is good then. Thanks!
This revision is now accepted and ready to land.Nov 10 2015, 1:26 PM
Revision Contents
Diff 40692 lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp
test/CodeGen/AArch64/arm64-ldr-merge.ll
test/CodeGen/AArch64/arm64-narrow-ldst-merge.ll
|
What happens here for sequences like
? It looks like you might try to produce "strh wzr, [x0, #1]" (using STRHHui) which is invalid. This also applies to the code recently added around line 537.