This is an archive of the discontinued LLVM Phabricator instance.

[Statepoints] Let patchable statepoints have a symbolic call target.
ClosedPublic

Authored by sanjoy on Jul 27 2015, 7:43 PM.

Details

Summary

As added initially, statepoints required their call targets to be a
constant pointer null if `numPatchBytes` was non-zero. This turns out
to be a ergonomic problem, since there is no way to mark patchable
statepoints as calling a readable symbolic value.

This change remove the restriction of requiring `null` call targets
for patchable statepoints, and changes PlaceSafepoints to maintain the
symbolic call target through its transformation.

Diff Detail

Event Timeline

sanjoy updated this revision to Diff 30775.Jul 27 2015, 7:43 PM
sanjoy retitled this revision from to [Statepoints] Let patchable statepoints have a symbolic call target..
sanjoy updated this object.
sanjoy added reviewers: reames, swaroop.sridhar.
sanjoy added a subscriber: llvm-commits.
swaroop.sridhar accepted this revision.Jul 28 2015, 1:00 PM
swaroop.sridhar edited edge metadata.
This revision is now accepted and ready to land.Jul 28 2015, 1:00 PM
sanjoy updated this revision to Diff 30875.Jul 28 2015, 4:32 PM
sanjoy edited edge metadata.
  • clarify doc
This revision was automatically updated to reflect the committed changes.
test/Transforms/PlaceSafepoints/patchable-statepoints.ll