[9] RFR (M): 8050057: Improve caching of MethodHandle reinvokers

Vladimir Ivanov vladimir.x.ivanov at oracle.com
Tue Jul 15 13:59:32 UTC 2014


Duncan,

Sorry for the confusion.

The patches apply in the following order:
   (1) 8037209: Improvements and cleanups to bytecode assembly for 
lambda forms
       http://cr.openjdk.java.net/~vlivanov/8037209

   (2) 8038261: JSR292: cache and reuse typed array accessors
       http://cr.openjdk.java.net/~vlivanov/8038261

   (3) 8049555: Move varargsArray from sun.invoke.util package to 
java.lang.invoke
       http://cr.openjdk.java.net/~vlivanov/8049555

   (4) 8050052: Small cleanups in java.lang.invoke code
       http://cr.openjdk.java.net/~vlivanov/8050052

   (5) 8050053: Improve caching of different invokers
       http://cr.openjdk.java.net/~vlivanov/8050053

   (6) 8050166: Get rid of some package-private methods on arguments in 
j.l.i.MethodHandle
       http://cr.openjdk.java.net/~vlivanov/8050166

   (7) 8050173: Add j.l.i.MethodHandle.copyWith(MethodType, LambdaForm)
       http://cr.openjdk.java.net/~vlivanov/8050173

   (8) 8050174: Support overriding of isInvokeSpecial flag in WrappedMember
       http://cr.openjdk.java.net/~vlivanov/8050174

   (9) 8050057: Improve caching of MethodHandle reinvokers
       http://cr.openjdk.java.net/~vlivanov/8050057

   (10) 8050200: Make LambdaForm intrinsics detection more robust
       http://cr.openjdk.java.net/~vlivanov/8050200

You can find the full mq patch set here:
http://cr.openjdk.java.net/~vlivanov/lfc/patches.latest/

Best regards,
Vladimir Ivanov

On 7/15/14 1:58 PM, MacGregor, Duncan (GE Energy Management) wrote:
> I may be slightly confused as to the order in which these patches are
> expected to be applied & merged but there seems to be some considerable
> interaction.
>
> Which patch set is meant to remove the final attribute from
> BoundMethodHandle.internalProperties()? I can¹t find it in any of the ones
> you¹ve submitted.
>
> Duncan.
>
> On 14/07/2014 16:17, "Vladimir Ivanov" <vladimir.x.ivanov at oracle.com>
> wrote:
>
>> http://cr.openjdk.java.net/~vlivanov/8050057/webrev.00/
>> https://bugs.openjdk.java.net/browse/JDK-8050057
>>
>> Cache MethodHandle reinvokers per basic type.
>> For BoundMethodHandles, rebinding is no-op unless underlying LF is too
>> complex (see BMH::tooComplex() for details).
>>
>> Also, introduced DelegatingMethodHandle whose invocation behavior is
>> determined by a target MethodHandle. The delegating MH itself can hold
>> extra "intentions" beyond the simple behavior.
>>
>> AsVarargsCollector and WrappedMember are made subclasses of
>> DelegatingMethodHandle. Also, SimpleMethodHandle extends
>> BoundMethodHandle now.
>>
>> Rebinding and delegation share same logic and LF shape, but have
>> different caches (LF_REBIND vs LF_DELEGATE). The only difference is
>> their name. They could be consolidated in the future.
>>
>> Testing: jdk/java/lang/invoke, jdk/java/util/streams, nashorn, octane w/
>> "-ea -esa" and COMPILE_THRESHOLD={0,30}.
>>
>> Reviewed-by: vlivanov, ?
>> Contributed-by: john.r.rose at oracle.com
>>
>> Thanks!
>>
>> 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
>


More information about the mlvm-dev mailing list