Paul, thanks!

Best regards,
Vladimir Ivanov

On 2/21/14 2:11 PM, Paul Sandoz wrote:
>
> On Feb 20, 2014, at 6:57 PM, Vladimir Ivanov <vladimir.x.iva...@oracle.com> 
> wrote:
>
>> Paul,
>>
>> Thanks for the feedback! See my answers inline.
>>
>> Updated webrev:
>> http://cr.openjdk.java.net/~vlivanov/8027827/final/webrev.01/
>>
>> I finally figured out how to make caching work. This webrev contains these 
>> changes.
>>
>
> +1
>
>
>> I changed LF representation a bit and added 2 auxiliary method handles - 
>> argument boxing and wrapping into Object[] and result unboxing. These 
>> operations depend on actual type and can't be shared among arbitrary 
>> combinators with the same basic type. They are used only during LF 
>> interpretation and are completely ignored in compiled LFs.
>>
>
>
>>> src/share/classes/java/lang/invoke/MethodHandleImpl.java
>>>
>>>   634         // t_{i+2}:L=ValueConversions.unbox(t_{i+1}) OR 
>>> ValueConversions.identity(t_{i+1})
>>>   635         if (type.returnType().isPrimitive()) {
>>>   636             names[UNBOX_RESULT] = new 
>>> Name(ValueConversions.unbox(type.returnType()),
>>>   637                                               names[TRY_CATCH]);
>>>   638         } else {
>>>   639             names[UNBOX_RESULT] = new 
>>> Name(ValueConversions.identity(),
>>>   640                                               names[TRY_CATCH]);
>>>   641         }
>>>
>>>
>>> You could create the form without the identity transform for the 
>>> non-primitive case?
>>>
>>>    final int UNBOX_RESULT = type.returnType().isPrimitive() ? nameCursor++ 
>>> : 0;
>>> ...
>>>
>>>    if (UNBOX_RESULT > 0) { ...
>>>        names[UNBOX_RESULT] = new 
>>> Name(ValueConversions.unbox(type.returnType()), names[TRY_CATCH]);
>>>    }
>> I can, but it complicates matching and compiling the pattern in 
>> InvokerBytecodeGenerator. I decided to keep the shape uniform for all cases.
>>
>
> Ah, yes i see now, the code is simpler being kept uniform.
>
> Paul.
>
_______________________________________________
mlvm-dev mailing list
mlvm-dev@openjdk.java.net
http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev

Reply via email to