RFR(S): 8219335: "failed: unexpected type" assert failure in ConnectionGraph::split_unique_types() with unsafe accesses

Vladimir Kozlov vladimir.kozlov at oracle.com
Wed Feb 20 18:21:30 UTC 2019



On 2/20/19 1:44 AM, Tobias Hartmann wrote:
> 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