[9] RFR (XS): 8058825: EA: ConnectionGraph::split_unique_types does incorrect scalar replacement

Vladimir Ivanov vladimir.x.ivanov at oracle.com
Mon Sep 29 16:16:37 UTC 2014


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

In some cases an allocation of non-escaping object can be eliminated, 
but there's no precise type information to rematerialize it. In that 
case, if there's a need to rematerialize the object, an object of 
possibly wrong type will be instantiated.

The fix is to avoid allocation elimination, if the type isn't precise. 
The downside is that allocation isn't eliminated even if object 
rematerialization support isn't required. Filed JDK-8059378 [1] to track 
EA enhancement for this particular case.

The bug was found in 8u40 with an old implementation of Arrays::copyOf 
intrinsic. The intrinsic implementation has been updated in 9.
I wasn't able to come up with a regression test, which can reliably 
reproduce the problem in 9.

Testing: tested w/ regression test (attached to the bug) on 8u40.

Thanks!

Best regards,
Vladimir Ivanov

[1] https://bugs.openjdk.java.net/browse/JDK-8059378


More information about the hotspot-compiler-dev mailing list