RFR(M): Tiered: incorrect results in VM tests stringconcat with -Xcomp -XX:+DeoptimizeALot on solaris-amd64
igor.veresov at oracle.com
Mon Oct 14 13:57:42 PDT 2013
I had to go back and think about the solution to clear up some doubts. While my original solution mostly worked, there is actually a more efficient way to do the analysis in polynomial time.
Basically the implementation boils down to verifying that there are no side effects between the first constructor and all the following calls by following the bottom memory slices up until we find a know call. The presence of memory slices of different alias types between the calls also indicate the side effect. As for the case when side effects (calls or stores) happen after allocation and before the constructor call they always have a control dependency on initialization, and therefore will be caught by the existing control flow validation.
Testing: jtreg, CTW, the failing tests
More information about the hotspot-compiler-dev