RFR (S): 8012972: Incremental Inlining should support scalar replaced object in debug info
vladimir.kozlov at oracle.com
Wed Aug 21 10:28:00 PDT 2013
On 8/21/13 10:06 AM, Christian Thalinger wrote:
> Looks good. -- Chris
> On Aug 20, 2013, at 6:22 PM, Vladimir Kozlov <vladimir.kozlov at oracle.com> wrote:
>> We need incremental inlining after EA but it does not work with SafePointScalarObject nodes in debug info. SafePointScalarObjectNode::_first_index is input edge's index in safepoint node where start input edges which point to scalarized object's fields. With incremental inlining debuginfo (jvms) edges can change because of inlining and _first_index will be incorrect. To update _first_index in all places where we modify debug info is too complex (I tried).
>> The solution is to store in _first_index not absolute index but an index relative to the last (youngest) jvms->_scloff value (which is already updated during debug info updates). Note, that scalarized object fields edges are the last input edges after all regular debug info edges. So they start at sfpt->jvms()->scloff() edge.
>> Tested with jtreg tests, ctw, jprt, also jtreg tests with -XX:+DeoptimizeALot flag.
More information about the hotspot-compiler-dev