This is an archive of the discontinued LLVM Phabricator instance.

Remove deopt and gc transition arguments from gc.statepoint intrinsic
ClosedPublic

Authored by reames on May 31 2020, 11:18 AM.

Details

Summary

In a recent series of changes, I've introduced support for using the respective operand bundle kinds on the statepoint. At the moment, code supports either/or, but there's no need to keep the old support around. For the moment, I am simply changing the specification and verifier to require zero length argument sets in the intrinsic.

The intrinsic itself is experimental. Given that, there's no forward serialization needed. The in tree uses and generation have already been updated to use the new operand bundle based forms, the only folks broken by the change will be those with frontends generating statepoints directly and the updates should be easy.

Why not go ahead and just remove the arguments entirely? Well, I plan to. But while working on this I've found that almost all of the arguments to the statepoint can be expressed via operand bundles or attributes. Given that, I'm planning a radical simplification of the arguments and figured I'd do one update not several small ones.

While I'm posting this for review now, I do not plan to land for about 2 weeks. I want all the previous changes to have plenty of time to work through downstream test cycles before I make the transition hard to reverse. At the moment, I'd only need to revert one patch and I want to keep it that way for a bit longer.

Diff Detail

Event Timeline

reames created this revision.May 31 2020, 11:18 AM
Herald added a project: Restricted Project. · View Herald TranscriptMay 31 2020, 11:18 AM
This revision is now accepted and ready to land.Jun 1 2020, 11:37 PM