RFR 8223229 [lworld] C1 crashes when calling final virtual methods with value arguments
Tobias Hartmann
tobias.hartmann at oracle.com
Thu May 2 08:00:23 UTC 2019
Hi Ioi,
On 02.05.19 08:06, Ioi Lam wrote:
> https://bugs.openjdk.java.net/browse/JDK-8223229
> http://cr.openjdk.java.net/~iklam/valhalla/8223229-c1-opt-virtual-call-scalarized-args.v01/
In sharedRuntime.cpp:1147, could you use caller->code()->is_compiled_by_c1() instead of doing a code
cache lookup?
Otherwise it looks good to me!
> 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?
Yes, it seems that we need an unverified value entry point that falls through to the VVEP:
UEP
VVEP (RO)
UVEP <- new
VVEP
VEP
I can implement this for C2, just file a bug when you have the C1 part ready.
If everything is implemented, we should think about a better naming scheme for these entry points
(John had some suggestions).
Thanks,
Tobias
More information about the valhalla-dev
mailing list