mirror of
https://github.com/RPCSX/llvm.git
synced 2025-02-13 17:20:28 +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
|
* Constant which describes number of following deopt *Locations* (not
|
||||||
operands)
|
operands)
|
||||||
* Variable number of Locations, one for each deopt parameter listed in
|
* Variable number of Locations, one for each deopt parameter listed in
|
||||||
the IR statepoint (same number as described by previous Constant)
|
the IR statepoint (same number as described by previous Constant). At
|
||||||
* Variable number of Locations pairs, one pair for each unique pointer
|
the moment, only deopt parameters with a bitwidth of 64 bits or less
|
||||||
which needs relocated. The first Location in each pair describes
|
are supported. Values of a type larger than 64 bits can be specified
|
||||||
the base pointer for the object. The second is the derived pointer
|
and reported only if a) the value is constant at the call site, and b)
|
||||||
actually being relocated. It is guaranteed that the base pointer
|
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
|
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. There may be fewer pairs then gc parameters in the IR
|
||||||
statepoint. Each *unique* pair will occur at least once; duplicates
|
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
|
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,
|
physical location. e.g. A stack slot may appear as a deopt location,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user