From 112e094b77fca6e21653a04c5766df189a86afa4 Mon Sep 17 00:00:00 2001 From: Philip Reames Date: Thu, 14 Jan 2016 23:58:18 +0000 Subject: [PATCH] [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 --- docs/Statepoints.rst | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/docs/Statepoints.rst b/docs/Statepoints.rst index 442b1c269c4..ea9bf0ea701 100644 --- a/docs/Statepoints.rst +++ b/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,