This is an archive of the discontinued LLVM Phabricator instance.

[STATEPOINT LOWERING] Require spill of deopt value in case its type is not legal
ClosedPublic

Authored by skatkov on Feb 26 2021, 3:53 AM.

Details

Summary

If the type of the deopt operand has an illegal type and we want to use
register for it then it needs to be legalized.
This is not supported currently by legalizer and it is not actually clear how to
legalize this type of values.

Instead we just spill such values and use spill slot location in statepoint.

Originally tests were created by Philip Reames.

Diff Detail

Event Timeline

skatkov created this revision.Feb 26 2021, 3:53 AM
skatkov requested review of this revision.Feb 26 2021, 3:53 AM
Herald added a project: Restricted Project. · View Herald TranscriptFeb 26 2021, 3:53 AM
reames accepted this revision.Feb 26 2021, 9:38 AM

LGTM

Straight forward, and reasonable. We could probably do better for the constants, but likely not worth bothering with.

This revision is now accepted and ready to land.Feb 26 2021, 9:38 AM
This revision was landed with ongoing or failed builds.Feb 28 2021, 7:51 PM
This revision was automatically updated to reflect the committed changes.