[Statepoints] Let patchable statepoints have a symbolic call target.
authorSanjoy Das <sanjoy@playingwithpointers.com>
Tue, 28 Jul 2015 23:50:30 +0000 (23:50 +0000)
committerSanjoy Das <sanjoy@playingwithpointers.com>
Tue, 28 Jul 2015 23:50:30 +0000 (23:50 +0000)
commitcfe41f050c0c00a0840bd10907d9d22605e1c115
treeb6158110da342e086bceab1b358ac98d5487c21a
parentd8a1e542ab135453c0b3729d18f4fedba819d035
[Statepoints] Let patchable statepoints have a symbolic call target.

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 problem ergonomically, 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.

Reviewers: reames, swaroop.sridhar

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D11550

llvm-svn: 243502
llvm/docs/Statepoints.rst
llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp
llvm/lib/IR/Verifier.cpp
llvm/lib/Transforms/Scalar/PlaceSafepoints.cpp
llvm/test/Transforms/PlaceSafepoints/patchable-statepoints.ll
llvm/test/Verifier/invalid-patchable-statepoint.ll [deleted file]