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