Re: [9] RFR (M): 8050053: Improve caching of different invokers

2014-07-16 Thread Paul Sandoz
On Jul 15, 2014, at 3:48 PM, Vladimir Ivanov vladimir.x.iva...@oracle.com wrote: Update: http://cr.openjdk.java.net/~vlivanov/8050053/webrev.01 Diff: http://cr.openjdk.java.net/~vlivanov/8050053/webrev.diff.00-01/ Got rid of varargs spread invokers. +1 Paul. signature.asc

Re: [9] RFR (M): 8050052: Small cleanups in java.lang.invoke code

2014-07-16 Thread Paul Sandoz
On Jul 15, 2014, at 3:42 PM, Vladimir Ivanov vladimir.x.iva...@oracle.com wrote: Another update: http://cr.openjdk.java.net/~vlivanov/8050052//webrev.01/ Tentative diff: http://cr.openjdk.java.net/~vlivanov/8050052/webrev.diff.01-02/ +1 Paul. signature.asc Description: Message

Re: [9] RFR (M): 8050053: Improve caching of different invokers

2014-07-16 Thread Vladimir Ivanov
Thank you, Paul. Best regards, Vladimir Ivanov On 7/16/14 11:28 AM, Paul Sandoz wrote: On Jul 15, 2014, at 3:48 PM, Vladimir Ivanov vladimir.x.iva...@oracle.com wrote: Update: http://cr.openjdk.java.net/~vlivanov/8050053/webrev.01 Diff:

Re: [9] RFR (M): 8050052: Small cleanups in java.lang.invoke code

2014-07-16 Thread Vladimir Ivanov
Thank you, Paul. Best regards, Vladimir Ivanov On 7/16/14 11:35 AM, Paul Sandoz wrote: On Jul 15, 2014, at 3:42 PM, Vladimir Ivanov vladimir.x.iva...@oracle.com wrote: Another update: http://cr.openjdk.java.net/~vlivanov/8050052//webrev.01/ Tentative diff:

Re: [9] RFR (M): 8050166: Get rid of some package-private methods on arguments in j.l.i.MethodHandle

2014-07-16 Thread Paul Sandoz
On Jul 14, 2014, at 4:04 PM, Vladimir Ivanov vladimir.x.iva...@oracle.com wrote: http://cr.openjdk.java.net/~vlivanov/8050166/webrev.00/ https://bugs.openjdk.java.net/browse/JDK-8050166 Get rid of the following methods in j.l.i.MethodHandle: * convertArguments(MethodType newType) *

Re: [9] RFR (S) 8050173: Generalize BMH.copyWith API to all method handles

2014-07-16 Thread Paul Sandoz
On Jul 14, 2014, at 4:37 PM, Vladimir Ivanov vladimir.x.iva...@oracle.com wrote: http://cr.openjdk.java.net/~vlivanov/8050173/webrev.00/ https://bugs.openjdk.java.net/browse/JDK-8050173 Added j.l.i.MethodHandle.copyWith(MethodType, LambdaForm) and provided implementation for all

Re: [9] RFR (XS): 8050174: Support overriding of isInvokeSpecial flag in WrappedMember

2014-07-16 Thread Paul Sandoz
On Jul 14, 2014, at 4:47 PM, Vladimir Ivanov vladimir.x.iva...@oracle.com wrote: http://cr.openjdk.java.net/~vlivanov/8050174/webrev.00/ https://bugs.openjdk.java.net/browse/JDK-8050174 Support overriding of isInvokeSpecial flag in WrappedMember. Testing: jdk/java/lang/invoke,

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

2014-07-16 Thread Paul Sandoz
On Jul 14, 2014, at 5:17 PM, Vladimir Ivanov vladimir.x.iva...@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

Re: [9] RFR (M): 8050200: Make LambdaForm intrinsics detection more robust

2014-07-16 Thread Paul Sandoz
On Jul 14, 2014, at 7:10 PM, Vladimir Ivanov vladimir.x.iva...@oracle.com wrote: http://cr.openjdk.java.net/~vlivanov/8050200/webrev.00/ https://bugs.openjdk.java.net/browse/JDK-8050200 Replace pattern matching sequences of LambdaForm names during compilation with explicit marks on

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

