[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"

Vladimir Kozlov vladimir.kozlov at oracle.com
Wed Aug 22 16:20:32 UTC 2018


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