Mercurial > hg > truffle
diff graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeClass.java @ 11671:3522f7c99c5f
Allow null DuplicationReplacement in addDuplicates.
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Mon, 16 Sep 2013 20:23:26 +0200 |
parents | a625d254e137 |
children | 25de2c04c956 |
line wrap: on
line diff
--- a/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeClass.java Mon Sep 16 19:56:54 2013 +0200 +++ b/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeClass.java Mon Sep 16 20:23:26 2013 +0200 @@ -968,12 +968,15 @@ } static Map<Node, Node> addGraphDuplicate(Graph graph, Iterable<Node> nodes, DuplicationReplacement replacements) { - Map<Node, Node> newNodes = new IdentityHashMap<>(); + IdentityHashMap<Node, Node> newNodes = new IdentityHashMap<>(); // create node duplicates for (Node node : nodes) { if (node != null) { assert !node.isDeleted() : "trying to duplicate deleted node: " + node; - Node replacement = replacements.replacement(node); + Node replacement = node; + if (replacements != null) { + replacement = replacements.replacement(node); + } if (replacement != node) { assert replacement != null; newNodes.put(node, replacement); @@ -997,7 +1000,10 @@ Node target = newNodes.get(input); NodeClass nodeClass = node.getNodeClass(); if (target == null) { - Node replacement = replacements.replacement(input); + Node replacement = input; + if (replacements != null) { + replacement = replacements.replacement(input); + } if (replacement != input) { assert isAssignable(nodeClass.fieldTypes.get(nodeClass.inputOffsets[pos.index]), replacement); target = replacement;