review (S) for 6972540: sun/nio/ch/SocketChannelImpl compilation crashed when executing CompileTheWorld

Tom Rodriguez tom.rodriguez at oracle.com
Wed Sep 22 17:15:40 PDT 2010


I just realized why this doesn't work.  T_LONG is two local slots but T_ADDRESS is only one so to deopt properly you need a single slot 64 bit value which is what T_ADDRESS ends up representing.  So I'm sticking with the fix as reviewed.  Thanks!

tom

On Sep 22, 2010, at 3:51 PM, Tom Rodriguez wrote:

> Actually I may retract this.  I think there might be a simpler way to handle this by changing the original fix for 6932496.  We used to just treat T_ADDRESS as T_INT but that didn't allow deopt to work correctly because T_ADDRESS is pointer sized because of the use of astore.  It seems like we should just be able to treat it as T_LONG in 64 bit and have it all work out fine.  I'd rather not introduce T_ADDRESS into LIR_Opr just for this.
> 
> tom
> 
> On Sep 22, 2010, at 3:20 PM, Vladimir Kozlov wrote:
> 
>> I did not know that it doesn't effect code generation.
>> Then it is good to push.
>> 
>> Thanks,
>> Vladimir
>> 
>> Tom Rodriguez wrote:
>>> On Sep 22, 2010, at 2:46 PM, Vladimir Kozlov wrote:
>>>> Tom,
>>>> 
>>>> Changes looks good.
>>>> Did you test 64-bit C1 which could be affected by these changes?
>>> No i didn't but it's really about abstract typing in the LIR and doesn't effect code generation.  I can run CTW if you want.
>>> tom
>>>> Thanks,
>>>> Vladimir
>>>> 
>>>> Tom Rodriguez wrote:
>>>>> http://cr.openjdk.java.net/~never/6972540
>>>>> 6972540: sun/nio/ch/SocketChannelImpl compilation crashed when executing CompileTheWorld
>>>>> Reviewed-by:
>>>>> The fix 6932496 exposed T_ADDRESS as a constant so that deopt with
>>>>> jsr's could work properly.  Since it didn't fully expose T_ADDRESS as
>>>>> a support lir type it create type mismatches that showed up in some
>>>>> complex cases.  The fix is support T_ADDRESS in the LIR directly.
>>>>> Tested with full CTW.
> 



More information about the hotspot-compiler-dev mailing list