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

changpeng fang - Sun Microsystems - Santa Clara United States Changpeng.Fang at Sun.COM
Tue Aug 4 16:28:31 PDT 2009


http://cr.openjdk.java.net/~cfang/6868269/webrev.00/

Done! I modified the implementation of reexecute bit for Object.clone 
and Arrays.copyOf intrinsics,
and kept the assertion in JVMState::same_calls_as. This means we should 
expect only one reexecute
state for a particular bci.

Thanks,

Changpeng


On 08/04/09 10:56, Tom Rodriguez wrote:
> 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