[12] RFR(S): 8209833: C2 compilation fails with "assert(ex_map->jvms()->same_calls_as(_exceptions->jvms())) failed: all collected exceptions must come from the same place"

Tobias Hartmann tobias.hartmann at oracle.com
Thu Aug 23 06:40:25 UTC 2018


Thanks Vladimir.

Best regards,
Tobias

On 22.08.2018 18:20, Vladimir Kozlov wrote:
> Looks good.
> 
> Thanks,
> Vladimir
> 
> On 8/22/18 2:50 AM, Tobias Hartmann wrote:
>> Hi,
>>
>> please review the following patch:
>> https://bugs.openjdk.java.net/browse/JDK-8209833
>> http://cr.openjdk.java.net/~thartmann/8209833/webrev.00/
>>
>> I found this while working on the clone intrinsic for value types. The problem is that
>> LibraryCallKit::inline_native_clone() sets the reexecute bit [1] and with bimorphic inlining it can
>> happen that the exception state of the fast path has reexecute == true and the slow path has
>> reexecute = false. We then fail when merging the exception states.
>>
>> The same issue was fixed by JDK-8033626 [2] but the fix was not complete because the slow call also
>> creates an exception state. We should deoptimize if the slow call throws an exception.
>>
>> Thanks,
>> Tobias
>>
>> [1]
>> http://hg.openjdk.java.net/jdk/jdk/file/2d7bff7367c6/src/hotspot/share/opto/library_call.cpp#l4240
>> [2] https://bugs.openjdk.java.net/browse/JDK-8033626
>>


More information about the hotspot-compiler-dev mailing list