[PATCH] D67539: [ARM][LowOverheadLoops] Add LR def safety check

Sam Parker via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Sep 13 02:03:52 PDT 2019


samparker created this revision.
samparker added reviewers: dmgreen, SjoerdMeijer.
Herald added subscribers: kristof.beyls, qcolombet.

Converting the *LoopStart pseudo instructions into DLS/WLS results in LR being defined. These instructions were inserted on the assumption that LR would already contain the loop counter because a mov is introduced during ISel as the the consumers in the loop can only use LR. That assumption proved wrong! So perform a safety check, finding an appropriate place to insert the DLS/WLS instructions or revert if this isn't possible.

Almost all the tests have changed because liveness tracking is enabled.


https://reviews.llvm.org/D67539

Files:
  lib/Target/ARM/ARMLowOverheadLoops.cpp
  test/CodeGen/Thumb2/LowOverheadLoops/cond-mov.mir
  test/CodeGen/Thumb2/LowOverheadLoops/end-positive-offset.mir
  test/CodeGen/Thumb2/LowOverheadLoops/mov-after-dls.mir
  test/CodeGen/Thumb2/LowOverheadLoops/revert-after-call.mir
  test/CodeGen/Thumb2/LowOverheadLoops/revert-after-read.mir
  test/CodeGen/Thumb2/LowOverheadLoops/revert-after-spill.mir
  test/CodeGen/Thumb2/LowOverheadLoops/revert-after-write.mir
  test/CodeGen/Thumb2/LowOverheadLoops/revert-non-loop.mir
  test/CodeGen/Thumb2/LowOverheadLoops/revert-while.mir
  test/CodeGen/Thumb2/LowOverheadLoops/safe-def-no-mov.mir
  test/CodeGen/Thumb2/LowOverheadLoops/unsafe-liveout.mir
  test/CodeGen/Thumb2/LowOverheadLoops/unsafe-use-after.mir
  test/CodeGen/Thumb2/LowOverheadLoops/while-negative-offset.mir
  test/CodeGen/Thumb2/LowOverheadLoops/while.mir

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D67539.220052.patch
Type: text/x-patch
Size: 63055 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190913/d35b8455/attachment.bin>


More information about the llvm-commits mailing list