This is an archive of the discontinued LLVM Phabricator instance.

[mips] Add itineraries for ext and ins instructions.
ClosedPublic

Authored by Kai on Jan 27 2015, 12:08 PM.

Details

Summary

Currently, there are no itineraries defined for ext and ins instructions.
This patch adds these itineraries.

My question is if this is the right way because there are several styles used.
There are:

  • General itineraries like IIAlu
  • Itineraries for individual instructions: II_ADDI, II_ADDI, II_ADDU
  • Itineraries for an instruction's family: II_C_CC_D

Diff Detail

Repository
rL LLVM

Event Timeline

Kai updated this revision to Diff 18841.Jan 27 2015, 12:08 PM
Kai retitled this revision from to [mips] Add itineraries for ext and ins instructions..
Kai updated this object.
Kai edited the test plan for this revision. (Show Details)
Kai added a reviewer: dsanders.
Kai set the repository for this revision to rL LLVM.
Kai added a subscriber: Unknown Object (MLST).
dsanders accepted this revision.Feb 12 2015, 3:38 AM
dsanders edited edge metadata.

LGTM.

My question is if this is the right way because there are several styles used.
There are:

  • General itineraries like IIAlu
  • Itineraries for individual instructions: II_ADDI, II_ADDI, II_ADDU
  • Itineraries for an instruction's family: II_C_CC_D

We were phasing out the general itineraries since they didn't map very well to the P5600. I'd nearly finished this migration at the point I was interrupted by more pressing correctness issues and new instruction sets like MIPS32r6. I should be getting back to the P5600 scheduler soon. The individual II_*'s are preferred but there's a couple groups (like II_C_CC_D) where it was difficult and unnecessary to be more precise.

This revision is now accepted and ready to land.Feb 12 2015, 3:38 AM
Kai added a comment.Mar 17 2015, 11:26 PM

Thanks for the explanation. I work already on an Octeon scheduler.

Kai added a comment.Mar 17 2015, 11:27 PM

Thanks for the explanation. I work already on an Octeon scheduler.

This revision was automatically updated to reflect the committed changes.