This is an archive of the discontinued LLVM Phabricator instance.

[mips] Fix c.<cc>.<fmt> instruction definition.
ClosedPublic

Authored by sdardis on Aug 3 2016, 5:22 AM.

Details

Summary

As part of this effort, remove MipsFCmp nodes and use tablegen
patterns rather than custom lowering through C++.

Unexpectedly, this improves codesize for microMIPS as previous floating
point setcc expansions would materialize 0 and 1 into GPRs before using
the relevant mov[tf].[sd] instruction. Now $zero is used directly.

Diff Detail

Event Timeline

sdardis updated this revision to Diff 66645.Aug 3 2016, 5:22 AM
sdardis retitled this revision from to [mips] Fix c.<cc>.<fmt> instruction definition..
sdardis updated this object.
sdardis added reviewers: dsanders, vkalintiris.
sdardis set the repository for this revision to rL LLVM.
sdardis added a subscriber: llvm-commits.

Zoran, can you take a look at this? Thanks.

zoran.jovanovic accepted this revision.Sep 7 2016, 7:33 AM
zoran.jovanovic edited edge metadata.

LGTM.

lib/Target/Mips/MicroMipsInstrFPU.td
168

Nit: I do believe that MMRel is not necessary here. It seems that instruction mapping is not used in this case.

211

Nit: Line exceeds 80 characters.

lib/Target/Mips/MipsCondMov.td
337

Nit: Line exceeds 80 characters.

lib/Target/Mips/MipsFastISel.cpp
712

Nit: Line exceeds 80 characters.

This revision is now accepted and ready to land.Sep 7 2016, 7:33 AM
sdardis closed this revision.Sep 9 2016, 2:42 AM

Thanks, committed rL281022.