RFR(S): 8134974: 8130847 broken with loop predicates

Roland Westrelin roland.westrelin at oracle.com
Fri Sep 4 07:31:55 UTC 2015


At a deoptimization point, loads that capture the state of an eliminated allocation which is the destination of an arraycopy are pinned on the uncommon trap path. If that uncommon trap is for loop predicates then pinning the loads on that path may lead to a broken graph: the allocation may be eliminated as early as right after escape analysis, following loop optimizations may add predicates which require a new region to be added and then the control of the loads no longer dominates the uncommon trap.


More information about the hotspot-compiler-dev mailing list