# HG changeset patch # User Lukas Stadler # Date 1335348795 -7200 # Node ID 1e3d4518813ecbb7fd67b136facb56e5055b190e # Parent 796917d3bfc92707bda7291d7a3e9e2dd8ba6a22 don't remove empty if - merge constructs if there are guards depending on the BeginNodes diff -r 796917d3bfc9 -r 1e3d4518813e graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/IfNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/IfNode.java Wed Apr 25 11:33:47 2012 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/IfNode.java Wed Apr 25 12:13:15 2012 +0200 @@ -122,7 +122,7 @@ EndNode trueEnd = (EndNode) trueSuccessor().next(); EndNode falseEnd = (EndNode) falseSuccessor().next(); MergeNode merge = trueEnd.merge(); - if (merge == falseEnd.merge() && merge.forwardEndCount() == 2) { + if (merge == falseEnd.merge() && merge.forwardEndCount() == 2 && trueSuccessor().anchored().isEmpty() && falseSuccessor().anchored().isEmpty()) { Iterator phis = merge.phis().iterator(); if (!phis.hasNext()) { // empty if construct with no phis: remove it