When decided whether to generate a post-inc load/store, look at the other memory nodes that use the same base address and, if any proceed the current node, then don't do the combine.
The change only seems to be affecting the Arm backend, which I was surprised at, but it appears to fix a lot of our issues around MVE masked load/stores having to store a temporary address after an early post-increment on a shared base address.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Should we also be checking that this Use can use some addressing mode and fold the offset in? Not that it just is a memory operation?