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).


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