[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