RFR 8226284 [lworld][c1] TestJNICalls.java fails with -DVerifyVM=true

Tobias Hartmann tobias.hartmann at oracle.com
Tue Jun 18 11:57:04 UTC 2019


Hi Ioi,

looks good to me.

Best regards,
Tobias

On 18.06.19 06:15, Ioi Lam wrote:
> https://bugs.openjdk.java.net/browse/JDK-8226284
> http://cr.openjdk.java.net/~iklam/valhalla/8226284-TestJNICalls-DVerifyVM.v01/
> 
> When C1-compiled code calls SharedRuntime::store_value_type_fields_to_buf,
> we may not know the type of the value object that's returned (e.g., when calling
> a method handle invoker [1]). As a result, it's not always possible for C1
> to generate an oopmap for this call site.
> 
> When TestJNICalls.java is executed with -DVerifyVM=true, the -XX:+VerifyStack flag
> is enabled. The stack verification code will assert when it fails to find an oopmap
> for the callsite.
> 
> The fix is to avoid stack verification when we are calling such a RuntimeStub. I also
> cleaned up the code a little by adding the virtual function CodeBlob::can_verify_stack().
> 
> 
> Thanks
> - Ioi
> 
> 
> ----
> [1]
> http://hg.openjdk.java.net/valhalla/valhalla/file/2315f0cda727/src/hotspot/share/c1/c1_LIRAssembler.cpp#l498
> 



More information about the valhalla-dev mailing list