[PATCH] D59215: [ARM][ParallelDSP] Enable multiple uses of loads

Sam Parker via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 11 09:14:30 PDT 2019


samparker created this revision.
samparker added reviewers: SjoerdMeijer, dmgreen, efriedma.
Herald added subscribers: kristof.beyls, javed.absar.

When choosing whether a pair of loads can be combined into a single wide load, we check that the load only has a sext user and that sext also only has one user. But this can prevent the transformation in the cases when parallel macs use the same loaded data multiple times.

To enable this, we need to fix up any other uses after creating the wide load: generating a trunc and a shift + trunc pair to recreate the narrow values. We also need to keep a record of which loads have already been widened.


https://reviews.llvm.org/D59215

Files:
  lib/Target/ARM/ARMParallelDSP.cpp
  test/CodeGen/ARM/ParallelDSP/multi-use-loads.ll
  test/CodeGen/ARM/ParallelDSP/remove-duplicate-loads.ll
  test/CodeGen/ARM/ParallelDSP/smlad0.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D59215.190103.patch
Type: text/x-patch
Size: 30375 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190311/cd31ef39/attachment.bin>


More information about the llvm-commits mailing list