# HG changeset patch # User Lukas Stadler # Date 1404137640 -7200 # Node ID 81e4af185dd64ec11dd4c6bb5bcf6190cd92fefa # Parent da8f16efaa4c81dfeaa6b6ca0b0a7ae8401212d4 add predecessors to worklist during MergeNode splitting diff -r da8f16efaa4c -r 81e4af185dd6 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/MergeNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/MergeNode.java Mon Jun 30 15:45:41 2014 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/MergeNode.java Mon Jun 30 16:14:00 2014 +0200 @@ -163,6 +163,9 @@ int numEnds = this.forwardEndCount(); for (int i = 0; i < numEnds - 1; i++) { AbstractEndNode end = forwardEndAt(numEnds - 1 - i); + if (tool != null) { + tool.addToWorkList(end); + } AbstractEndNode newEnd; if (merge instanceof LoopBeginNode) { newEnd = graph().add(new LoopEndNode((LoopBeginNode) merge)); @@ -207,6 +210,9 @@ List endNodes = forwardEnds().snapshot(); for (AbstractEndNode end : endNodes) { ReturnNode newReturn = graph().add(new ReturnNode(returnValuePhi == null ? returnNode.result() : returnValuePhi.valueAt(end))); + if (tool != null) { + tool.addToWorkList(end.predecessor()); + } end.replaceAtPredecessor(newReturn); } GraphUtil.killCFG(this);