[PATCH] D84027: [ARM][MVE] Teach MVEGatherScatterLowering to merge successive getelementpointers

Anna Welker via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 17 07:57:06 PDT 2020


anwel created this revision.
anwel added reviewers: dmgreen, SjoerdMeijer, samparker.
anwel added a project: LLVM.
Herald added subscribers: llvm-commits, danielkiss, hiraditya, kristof.beyls.

A patch following up on the introduction of pointer induction variables in https://reviews.llvm.org/D81267, adding a preprocessing step to the address optimisation in the MVEGatherScatterLowering pass. If the getelementpointer that is the address is itself using a getelementpointer as base, they will be merged into one by summing up the offsets, after checking that this will not cause an overflow (this can be repeated recursively).

This is necessary as the pass can currently only handle (i.e., will produce MVE gather/scatters for) incoming addresses with a scalar base pointer.


https://reviews.llvm.org/D84027

Files:
  llvm/lib/Target/ARM/MVEGatherScatterLowering.cpp
  llvm/test/CodeGen/Thumb2/mve-gather-ind16-scaled.ll
  llvm/test/CodeGen/Thumb2/mve-gather-ind32-scaled.ll
  llvm/test/CodeGen/Thumb2/mve-gather-ind8-unscaled.ll
  llvm/test/CodeGen/Thumb2/mve-gather-scatter-ptr-address.ll
  llvm/test/CodeGen/Thumb2/mve-scatter-ind16-scaled.ll
  llvm/test/CodeGen/Thumb2/mve-scatter-ind32-scaled.ll
  llvm/test/CodeGen/Thumb2/mve-scatter-ind8-unscaled.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D84027.278769.patch
Type: text/x-patch
Size: 122120 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200717/1631edfe/attachment-0001.bin>


More information about the llvm-commits mailing list