RFR(S): 8219335: "failed: unexpected type" assert failure in ConnectionGraph::split_unique_types() with unsafe accesses
Tobias Hartmann
tobias.hartmann at oracle.com
Wed Feb 20 09:44:12 UTC 2019
Hi Roland,
looks good to me. Please add a brief comment explaining the bailout (no new webrev required).
Thanks,
Tobias
On 19.02.19 10:51, Roland Westrelin wrote:
>
> http://cr.openjdk.java.net/~roland/8219335/webrev.00/
>
> This is triggered by forcing incremental inlining and using -Xcomp so
> the compiler has no profile data. In the test case, the unsafe access is
> compiled before inlining of other calls happens. The compiler can't tell
> whether the unsafe access is on heap or not and casts the address to raw
> memory with CheckCastPP. After incremental inlining, the CheckCastPP
> input is the CheckCastPP of a newly allocated object. The assert fires
> because the CheckCastPP to raw memory is not expected by EA. I proposed
> simply detecting this rare case and making the allocation not scalar
> replaceable.
>
> Roland.
>
More information about the hotspot-compiler-dev
mailing list