This is an archive of the discontinued LLVM Phabricator instance.

[mips] MIPSR6 Instruction itineraries
ClosedPublic

Authored by sdardis on Feb 12 2016, 6:24 AM.

Details

Summary

Defines instruction itineraries for common MIPSR6 instructions.

Diff Detail

Repository
rL LLVM

Event Timeline

sdardis updated this revision to Diff 47786.Feb 12 2016, 6:24 AM
sdardis retitled this revision from to [mips] MIPSR6 Instruction itineraries.
sdardis updated this object.
sdardis added a reviewer: vkalintiris.
sdardis added a subscriber: llvm-commits.
vkalintiris accepted this revision.Feb 25 2016, 8:22 AM
vkalintiris edited edge metadata.

LGTM with few small changes, the most important being the addition of the entries missing from the MipsGenericItineraries table.

lib/Target/Mips/Mips32r6InstrInfo.td
248 ↗(On Diff #47786)

Can we move the InstrItinClass parameter at the of the parameter list, in order to have the instruction's operands next to each other? Similarly for the 2-3 cases below.

lib/Target/Mips/MipsSchedule.td
39 ↗(On Diff #47786)

We don't have an entry for this in the MipsGenericItineraries table. Similarly for II_BCCC below.

test/CodeGen/Mips/divrem.ll
158 ↗(On Diff #47786)

I think that we have to use -DAG here as the order of the div/mod instructions doesn't require a strict order. Similarly for the cases below.

test/CodeGen/Mips/llvm-ir/mul.ll
172–175 ↗(On Diff #47786)

We should use the -DAG suffix for these. Also, can you rename the temporaries in order to have an increasing numbering. Similarly, for 64R6 below.

This revision is now accepted and ready to land.Feb 25 2016, 8:22 AM
sdardis updated this revision to Diff 49964.Mar 7 2016, 7:51 AM
sdardis edited edge metadata.
sdardis marked 3 inline comments as done.

Addressed comments, can you commit on my behalf? Thanks.

This revision was automatically updated to reflect the committed changes.