[PATCH] D64501: [ARM][LowOverheadLoops] Correct offset checking
Sam Parker via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Jul 10 08:19:34 PDT 2019
samparker created this revision.
samparker added reviewers: SjoerdMeijer, dmgreen.
Herald added subscribers: kristof.beyls, javed.absar.
This patch addresses a couple of problems:
1. The maximum supported offset of LE is -4094.
2. The offset of WLS also needs to be checked, this uses a maximum positive offset of 4094.
The use of BasicBlockUtils has been changed because the block offsets weren't being initialised, but isBBInRange checks both positive and negative offsets. ARMISelLowering has been tweaked because the test case presented another pattern that wasn't supported.
https://reviews.llvm.org/D64501
Files:
lib/Target/ARM/ARMBasicBlockInfo.h
lib/Target/ARM/ARMISelLowering.cpp
lib/Target/ARM/ARMLowOverheadLoops.cpp
test/CodeGen/Thumb2/LowOverheadLoops/end-positive-offset.mir
test/CodeGen/Thumb2/LowOverheadLoops/size-limit.mir
test/CodeGen/Thumb2/LowOverheadLoops/while-negative-offset.mir
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D64501.208970.patch
Type: text/x-patch
Size: 25609 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190710/eb654f26/attachment.bin>
More information about the llvm-commits
mailing list