[docs] Update Statepoint docs to clarify format for recent changes

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257843 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Philip Reames 2016-01-14 23:58:18 +00:00
parent 1215450590
commit 112e094b77

View File

@ -566,15 +566,25 @@ Each statepoint generates the following Locations:
* Constant which describes number of following deopt *Locations* (not
operands)
* Variable number of Locations, one for each deopt parameter listed in
the IR statepoint (same number as described by previous Constant)
* Variable number of Locations pairs, one pair for each unique pointer
which needs relocated. The first Location in each pair describes
the base pointer for the object. The second is the derived pointer
actually being relocated. It is guaranteed that the base pointer
the IR statepoint (same number as described by previous Constant). At
the moment, only deopt parameters with a bitwidth of 64 bits or less
are supported. Values of a type larger than 64 bits can be specified
and reported only if a) the value is constant at the call site, and b)
the constant can be represented with less than 64 bits (assuming zero
extension to the original bitwidth).
* Variable number of Locations pairs, one pair for each pointer or vector
of pointers which needs relocated. The first Location in each pair
describes the base pointer for the object. The second is the derived
pointer actually being relocated. It is guaranteed that the base pointer
must also appear explicitly as a relocation pair if used after the
statepoint. There may be fewer pairs then gc parameters in the IR
statepoint. Each *unique* pair will occur at least once; duplicates
are possible.
are possible. Location pairs may either be of pointer size, in
which case they describe a single pointer being relocated and its
base, or a multiple of pointer size. In the later case, the Location
must be interpreted as describing a sequence of pointers and their
corresponding base pointers. Both Locations in a pair can be assumed
to be of the same size.
Note that the Locations used in each section may describe the same
physical location. e.g. A stack slot may appear as a deopt location,