[PATCH] D90439: [ARM] Treat memcpy/memset/memmove as call instructions for low overhead loops

Dave Green via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Oct 29 16:41:37 PDT 2020


dmgreen created this revision.
dmgreen added reviewers: samtebbs, SjoerdMeijer, simon_tatham, ostannard, efriedma.
Herald added subscribers: danielkiss, hiraditya, kristof.beyls.
Herald added a project: LLVM.
dmgreen requested review of this revision.

If an instruction will be lowered to a call there is no advantage of using a low overhead loop as the LR register will need to be spilled and reloaded around the call, and the low overhead will end up being reverted. This teaches our hardware loop lowering that these memory intrinsics will be calls under certain situations.


https://reviews.llvm.org/D90439

Files:
  llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
  llvm/lib/Target/ARM/ARMTargetTransformInfo.h
  llvm/test/CodeGen/Thumb2/LowOverheadLoops/memcall.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D90439.301786.patch
Type: text/x-patch
Size: 8740 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20201029/e765ee4c/attachment.bin>


More information about the llvm-commits mailing list