[9] RFR (M): 8037209: Improvements and cleanups to bytecode assembly for lambda forms
Marcus Lagergren
marcus.lagergren at oracle.com
Fri Mar 14 13:25:47 UTC 2014
To get into this faster it would be nice if the new private fields (or the existing ones for that matter) had a comment describing what they were for, e.g.
+ private final byte[] localTypes;
+ private final Class<?>[] localClasses;
I can figure it out from the code, but it would have been a better starting point.
If that there are new apparent performance regressions caused by, e.g. profile pollusion from reusing existing method handles, I am fine with this. +1
/M
On 14 Mar 2014, at 14:17, Vladimir Ivanov <vladimir.x.ivanov at oracle.com> wrote:
> Paul,
>
> You are looking at the other fix (8037210).
> The correct link is [1].
>
> Best regards,
> Vladimir Ivanov
>
> [1] http://cr.openjdk.java.net/~vlivanov/8037209/webrev.00/src/share/classes/java/lang/invoke/MethodHandleImpl.java.sdiff.html
>
> On 3/14/14 4:38 PM, Paul Sandoz wrote:
>>
>> On Mar 14, 2014, at 1:19 PM, Vladimir Ivanov
>> <vladimir.x.ivanov at oracle.com <mailto:vladimir.x.ivanov at oracle.com>> wrote:
>>
>>> FYI, this change isn't limited to only bytecode assembly improvements,
>>> but also contains caching of lambda forms for setters/getter of typed
>>> arrays.
>>>
>>
>> Do you mean for MethodHandles.arrayElementGetter/Setter? If so i don't
>> see relevant changes in:
>>
>> http://cr.openjdk.java.net/~vlivanov/8037210/webrev.00/src/share/classes/java/lang/invoke/MethodHandleImpl.java.sdiff.html
>>
>> to say MethodHandleImpl.ArrayAccessor:
>>
>> static final class ArrayAccessor {
>> /// Support for array element access
>> static final HashMap<Class<?>, MethodHandle> GETTER_CACHE = new
>> HashMap<>(); // TODO use it
>> static final HashMap<Class<?>, MethodHandle> SETTER_CACHE = new
>> HashMap<>(); // TODO use it
>>
>> Paul.
>>
>>> If there are any objections, I can back the caching logic out and
>>> include it into one of upcoming changes.
>>>
>>> Best regards,
>>> Vladimir Ivanov
>>>
>>> On 3/14/14 3:45 PM, Vladimir Ivanov wrote:
>>>> http://cr.openjdk.java.net/~vlivanov/8037209/webrev.00/
>>>> https://bugs.openjdk.java.net/browse/JDK-8037209
>>>> 440 lines changed: 313 ins; 67 del; 60 mod
>>>>
>>>> This is a cleanup of JSR292 code to improve bytecode assembly code for
>>>> lambda forms.
>>>>
>>>> Contributed-by: john.r.rose at oracle.com
>>>>
>>>> Testing: jdk/java/{lang/invoke,util}, vm.mlvm.testlist, nashorn, jruby
>>>>
>>>> Configs: -ea -esa -Xverify:all -D...COMPILE_THRESHOLD={0,30}
>>>> -D...PROFILE_LEVEL={0,1}
>>>>
>>>> Best regards,
>>>> Vladimir Ivanov
>>>> _______________________________________________
>>>> mlvm-dev mailing list
>>>> mlvm-dev at openjdk.java.net
>>>> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
>>
>>
>>
>> _______________________________________________
>> mlvm-dev mailing list
>> mlvm-dev at openjdk.java.net
>> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/mlvm-dev/attachments/20140314/08e2261b/attachment.html>
More information about the mlvm-dev
mailing list