changeset 7536:1563a48b798d

don't tail duplicate allocations
author Lukas Stadler <lukas.stadler@jku.at>
date Wed, 23 Jan 2013 17:21:07 +0100
parents f057113c7a87
children 263a666388b1
files graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/TailDuplicationPhase.java
diffstat 1 files changed, 4 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/TailDuplicationPhase.java	Wed Jan 23 16:46:20 2013 +0100
+++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/TailDuplicationPhase.java	Wed Jan 23 17:21:07 2013 +0100
@@ -31,6 +31,7 @@
 import com.oracle.graal.nodes.VirtualState.NodeClosure;
 import com.oracle.graal.nodes.extended.*;
 import com.oracle.graal.nodes.java.*;
+import com.oracle.graal.nodes.spi.*;
 import com.oracle.graal.nodes.type.*;
 import com.oracle.graal.nodes.util.*;
 import com.oracle.graal.phases.*;
@@ -94,6 +95,9 @@
             int opportunities = 0;
             while (current instanceof FixedWithNextNode) {
                 current = ((FixedWithNextNode) current).next();
+                if (current instanceof VirtualizableAllocation) {
+                    return false;
+                }
                 for (PhiNode phi : improvements) {
                     for (Node input : current.inputs()) {
                         if (input == phi) {