changeset 20180:2c6fb59b484f

Ensure ControlSinkNodes are added to the graph in PartialEscapeClosure.
author Roland Schatz <roland.schatz@oracle.com>
date Wed, 08 Apr 2015 11:29:36 +0200
parents ca29dc4ffab0
children 8dec9eea3186
files graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/GraphEffectList.java graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapeClosure.java
diffstat 2 files changed, 2 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/GraphEffectList.java	Tue Apr 07 17:52:50 2015 +0200
+++ b/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/GraphEffectList.java	Wed Apr 08 11:29:36 2015 +0200
@@ -65,7 +65,7 @@
             assert position.isAlive();
             if (!node.isAlive()) {
                 graph.addWithoutUniqueWithInputs(node);
-                if (node instanceof FixedNode) {
+                if (node instanceof FixedWithNextNode) {
                     graph.addBeforeFixed(position, (FixedWithNextNode) node);
                 }
             }
--- a/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapeClosure.java	Tue Apr 07 17:52:50 2015 +0200
+++ b/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapeClosure.java	Wed Apr 08 11:29:36 2015 +0200
@@ -206,11 +206,11 @@
                     VirtualUtil.trace("replacement via canonicalization too complex: %s -> %s", node, canonicalizedValue);
                     return false;
                 }
+                effects.ensureAdded(canonicalizedValue, insertBefore);
                 if (canonicalizedValue instanceof ControlSinkNode) {
                     effects.replaceWithSink((FixedWithNextNode) node, (ControlSinkNode) canonicalizedValue);
                     state.markAsDead();
                 } else {
-                    effects.ensureAdded(canonicalizedValue, insertBefore);
                     effects.replaceAtUsages(node, canonicalizedValue);
                     addScalarAlias(node, canonicalizedValue);
                 }