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 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 Description: Message signed with

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 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 signed with OpenPGP using GP

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 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 vararg

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 wrote: Another update: http://cr.openjdk.java.net/~vlivanov/8050052//webrev.01/ Tentative diff: http://cr.openjdk.java.net/~vlivanov/8050052/webrev.diff.01-0

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 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) > * bindArgument(int pos, Basi

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 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 subclasses. > > Also, some clea

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 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, jdk/java/util/streams, nashorn,

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 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

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 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 MethodHandles. Intrinsic ID i

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 expres

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 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: * convertA

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

2014-07-16 Thread Vladimir Ivanov
Paul, thanks for review. 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 MethodHandles. Intrinsic ID is associated with a method handle usi

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 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 >> wrote: >> >>> http://cr.openjdk.java.net/~vlivanov/8050166/webrev.00/ >>> https://bugs.openjdk.java.net/browse/J

[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. MethodHandleImpl.makePa

[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: vlivan

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; i<100_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; i<100_000; i++) { >new LoopyCS().getTarget().invokeExact(1_000); > } In LoopyCS constructor you instantiates 3 new MethodHandles: >targ

Re: Loopy CallSite

2014-07-16 Thread Christian Thalinger
On Jul 16, 2014, at 11:40 AM, Remi Forax 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; i<100_000; i++) { >> >new LoopyCS().getTarget().invokeExact(1_000); >> > } >>