2014-07-16 Thread Vladimir Ivanov
Thank you, Paul. Looks good. Juste one comment. BoundMethodHandle The following fields can be made final: 132 private static int FIELD_COUNT_THRESHOLD = 12; // largest convenient BMH field count 133 private static int FORM_EXPRESSION_THRESHOLD = 24; // largest convenient BMH

Re: [9] RFR (M): 8050166: Get rid of some package-private methods on arguments in j.l.i.MethodHandle

2014-07-16 Thread Vladimir Ivanov
Paul, thanks for review. On 7/16/14 12:34 PM, Paul Sandoz wrote: On Jul 14, 2014, at 4:04 PM, Vladimir Ivanov vladimir.x.iva...@oracle.com wrote: http://cr.openjdk.java.net/~vlivanov/8050166/webrev.00/ https://bugs.openjdk.java.net/browse/JDK-8050166 Get rid of the following methods in

Re: [9] RFR (M): 8050166: Get rid of some package-private methods on arguments in j.l.i.MethodHandle

2014-07-16 Thread Paul Sandoz
On Jul 16, 2014, at 12:53 PM, Vladimir Ivanov vladimir.x.iva...@oracle.com wrote: Paul, thanks for review. On 7/16/14 12:34 PM, Paul Sandoz wrote: On Jul 14, 2014, at 4:04 PM, Vladimir Ivanov vladimir.x.iva...@oracle.com wrote: http://cr.openjdk.java.net/~vlivanov/8050166/webrev.00/

[9] RFR (M): 8050877: Improve code for pairwise argument conversions and value boxing/unboxing

2014-07-16 Thread Vladimir Ivanov
http://cr.openjdk.java.net/~vlivanov/8050877/webrev.00/ https://bugs.openjdk.java.net/browse/JDK-8050877 Improved MethodHandleImpl.makePairwiseConvert ValueConversions.unbox and small cleanups in related code. Also, improved method handle caching in ValueConversions.

[9] RFR (M): 8050884: Intrinsify ValueConversions.identity() functions

2014-07-16 Thread Vladimir Ivanov
http://cr.openjdk.java.net/~vlivanov/8050884/webrev.00/ https://bugs.openjdk.java.net/browse/JDK-8050884 Replace ValueConversions.identity() functions with intrinsics. Testing: jdk/java/lang/invoke, jdk/java/util/streams, nashorn, octane w/ -ea -esa and COMPILE_THRESHOLD={0,30}. Reviewed-by:

[9] RFR (S): 8050887: Intrinsify constants for default values

2014-07-16 Thread Vladimir Ivanov
http://cr.openjdk.java.net/~vlivanov/8050887/webrev.00 https://bugs.openjdk.java.net/browse/JDK-8050887 Intrinsify MethodHandles.constant() for default values. Testing: jdk/java/lang/invoke, jdk/java/util/streams, nashorn, octane w/ -ea -esa and COMPILE_THRESHOLD={0,30}. Reviewed-by:

Re: Loopy CallSite

2014-07-16 Thread Vladimir Ivanov
Remi, The problem is that for every iteration you create new call site for(int i=0; i100_000; i++) { new LoopyCS().getTarget().invokeExact(1_000); } In LoopyCS constructor you instantiates 3 new MethodHandles: target = MethodHandles.filterArguments(target, 0, FOO);

Re: Loopy CallSite

2014-07-16 Thread Remi Forax
On 07/16/2014 07:38 PM, Vladimir Ivanov wrote: Remi, The problem is that for every iteration you create new call site for(int i=0; i100_000; i++) { new LoopyCS().getTarget().invokeExact(1_000); } In LoopyCS constructor you instantiates 3 new MethodHandles: target =

Re: Loopy CallSite

2014-07-16 Thread Christian Thalinger
On Jul 16, 2014, at 11:40 AM, Remi Forax fo...@univ-mlv.fr wrote: On 07/16/2014 07:38 PM, Vladimir Ivanov wrote: Remi, The problem is that for every iteration you create new call site for(int i=0; i100_000; i++) { new LoopyCS().getTarget().invokeExact(1_000); }