This is an archive of the discontinued LLVM Phabricator instance.

[mips][microMIPS] Use swm32/lwm32 instructions in function prologue/epilogue
Needs RevisionPublic

Authored by zoran.jovanovic on Nov 12 2014, 9:19 AM.

Diff Detail

Event Timeline

zoran.jovanovic retitled this revision from to [mips][microMIPS] Use swm32/lwm32 instructions in function prologue/epilogue.
zoran.jovanovic updated this object.
zoran.jovanovic edited the test plan for this revision. (Show Details)
zoran.jovanovic added a reviewer: sstankovic.

Fixed issues with test cases.

zoran.jovanovic added a subscriber: Unknown Object (MLST).

Fixed issue with non sequential register allocation order.

Fixed issues. Rebased.

sstankovic accepted this revision.Feb 25 2015, 10:51 PM
sstankovic edited edge metadata.
This revision is now accepted and ready to land.Feb 25 2015, 10:51 PM

Looks like patch was not committed.

petarj edited edge metadata.

This patch needs to be double-checked, tested again and hopefully committed.

sdardis requested changes to this revision.Jun 8 2018, 6:17 AM

Please rebase this.

lib/Target/Mips/MicroMipsInstrInfo.td
474

This requires a target flag like hasForbiddenSlot, isUnsafeInDelaySlot to mark these instructions as being unsafe in delay slots. The delay slot filler should recognise that flag. That flag should also be added to lwp and swp.

That should be done as a separate patch.

482

As above.

test/CodeGen/Mips/micromips-swm-lwm.ll
2

Use the update_llc_checks.py script to generate the tests.

10

Remove the #0 from this function definition.

28

Here too.

This revision now requires changes to proceed.Jun 8 2018, 6:17 AM
atanasyan added inline comments.Jul 12 2018, 1:43 PM
lib/Target/Mips/MipsSEFrameLowering.cpp
716

Use early-return:

if (!STI.inMicroMipsMode())
    return false;
740

Replace SWM by LWM.