# HG changeset patch # User Roland Schatz # Date 1428485376 -7200 # Node ID 2c6fb59b484ff026b9bfb7b24a7be018c010f037 # Parent ca29dc4ffab06ebcb421a046c52f107c02787de3 Ensure ControlSinkNodes are added to the graph in PartialEscapeClosure. diff -r ca29dc4ffab0 -r 2c6fb59b484f graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/GraphEffectList.java --- 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); } } diff -r ca29dc4ffab0 -r 2c6fb59b484f graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapeClosure.java --- 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); }