# HG changeset patch # User Paul Woegerer # Date 1423824842 -3600 # Node ID 78510d27786b344b901d7a86db90e83f6b8a3ad3 # Parent af4a778b3ce683c7ec6e3f09db8ba568b3293a7b Ensure to also remove redundant PiNodes diff -r af4a778b3ce6 -r 78510d27786b graal/com.oracle.graal.word/src/com/oracle/graal/word/phases/WordTypeRewriterPhase.java --- a/graal/com.oracle.graal.word/src/com/oracle/graal/word/phases/WordTypeRewriterPhase.java Fri Feb 13 11:39:05 2015 +0100 +++ b/graal/com.oracle.graal.word/src/com/oracle/graal/word/phases/WordTypeRewriterPhase.java Fri Feb 13 11:54:02 2015 +0100 @@ -113,6 +113,8 @@ protected void rewriteNode(StructuredGraph graph, Node node) { if (node instanceof CheckCastNode) { rewriteCheckCast(graph, (CheckCastNode) node); + } else if (node instanceof PiNode) { + rewritePi(graph, (PiNode) node); } else if (node instanceof LoadFieldNode) { rewriteLoadField(graph, (LoadFieldNode) node); } else if (node instanceof AccessIndexedNode) { @@ -133,6 +135,16 @@ } /** + * Remove casts between word types (which by now no longer have kind Object). + */ + protected void rewritePi(StructuredGraph graph, PiNode node) { + if (node.getKind() == wordKind) { + node.replaceAtUsages(node.object()); + graph.removeFloating(node); + } + } + + /** * Fold constant field reads, e.g. enum constants. */ protected void rewriteLoadField(StructuredGraph graph, LoadFieldNode node) {