[DOC] Remove too strong restriction for ‘llvm.experimental.gc.statepoint’ Intrinsic
authorSerguei Katkov <serguei.katkov@azul.com>
Tue, 31 Mar 2020 05:07:11 +0000 (12:07 +0700)
committerSerguei Katkov <serguei.katkov@azul.com>
Thu, 2 Apr 2020 03:56:42 +0000 (10:56 +0700)
commit2ede5dccffa5f62d3f13eca603bc3ad0e73b7514
tree6e674743ed23c4f03658c2190fcd399553f694ad
parent7f5fe30a150e7e87d3fbe4da4ab0e76ec38b40b9
[DOC] Remove too strong restriction for ‘llvm.experimental.gc.statepoint’ Intrinsic

The requirement for deopt parameter to be in gc parameter if it can
be modified by GC is very strong and difficult to follow.

The key example of why this can't work:
%p1 = bitcast i8* %p to i8*
statepoint [gc = (%p1)], [deopt = (%p1)]

The optimizer is allowed to replace either use (or both) of %p1 with %p.
If it updates only one of the two (entirely legal), the two sets do not overlap.

So this change removes the strong wording.

Reviewers: reames, dantrushin
Reviewed By: reames
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D77122
llvm/docs/Statepoints.rst