RFR (S): 8012972: Incremental Inlining should support scalar replaced object in debug info
Vladimir Kozlov
vladimir.kozlov at oracle.com
Tue Aug 20 18:22:26 PDT 2013
http://cr.openjdk.java.net/~kvn/8012972/webrev/
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.
Thanks,
Vladimir
More information about the hotspot-compiler-dev
mailing list