Mercurial > hg > graal-jvmci-8
changeset 6696:2ec25815d84e
When InstanceOfNode is lowered to always true or always false condition, then the no longer used branch needs to be removed from graph.
author | Christian Wimmer <christian.wimmer@oracle.com> |
---|---|
date | Fri, 09 Nov 2012 16:58:28 -0800 |
parents | dc7cd6885f07 |
children | 45661f68f317 |
files | graal/com.oracle.graal.snippets/src/com/oracle/graal/snippets/InstanceOfSnippetsTemplates.java |
diffstat | 1 files changed, 4 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.snippets/src/com/oracle/graal/snippets/InstanceOfSnippetsTemplates.java Fri Nov 09 16:57:29 2012 -0800 +++ b/graal/com.oracle.graal.snippets/src/com/oracle/graal/snippets/InstanceOfSnippetsTemplates.java Fri Nov 09 16:58:28 2012 -0800 @@ -272,7 +272,10 @@ } private static void connectEnds(MergeNode merge, List<EndNode> ends, BeginNode successor) { - if (ends.size() == 1) { + if (ends.size() == 0) { + // InstanceOf has been lowered to always true or always false - this successor is therefore unreachable. + GraphUtil.killCFG(successor); + } else if (ends.size() == 1) { EndNode end = ends.get(0); ((FixedWithNextNode) end.predecessor()).setNext(successor); merge.removeEnd(end);