Re: RFR(L): 8161211: better inlining support for loop bytecode intrinsics

2016-09-23 Thread Vladimir Ivanov
Looks even better :-) Reviewed. Best regards, Vladimir Ivanov On 9/22/16 10:23 AM, Michael Haupt wrote: Hi John, thanks for your review, and thanks Vladimir! I've had another go at the implementation to use a dedicated loop clause holder class with a stable array; performance is roughly on p

Re: RFR(L): 8161211: better inlining support for loop bytecode intrinsics

2016-09-23 Thread Michael Haupt
Hi John, thank you for your review. Comments on your suggestions are inlined. > Am 22.09.2016 um 20:04 schrieb John Rose : > On Sep 22, 2016, at 12:23 AM, Michael Haupt > wrote: >> The new webrev is at http://cr.openjdk.java.net/~mhaupt/8161211/webrev.01/ >>

Re: RFR(L): 8161211: better inlining support for loop bytecode intrinsics

2016-09-22 Thread John Rose
On Sep 22, 2016, at 12:23 AM, Michael Haupt wrote: > thanks for your review, and thanks Vladimir! I've had another go at the > implementation to use a dedicated loop clause holder class with a stable > array; performance is roughly on par with that of the BMHs-as-arrays approach > (see below).

Re: RFR(L): 8161211: better inlining support for loop bytecode intrinsics

2016-09-22 Thread Michael Haupt
Hi John, thanks for your review, and thanks Vladimir! I've had another go at the implementation to use a dedicated loop clause holder class with a stable array; performance is roughly on par with that of the BMHs-as-arrays approach (see below). The new webrev is at http://cr.openjdk.java.net/~

Re: RFR(L): 8161211: better inlining support for loop bytecode intrinsics

2016-09-20 Thread John Rose
There should also be an assert in the new LF constructor, which ensures that the two arguments are congruent. Better yet, just supply one argument (the speciesData), and derive the MT. These new LFs are pretty confusing, and it's best to nail down unused degrees of freedom. — John P.S. I wo

Re: RFR(L): 8161211: better inlining support for loop bytecode intrinsics

2016-09-20 Thread Vladimir Ivanov
Looks good. src/java.base/share/classes/java/lang/invoke/LambdaFormEditor.java: +LambdaForm bmhArrayForm(MethodType type, BoundMethodHandle.SpeciesData speciesData) { +int size = type.parameterCount(); +Transform key = Transform.of(Transform.BMH_AS_ARRAY, size); +Lam

RFR(L): 8161211: better inlining support for loop bytecode intrinsics

2016-09-20 Thread Michael Haupt
Dear all, please review this change. Bug: https://bugs.openjdk.java.net/browse/JDK-8161211 Webrev: http://cr.openjdk.java.net/~mhaupt/8161211/webrev.00/ The method handle loop combinators introduced with JEP 274 were originally not intrinsified, leading to poor performance as compared to a pure-