This is an archive of the discontinued LLVM Phabricator instance.

[ARM] Treat memcpy/memset/memmove as call instructions for low overhead loops
ClosedPublic

Authored by dmgreen on Oct 29 2020, 4:41 PM.

Details

Summary

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.

Diff Detail

Event Timeline

dmgreen created this revision.Oct 29 2020, 4:41 PM
dmgreen requested review of this revision.Oct 29 2020, 4:41 PM
samtebbs accepted this revision.Nov 2 2020, 5:00 AM

LGTM

This revision is now accepted and ready to land.Nov 2 2020, 5:00 AM