This is an archive of the discontinued LLVM Phabricator instance.

[ARM64] Increases the Sched Model accuracy for Cortex-A53.
ClosedPublic

Authored by cestes on May 14 2014, 12:13 PM.

Details

Summary

Updates include:

  • More accurate ALU pipeline latencies.
  • Forwarding between the ALU, Integer MAC, and Integer Div pipes.
  • Proper Vector Load/Store latencies with hazards.
  • Single vs. double precision FP and Vector latencies and hazards.

Diff Detail

Event Timeline

cestes updated this revision to Diff 9398.May 14 2014, 12:13 PM
cestes retitled this revision from to [ARM64] Increases the Sched Model accuracy for Cortex-A53..
cestes updated this object.
cestes edited the test plan for this revision. (Show Details)
t.p.northover edited edge metadata.May 15 2014, 5:53 AM

Hi Dave,

I'll leave Andy to take a look at the schedulery bits, but I spotted a couple of more general things:

lib/Target/ARM64/ARM64InstrInfo.cpp
830–836

I think it would be good to be explicit about the instructions you intend to support here and make default llvm_unreachable.

The code will be longer, but if nothing else it means that anyone changing those instructions and grepping the source for significant locations will find this function.

lib/Target/ARM64/ARM64SchedA53.td
204–205

Commented out code.

cestes updated this revision to Diff 9448.May 15 2014, 10:23 AM
cestes edited edge metadata.

Explicitly checking Opcodes in the helper function(s) for shifting/extending.

cestes updated this revision to Diff 9449.May 15 2014, 10:26 AM

Removing commented out code.

Thanks, Tim.

atrick accepted this revision.May 15 2014, 9:20 PM
atrick edited edge metadata.

LGTM!

This revision is now accepted and ready to land.May 15 2014, 9:20 PM

Accidentally committed the patchset without the recommended revisions from Tim. Will submit with a subsequent patchset that adds these revisions and also resolves http://llvm.org/bugs/show_bug.cgi?id=19761.

cestes closed this revision.Jun 3 2014, 1:35 PM