RFR(M): 8130847: Cloned object's fields observed as null after C2 escape analysis

Roland Westrelin roland.westrelin at oracle.com
Tue Jul 28 14:05:40 UTC 2015


When an allocation which is the destination of an ArrayCopyNode is eliminated, field’s values recorded at a safepoint (to reallocate the object) do not take the ArrayCopyNode into account at all and the effect or the ArrayCopyNode is lost on a deoptimization. This fix records values from the source of the ArrayCopyNode, emitting new loads if necessary.

I also use the opportunity to pin the loads generated in LoadNode::can_see_arraycopy_value() because they depend on all checks that validate the array copy and not only on the check that immediately dominates. 


More information about the hotspot-compiler-dev mailing list