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