[PATCH] D71837: [ARM][MVE] Tail Predicate IsSafeToRemove

Sam Parker via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 8 03:30:33 PST 2020


samparker updated this revision to Diff 236787.
samparker added a comment.

A couple of changes to RDA:

- It how has getLiveInUses which collects all the users of a live-in register.
- It now has getAllUses, which collects locals users and users in the successor blocks (using getLiveInUses).

IsSafeToRemove can now use getAllUses to calculate whether an instruction can be removed and it allows us to span an arbitary CFG, including loops. This means we can now use IsSafeToRemove to remove the redundant iteration count calculate when we're using tail predication.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D71837/new/

https://reviews.llvm.org/D71837

Files:
  llvm/include/llvm/CodeGen/ReachingDefAnalysis.h
  llvm/lib/CodeGen/ReachingDefAnalysis.cpp
  llvm/lib/Target/ARM/ARMBaseInstrInfo.h
  llvm/lib/Target/ARM/ARMInstrThumb2.td
  llvm/lib/Target/ARM/ARMLowOverheadLoops.cpp
  llvm/lib/Target/ARM/Utils/ARMBaseInfo.h
  llvm/test/CodeGen/Thumb2/LowOverheadLoops/cond-mov.mir
  llvm/test/CodeGen/Thumb2/LowOverheadLoops/dont-remove-loop-update.mir
  llvm/test/CodeGen/Thumb2/LowOverheadLoops/dont-remove-loop-update2.mir
  llvm/test/CodeGen/Thumb2/LowOverheadLoops/dont-remove-loop-update3.mir
  llvm/test/CodeGen/Thumb2/LowOverheadLoops/end-positive-offset.mir
  llvm/test/CodeGen/Thumb2/LowOverheadLoops/fast-fp-loops.ll
  llvm/test/CodeGen/Thumb2/LowOverheadLoops/incorrect-sub-16.mir
  llvm/test/CodeGen/Thumb2/LowOverheadLoops/incorrect-sub-32.mir
  llvm/test/CodeGen/Thumb2/LowOverheadLoops/incorrect-sub-8.mir
  llvm/test/CodeGen/Thumb2/LowOverheadLoops/mov-after-dls.mir
  llvm/test/CodeGen/Thumb2/LowOverheadLoops/mov-lr-terminator.mir
  llvm/test/CodeGen/Thumb2/LowOverheadLoops/move-def-before-start.mir
  llvm/test/CodeGen/Thumb2/LowOverheadLoops/move-start-after-def.mir
  llvm/test/CodeGen/Thumb2/LowOverheadLoops/mve-tail-data-types.ll
  llvm/test/CodeGen/Thumb2/LowOverheadLoops/remove-elem-moves.mir
  llvm/test/CodeGen/Thumb2/LowOverheadLoops/revert-while.mir
  llvm/test/CodeGen/Thumb2/LowOverheadLoops/safe-def-no-mov.mir
  llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-subi3.mir
  llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-subri.mir
  llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-subri12.mir
  llvm/test/CodeGen/Thumb2/LowOverheadLoops/while.mir
  llvm/test/CodeGen/Thumb2/LowOverheadLoops/wlstp.mir

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D71837.236787.patch
Type: text/x-patch
Size: 118672 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200108/cde93c38/attachment-0001.bin>


More information about the llvm-commits mailing list