[PATCH] D44098: [ARM] Relax condition for PerformSHLSimplify

Sam Parker via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Mar 7 06:23:15 PST 2018


samparker updated this revision to Diff 137376.
samparker added a comment.

Hi John,

I've changed the function to check the immediate to handle the subtle differences between Thumb and Arm immediate encoding. I also tried exiting early when there's a shifted user and the immediate is already valid, but this produced worse code for almost all my new tests. The problem is that a mov is still required because the bin op is using an immediate and a shifted operand. This is particularly worse for Thumb where code size increase is greater as well.


https://reviews.llvm.org/D44098

Files:
  lib/Target/ARM/ARMISelLowering.cpp
  test/CodeGen/ARM/load-combine-big-endian.ll
  test/CodeGen/ARM/load-combine.ll
  test/CodeGen/ARM/unfold-shifts.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D44098.137376.patch
Type: text/x-patch
Size: 17108 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180307/6b550a1b/attachment.bin>


More information about the llvm-commits mailing list