Mercurial > hg > truffle
changeset 11671:3522f7c99c5f
Allow null DuplicationReplacement in addDuplicates.
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Mon, 16 Sep 2013 20:23:26 +0200 |
parents | 891fa65ef9ec |
children | 25de2c04c956 |
files | graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Graph.java graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeClass.java graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopFragment.java |
diffstat | 3 files changed, 10 insertions(+), 21 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Graph.java Mon Sep 16 19:56:54 2013 +0200 +++ b/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Graph.java Mon Sep 16 20:23:26 2013 +0200 @@ -743,19 +743,8 @@ } - private static final DuplicationReplacement NO_REPLACEMENT = new DuplicationReplacement() { - - @Override - public Node replacement(Node original) { - return original; - } - }; - @SuppressWarnings("all") public Map<Node, Node> addDuplicates(Iterable<Node> newNodes, DuplicationReplacement replacements) { - if (replacements == null) { - replacements = NO_REPLACEMENT; - } return NodeClass.addGraphDuplicate(this, newNodes, replacements); } }
--- 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;
--- a/graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopFragment.java Mon Sep 16 19:56:54 2013 +0200 +++ b/graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopFragment.java Mon Sep 16 20:23:26 2013 +0200 @@ -129,13 +129,7 @@ } }; } else { - dr = new DuplicationReplacement() { - - @Override - public Node replacement(Node o) { - return o; - } - }; + dr = null; } duplicationMap = graph().addDuplicates(original().nodes(), dr); finishDuplication();