This is an archive of the discontinued LLVM Phabricator instance.

In Thumb1, materialize a move between low registers as a `movs`, if CPSR isn't live.
ClosedPublic

Authored by tyomitch on Mar 6 2017, 5:56 AM.

Diff Detail

Repository
rL LLVM

Event Timeline

tyomitch created this revision.Mar 6 2017, 5:56 AM
jroelofs edited edge metadata.Mar 6 2017, 6:22 AM

LGTM with one small nit.

test/CodeGen/Thumb/copy_thumb.ll
27 ↗(On Diff #90685)

Please add a testcase for v4t and v5t that has CPSR live, so as to test the behavior in the other branch.

jroelofs accepted this revision.Mar 6 2017, 6:22 AM
This revision is now accepted and ready to land.Mar 6 2017, 6:22 AM
tyomitch updated this revision to Diff 90710.Mar 6 2017, 8:17 AM

Updated test/CodeGen/ARM/smml.ll to check the handling of live CPSR (and cleaned up the CHECKs in general)

awesome, thanks.

test/CodeGen/ARM/smml.ll
47 ↗(On Diff #90710)

Interesting that CPSR is only live here because the cmp happens before where we wanted the movs.

This revision was automatically updated to reflect the committed changes.