This is an archive of the discontinued LLVM Phabricator instance.

[AArch64] Set the latency of A55 stores to 1
ClosedPublic

Authored by dmgreen on Jul 7 2021, 2:50 AM.

Details

Summary

This sets the latency of stores to 1 in the Cortex-A55 scheduling model, to better match the values given in the software optimization guide.

The latency of a store in normal llvm scheduling does not appear to have a lot of uses. If the store has no output's then the latency is somewhat meaningless (and pre/post increment update operands use the WriteAdr write for those operands instead). The one place it does alter things is the latency between a store and the end of the scheduling region, which can in turn have an effect on the critical path length. As a result a latency of 1 is more correct and offers ever-so-slightly better scheduling of instructions near the end of the block.

They are marked as RetireOOO to keep the llvm-mca from introducing stalls where non would exist.

Diff Detail

Event Timeline

dmgreen created this revision.Jul 7 2021, 2:50 AM
dmgreen requested review of this revision.Jul 7 2021, 2:50 AM
Herald added a project: Restricted Project. · View Herald TranscriptJul 7 2021, 2:50 AM
NickGuy accepted this revision.Jul 9 2021, 7:34 AM

No issues that I can see, LGTM

This revision is now accepted and ready to land.Jul 9 2021, 7:34 AM
This revision was landed with ongoing or failed builds.Jul 12 2021, 5:41 AM
This revision was automatically updated to reflect the committed changes.