[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