RFR(M): Tiered: incorrect results in VM tests stringconcat with -Xcomp -XX:+DeoptimizeALot on solaris-amd64

Vladimir Kozlov vladimir.kozlov at oracle.com
Mon Oct 14 14:39:54 PDT 2013

You don't need 'if()':

+         if (mem->is_MergeMem()) {
+           while (mem->is_MergeMem()) {

Typo "the have" ("it is"?):

+           // now let it fall though, and see if the have a projection

I wish you had some asserts for constructors case. May be check in debug 
VM that controls from Initialize to contructor don't have other uses.


On 10/14/13 1:57 PM, Igor Veresov wrote:
> Hi guys,
> 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.
> Webrev: http://cr.openjdk.java.net/~iveresov/8009303/webrev.2/
> Testing: jtreg, CTW, the failing tests
> igor

More information about the hotspot-compiler-dev mailing list