This is an archive of the discontinued LLVM Phabricator instance.

[STATEPOINT] Force implicit-def for lpr register.
ClosedPublic

Authored by skatkov on Oct 4 2021, 9:49 PM.

Details

Summary

STATEPOINT instruction behavior is similar to call instruction.
In aarch64 BL instruction implicitly define lpr register, so
STATEPOINT instruction should do the same.
However STATEPOINT is a general instruction and I could not find
a way to override list of implicit defs for specific architecture.

So this patch post processes inserting STATEPOINT instruction by
adding implicit dead def for lpr.

Diff Detail

Event Timeline

skatkov created this revision.Oct 4 2021, 9:49 PM
skatkov requested review of this revision.Oct 4 2021, 9:49 PM
Herald added a project: Restricted Project. · View Herald TranscriptOct 4 2021, 9:49 PM
yrouban added a subscriber: yrouban.Oct 5 2021, 1:23 AM

Just to comment, it looks like this covers the same ground as https://reviews.llvm.org/D107301. As I said there, I don't really feel comfortable reviewing this, though it's starting to look like I might need to. Can you try to ping one of the aarch64 maintainers directly? They may have a good answer on how to approach this. I can't imagine statepoint is the only case to ever hit this.

reames accepted this revision.Nov 15 2021, 8:17 PM

LGTM

This is a bit outside my expertise so I'm not thrilled about being the sole reviewer for this, but given no one else has responded and this looks reasonable, I'm approving this to unblock progress.

This revision is now accepted and ready to land.Nov 15 2021, 8:17 PM
This revision was automatically updated to reflect the committed changes.