RFR (S): 8012972: Incremental Inlining should support scalar replaced object in debug info

Vladimir Kozlov vladimir.kozlov at oracle.com
Fri Aug 23 10:43:45 PDT 2013


I did additional testing with expanded incremental inlining and have to 
add additional changes in callnode.cpp:
  - the assert(scl_size() == 0) is not correct anymore;
  - and I have to shift input edges preserving their order when 
inserting or removing monitors debug info because they precede scalar 
fields info.

http://cr.openjdk.java.net/~kvn/8012972/webrev.01/

And I did full testing again.

Thanks,
Vladimir

On 8/20/13 6:22 PM, Vladimir Kozlov wrote:
> 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