[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