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

Ioi Lam ioi.lam at oracle.com
Tue Jun 18 04:15:43 UTC 2019


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