[PATCH] D75847: [DAGCombine] Skip PostInc combine with later users

Sam Parker via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 9 06:57:32 PDT 2020


samparker created this revision.
samparker added reviewers: dmgreen, RKSimon, spatel, craig.topper.
Herald added subscribers: danielkiss, hiraditya, kristof.beyls.
Herald added a project: LLVM.

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. This naively assumes that the later user can perform the post-inc.
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.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D75847

Files:
  llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
  llvm/test/CodeGen/Thumb/frame-access.ll
  llvm/test/CodeGen/Thumb2/LowOverheadLoops/cond-vector-reduce-mve-codegen.ll
  llvm/test/CodeGen/Thumb2/LowOverheadLoops/extending-loads.ll
  llvm/test/CodeGen/Thumb2/mve-postinc-lsr.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D75847.249083.patch
Type: text/x-patch
Size: 9169 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200309/27703b46/attachment.bin>


More information about the llvm-commits mailing list