This is an archive of the discontinued LLVM Phabricator instance.

[ARM] Add machine scheduler for Cortex-R52
ClosedPublic

Authored by javed.absar on Nov 10 2016, 5:53 AM.

Details

Summary

This patch adds the Sched Machine Model for Cortex-R52.

Details of the pipeline and descriptions are in comments
in file ARMScheduleR52.td included in this patch.

Diff Detail

Event Timeline

javed.absar retitled this revision from to [ARM] Add machine scheduler for Cortex-R52.
javed.absar updated this object.
javed.absar added reviewers: rengolin, jmolloy.
javed.absar added a subscriber: llvm-commits.
rengolin edited edge metadata.Nov 14 2016, 4:42 AM

LGTM.

Is this model "complete"? Ie. Are all the selectable instructions represented in some way? If so, see if you can enable CompleteModel = 1; in the TD file.

Thanks Renato.
Regarding setting CompleteModel to 1, there are some instructions which are not applicable for Cortex-R52. Also, even though as you can see, the model I constructed is quite detailed, there are some instructions that I decided to leave out so as to not make the model unnecessarily too lengthy.
Best Regards
Javed

rengolin accepted this revision.Nov 14 2016, 2:51 PM
rengolin edited edge metadata.

That's ok. LGTM. Thanks!

This revision is now accepted and ready to land.Nov 14 2016, 2:51 PM

If the instructions that are not relevant to the R52 have associated predicates, you can use "let UnsupportedFeatures = [..]", part of SchedMachineModel to have the compiler time checks disabled for them when you have CompleteModel = 1. See rL273551.

This revision was automatically updated to reflect the committed changes.

Thanks Simon, for the UnsupportedFeatures suggestion.

I will put in a patch later if setting UnsupportedFeatures allows me to set CompleteModel=1. I see that it requires one to specify, nonetheless, the scheduling information for the instructions that are supported but not considered vital to carry scheduling information.
Thanks and Best Regards,
Javed