diff options
author | Philip Reames <listmail@philipreames.com> | 2016-01-14 23:58:18 +0000 |
---|---|---|
committer | Philip Reames <listmail@philipreames.com> | 2016-01-14 23:58:18 +0000 |
commit | 95e363d0de54e10bf4bf7cc18d84b4998b5e9e78 (patch) | |
tree | dfc82690b7824abfa597c6729746e5570a7805f8 /llvm/docs/Statepoints.rst | |
parent | 00de8b5a1a7cc1fb422b755966be57593192d23d (diff) | |
download | bcm5719-llvm-95e363d0de54e10bf4bf7cc18d84b4998b5e9e78.tar.gz bcm5719-llvm-95e363d0de54e10bf4bf7cc18d84b4998b5e9e78.zip |
[docs] Update Statepoint docs to clarify format for recent changes
llvm-svn: 257843
Diffstat (limited to 'llvm/docs/Statepoints.rst')
-rw-r--r-- | llvm/docs/Statepoints.rst | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/llvm/docs/Statepoints.rst b/llvm/docs/Statepoints.rst index 442b1c269c4..ea9bf0ea701 100644 --- a/llvm/docs/Statepoints.rst +++ b/llvm/docs/Statepoints.rst @@ -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, |