[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