mirror of
https://github.com/RPCSX/llvm.git
synced 2025-02-09 14:03:09 +00:00
[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:
parent
1215450590
commit
112e094b77
@ -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,
|
||||
|
Loading…
x
Reference in New Issue
Block a user