# HG changeset patch # User Lukas Stadler # Date 1347442174 -7200 # Node ID f8416485a37f05386c10b434ec54e0f67163807b # Parent 31966e3f42d24f5ceab1aba18770f41ee2973e1f canonicalize IntegerSwitchNode with only a default successor diff -r 31966e3f42d2 -r f8416485a37f graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/IntegerSwitchNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/IntegerSwitchNode.java Tue Sep 11 14:57:06 2012 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/IntegerSwitchNode.java Wed Sep 12 11:29:34 2012 +0200 @@ -91,7 +91,10 @@ @Override public void simplify(SimplifierTool tool) { - if (value() instanceof ConstantNode) { + if (blockSuccessorCount() == 1) { + tool.addToWorkList(defaultSuccessor()); + ((StructuredGraph) graph()).removeSplitPropagate(this, defaultSuccessorIndex()); + } else if (value() instanceof ConstantNode) { int constant = value().asConstant().asInt(); int survivingEdge = keySuccessorIndex(keyCount()); @@ -107,8 +110,7 @@ } tool.addToWorkList(blockSuccessor(survivingEdge)); ((StructuredGraph) graph()).removeSplitPropagate(this, survivingEdge); - } - if (value() != null) { + } else if (value() != null) { IntegerStamp stamp = value().integerStamp(); if (!stamp.isUnrestricted()) { int validKeys = 0;