Mercurial > hg > graal-compiler
changeset 16292:81e4af185dd6
add predecessors to worklist during MergeNode splitting
author | Lukas Stadler <lukas.stadler@oracle.com> |
---|---|
date | Mon, 30 Jun 2014 16:14:00 +0200 |
parents | da8f16efaa4c |
children | 8da760bd1575 |
files | graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/MergeNode.java |
diffstat | 1 files changed, 6 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- 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<AbstractEndNode> 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);