Hi John,

thank you for your review. Comments on your suggestions are inlined.

> Am 22.09.2016 um 20:04 schrieb John Rose <john.r.r...@oracle.com>:
> On Sep 22, 2016, at 12:23 AM, Michael Haupt <michael.ha...@oracle.com 
> <mailto:michael.ha...@oracle.com>> wrote:
>> The new webrev is at http://cr.openjdk.java.net/~mhaupt/8161211/webrev.01/ 
>> <http://cr.openjdk.java.net/~mhaupt/8161211/webrev.01/>; please review.
> 
> 
> Suggestion:  Filter all loop clause functions with ".asFixedArity" when you 
> wrap up the constant array.
> This will do two things:  1. double-check for nulls (which @Stable doesn't 
> like) and 2. allow you to
> omit all asFixedArity calls from the driver function (MHI.loop).  The 
> asFixedArity normalization could
> move into MethodHandles.java, in fact, since that's part of the advertised 
> semantics (hmm, right?).

The double-checking for nulls is not strictly required, as none of the handles 
in any of the loop clauses will be null at the point the call to 
MethodHandleImpl.makeLoop() is made. I still like the idea of moving these 
calls out of the driver and will apply it. I'm applying the same transformation 
to the tryFinally combinator.

> Also (this is a nit) consider commoning (binding a temp for) the three 
> expressions 'init[i]' in the driver.
> I noticed that while peeking at the asFixedArity calls.  The JIT will DTRT 
> here, but we might as well
> make its job a bit easier.  JITs enjoy little favors like that; they are less 
> likely to drop optimizations.

Agreed.

With the performance measurements showing no difference, I'm going to push with 
these modifications.

Best,

Michael

-- 

 <http://www.oracle.com/>
Dr. Michael Haupt | Principal Member of Technical Staff
Phone: +49 331 200 7277 | Fax: +49 331 200 7561
Oracle Java Platform Group | LangTools Team | Nashorn
Oracle Deutschland B.V. & Co. KG | Schiffbauergasse 14 | 14467 Potsdam, Germany

ORACLE Deutschland B.V. & Co. KG | Hauptverwaltung: Riesstraße 25, D-80992 
München
Registergericht: Amtsgericht München, HRA 95603

Komplementärin: ORACLE Deutschland Verwaltung B.V. | Hertogswetering 163/167, 
3543 AS Utrecht, Niederlande
Handelsregister der Handelskammer Midden-Nederland, Nr. 30143697
Geschäftsführer: Alexander van der Ven, Jan Schultheiss, Val Maher
 <http://www.oracle.com/commitment>     Oracle is committed to developing 
practices and products that help protect the environment

Reply via email to