This is an archive of the discontinued LLVM Phabricator instance.

[PowerPC] Mark P9 scheduling model complete
ClosedPublic

Authored by stefanp on Jul 20 2017, 12:49 PM.

Details

Summary

This patch just adds the missing information to the P9 scheduling model to allow the model to be marked as complete.
By default, pseudo-instructions are marked as not having scheduling information. This should be OK since the instructions are fully covered, so the pseudo's will expand to instructions that have scheduling info.

The model may not be exactly correct for every instruction - that will be improved over a series of patches to come.

The idea is to keep the scheduling model complete so all instructions are scheduled in the machine scheduler. The subsequent steps will be:

  • Verification of the correctness of the model using utils/schedcover.py and processor documentation
  • Tuning of the scheduler model, heuristics, mutations, etc. based on feedback from performance tracing tools
  • Addition of currently un-modeled aspects of the processor as needed (write-back, forwarding, load/store address mapping on the CPU, etc.)
  • Addition of any currently un-modeled hazards

Diff Detail

Repository
rL LLVM

Event Timeline

nemanjai created this revision.Jul 20 2017, 12:49 PM
stefanp commandeered this revision.Sep 20 2017, 12:50 PM
stefanp edited reviewers, added: nemanjai; removed: stefanp.
stefanp edited edge metadata.

Taking control of this revision to add the changes after verifying the P9 model.

stefanp updated this revision to Diff 116057.Sep 20 2017, 12:52 PM

Finished verifying the model.
Made changes to various instructions with respect to latency and the number of dispatch resources required for each one.

echristo edited edge metadata.Sep 20 2017, 1:14 PM

High level comment: The documentation on the processor in the model here is amazingly sparse (or rather non-existent). It'd be great if for every itinerary you describe the particular pipeline aspects it's covering and how it is associated to the overall CPU.

stefanp updated this revision to Diff 116221.Sep 21 2017, 10:50 AM

Added some documentation about the P9 model used.
Please let me know if more information is required.

stefanp updated this revision to Diff 116224.Sep 21 2017, 10:57 AM

Fix typo.

stefanp updated this revision to Diff 116225.Sep 21 2017, 10:58 AM

Fix typo.

echristo accepted this revision.Sep 21 2017, 6:13 PM

Much better. Thanks for the descriptions!

-eric

This revision is now accepted and ready to land.Sep 21 2017, 6:13 PM
stefanp closed this revision.Sep 22 2017, 1:52 PM

Was committed with this comment:

[PowerPC] Mark P9 scheduling model complete

This patch just adds the missing information to the P9 scheduling model to allow
the model to be marked as complete.

The model has been verified against P9 documentation. The model was verified
with utils/schedcover.py.

Differential Revision: https://reviews.llvm.org/D35695

For some reason this was not auto-closed.
I'm closing this now manually.