RFR 8223229 [lworld] C1 crashes when calling final virtual methods with value arguments

Ioi Lam ioi.lam at oracle.com
Thu May 2 06:06:43 UTC 2019


https://bugs.openjdk.java.net/browse/JDK-8223229
http://cr.openjdk.java.net/~iklam/valhalla/8223229-c1-opt-virtual-call-scalarized-args.v01/

This is a small fix when C1 makes a call to a final virtual method with 
scalarized args. It should use the 
CompiledMethod::verified_value_entry_point().

I also removed CompiledMethod::is_c1(), which I added earlier without 
realizing that there's already CodeBlob::is_compiled_by_c1().

BTW, I am not quite sure what to do with the unverified entry point. It 
seems to me that we would need something like this:

void CompiledIC::compute_monomorphic_entry(...) {
  ...
  if (is_optimized) {
     entry = caller_is_c1 ?
               method_code->verified_value_entry_point() :
               method_code->verified_entry_point();
   } else {
     entry = caller_is_c1 ?
               method_code->unverified_value_entry_point() :
               method_code->entry_point();
     }
   }

Tobias, what do you think?

Thanks
- Ioi


More information about the valhalla-dev mailing list