Hi Kris,

right, I don't intend to meander away on a micro-optimization spree and chase down every case where we're hurt by this corner case in the JDK and elsewhere (I did check that other core collection classes aren't affected, though ;-)), but to get this simple and possibly high-impact quick fix out of the way to unblock other work I'm doing, specifically JDK-8161210

I think everyone would be very happy to get the root issue in HotSpot fixed!

Thanks!

/Claes

On 2016-09-28 16:40, Krystal Mok wrote:
Hi Claes,

For this particular case, this JDK-side change looks good to me.

Let me post out the HotSpot version of the change and let you guys decide whether or not you guys want to take that version (which will take care of the ArrayList$1 case without the JDK-side change).

Thanks,
Kris

On Wed, Sep 28, 2016 at 4:48 AM, Claes Redestad <claes.redes...@oracle.com <mailto:claes.redes...@oracle.com>> wrote:

    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>



Reply via email to