changeset 12685:478c82dde838

commented choice of data structure in NodeClass.addGraphDuplicate()
author Doug Simon <doug.simon@oracle.com>
date Tue, 05 Nov 2013 19:44:09 +0100
parents ec224fef3012
children ca8ab182026f
files graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeClass.java
diffstat 1 files changed, 8 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeClass.java	Tue Nov 05 19:42:44 2013 +0100
+++ b/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeClass.java	Tue Nov 05 19:44:09 2013 +0100
@@ -1271,7 +1271,14 @@
     }
 
     static Map<Node, Node> addGraphDuplicate(final Graph graph, final Graph oldGraph, int estimatedNodeCount, Iterable<Node> nodes, final DuplicationReplacement replacements) {
-        final Map<Node, Node> newNodes = (estimatedNodeCount > (oldGraph.getNodeCount() + oldGraph.getDeletedNodeCount() >> 4)) ? new NodeNodeMap(oldGraph) : new IdentityHashMap<Node, Node>();
+        final Map<Node, Node> newNodes;
+        if (estimatedNodeCount > (oldGraph.getNodeCount() + oldGraph.getDeletedNodeCount() >> 4)) {
+            // Use dense map
+            newNodes = new NodeNodeMap(oldGraph);
+        } else {
+            // Use sparse map
+            newNodes = new IdentityHashMap<>();
+        }
         createNodeDuplicates(graph, nodes, replacements, newNodes);
 
         InplaceUpdateClosure replacementClosure = new InplaceUpdateClosure() {