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

Vitaly Davidovich vitalyd at gmail.com
Wed Sep 28 14:27:14 UTC 2016


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>
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
>>>> Webrev: http://cr.openjdk.java.net/~redestad/8166840/webrev.01/
>>>>
>>>> Thanks!
>>>>
>>>> /Claes
>>>>
>>>> [1]
>>>>
>>> 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>      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