Request for reviews (M): 6833129 : specjvm98 fails with NullPointerException in the compiler with -XX:DeoptimizeALot
Thomas.Rodriguez at Sun.COM
Tue Jul 7 13:34:55 PDT 2009
>> I'd still like to see the restart decision made by continuation_for
>> turned into an assert. At least compare it with is_restart():
>>> pc = Interpreter::continuation_for(method(), bcp,
>>> callee_parameters, is_top_frame, use_next_mdp);
>>> + assert(is_restart() == !use_next_mdp, "");
>> If the assert fails, there may be a bug.
> Yes, it is a little confusion here. I know you want the restart
> decisions all made by the compilers (the right approach and we will
> definitely do it). You may have already noticed that the restart
> bits are all zero in the C1 interface, and for C2, only
> intrinsics Object.clone and Arrays.copyOf turned on their restart
> bits. As a result, this work just sets up the framework with the
> necessary logics to fix this bug.
Are you saying a separate fix will finish this? Why? This should all
be done at once and I think we want some strong asserts to guarantee
that reexecute is only used in the way we expect it to be.
>> -- John
More information about the hotspot-compiler-dev