[13] RFR (S): 8075052: Autobox elimination hinders loop unrolling

Vladimir Ivanov vladimir.x.ivanov at oracle.com
Sat Feb 2 03:19:18 UTC 2019


http://cr.openjdk.java.net/~vlivanov/8075052/webrev.00/
https://bugs.openjdk.java.net/browse/JDK-8075052

C2 doesn't optimize Integer.valueOf() as good as new Integer().
(There's a benchmark in the bug which demonstrates the difference.)

It is caused by the fact that though Integer.intValue() can see through 
the call, the call itself isn't optimized away if the result (box) is 
not used. It is unconditionally inlined and hinders consequent 
optimizations.

Proposed fix is to treat Integer.valueOf() as if it were a pure method 
and remove the call if its result (boxed value) isn't used.

Testing: hs-precheckin-comp, tier1-7 (in progress)

Best regards,
Vladimir Ivanov


More information about the hotspot-compiler-dev mailing list