[PATCH] D69945: [ARM][MVE] Tail predication conversion

Sam Parker via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Nov 7 06:00:16 PST 2019


samparker created this revision.
samparker added reviewers: SjoerdMeijer, dmgreen.
Herald added subscribers: hiraditya, kristof.beyls.
Herald added a project: LLVM.
samparker edited the summary of this revision.

This patch modifies ARMLowOverheadLoops to convert a predicated vector low-overhead loop into a tail-predicatd one. This is currently a very basic conversion, with the following restrictions:

- Operates only on single block loops.
- The loop can only contain a single vctp instruction.
- No other instructions can write to the vpr.
- We only allow a subset of the mve instructions in the loop.

Most of the changes are because the logic has been moved around. We now have a LowOverheadLoop object to hold, track and check the current state of the loop and its legality.


https://reviews.llvm.org/D69945

Files:
  llvm/lib/Target/ARM/ARMInstrMVE.td
  llvm/lib/Target/ARM/ARMLowOverheadLoops.cpp
  llvm/test/CodeGen/Thumb2/LowOverheadLoops/fast-fp-loops.ll
  llvm/test/CodeGen/Thumb2/LowOverheadLoops/mve-tail-data-types.ll
  llvm/test/CodeGen/Thumb2/LowOverheadLoops/vector-arith-codegen.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D69945.228225.patch
Type: text/x-patch
Size: 39800 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20191107/39024a66/attachment.bin>


More information about the llvm-commits mailing list