# HG changeset patch # User Doug Simon # Date 1383677049 -3600 # Node ID 478c82dde8386b352660f2cd088dbe4322fc6bb0 # Parent ec224fef3012918a8113f7501030b0a0a19aad71 commented choice of data structure in NodeClass.addGraphDuplicate() diff -r ec224fef3012 -r 478c82dde838 graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeClass.java --- 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 addGraphDuplicate(final Graph graph, final Graph oldGraph, int estimatedNodeCount, Iterable nodes, final DuplicationReplacement replacements) { - final Map newNodes = (estimatedNodeCount > (oldGraph.getNodeCount() + oldGraph.getDeletedNodeCount() >> 4)) ? new NodeNodeMap(oldGraph) : new IdentityHashMap(); + final Map 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() {