RFR: 8166840: Synthetic bridge constructor in ArrayList$Itr blocks inlining

Ivan Gerasimov ivan.gerasimov at oracle.com
Wed Sep 28 16:00:15 UTC 2016


Hi Claes!

I can handle the backport.

With kind regards,
Ivan


On 28.09.2016 17:37, Claes Redestad wrote:
> I dealt with this in isolation deliberately to ease backporting, but I 
> don't have the 8u committer rights to do it myself.
>
> /Claes
>
> On 2016-09-28 16:27, Vitaly Davidovich wrote:
>> Thanks Claes - this is an annoying one!
>>
>> Will it be backported to 8?
>>
>> On Wednesday, September 28, 2016, Claes Redestad 
>> <claes.redestad at oracle.com <mailto:claes.redestad at oracle.com>> wrote:
>>
>>     Thanks for the quick reviews!
>>
>>     /Claes
>>
>>     On 2016-09-28 14:14, Remi Forax wrote:
>>
>>         yes,
>>         thumb up.
>>
>>         Rémi
>>
>>
>>         On September 28, 2016 1:51:18 PM GMT+02:00, Michael Haupt
>>         <michael.haupt at oracle.com> wrote:
>>
>>             Hi Claes,
>>
>>             yes please. Thumbs up. :-)
>>
>>             Best,
>>
>>             Michael
>>
>>                 Am 28.09.2016 um 13:48 schrieb Claes Redestad
>>
>>             <claes.redestad at oracle.com>:
>>
>>                 Hi,
>>
>>                 as discussed recently on hotspot-compiler-dev[1],
>>                 having a private
>>
>>             class with no default constructor can lead to C2 failing
>>             to inline, due
>>             to the synthetic bridge constructor using a dummy argument
>>             of an
>>             uninitialized class. This is really a problem in C2, as
>>             well as
>>             something which could ultimately be resolved by nestmates...
>>
>>                 However, there is an easy workaround in adding an empty
>>
>>             package-private constructor. In the most recently found
>>             case - a
>>             microbenchmark stressing MethodHandles.iteratedLoop -
>>             adding this to
>>             ArrayList$Itr lead to a 2.5-3x speedup.
>>
>>                 This is me asking nicely to do a quick-fix for this in
>>
>>             java.util.ArrayList$Itr now:
>>
>>                 Bug: https://bugs.openjdk.java.net/browse/JDK-8166840
>> <https://bugs.openjdk.java.net/browse/JDK-8166840>
>>                 Webrev:
>> http://cr.openjdk.java.net/~redestad/8166840/webrev.01/
>> <http://cr.openjdk.java.net/%7Eredestad/8166840/webrev.01/>
>>
>>                 Thanks!
>>
>>                 /Claes
>>
>>                 [1]
>>
>> http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2016-September/024407.html
>> <http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2016-September/024407.html>
>>
>>             --
>>             <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
>>             <http://www.oracle.com/commitment>> Oracle is
>>             committed to developing
>>             practices and products that help protect the environment
>>
>>
>>
>>
>> -- 
>> Sent from my phone
>
>



More information about the core-libs-dev mailing list