Request for reviews (XXS): 6868269 CompileTheWorld assertion failure introduced by the reexecute bit implementation

Tom Rodriguez Thomas.Rodriguez at Sun.COM
Tue Aug 4 10:56:15 PDT 2009


That seems cleaner to me.

tom

On Aug 4, 2009, at 10:17 AM, Vladimir Kozlov wrote:

> So after discussion with Changpeng I now understand what happened.
> The path which don't have reexecute state is uncommon trap
> in null_check_receiver() at the beginning of inline_native_clone()
> because it is not in the PreserveReexecuteState scope.
> So the other solution of this bug is including null_check_receiver()
> into the PreserveReexecuteState scope.
>
> Vladimir
>
> Vladimir Kozlov wrote:
>> Good.
>> Vladimir
>> changpeng fang - Sun Microsystems - Santa Clara United States wrote:
>>> http://cr.openjdk.java.net/~cfang/6868269/webrev.00/
>>>
>>> Problem: For inline_native_clone, there are two exceptions with  
>>> different reexecute states.
>>> This caused the assertion on JVMState::same_calls_as
>>>
>>> Solution: JVMState::same_calls_as was designed to verify the same  
>>> method/bci pairs. The current
>>> implementation of reexecute logic does not require the same method/ 
>>> bci to have a single reexecute
>>> state, i.e. the implementer could change the reexecute state  
>>> during the parsing of a bci.
>>>
>>> So the solution is simply remove the following line in  
>>> JVMState::same_calls_as:
>>>
>>> -     if (p->_reexecute != q->_reexecute)  return false;
>>>
>>>
>>>
>>> Tests: JPRT, CompileTheWorld!
>>>
>>>
>>>
>>> Thanks,
>>>
>>>
>>> Changpeng
>>>




More information about the hotspot-compiler-dev mailing list