Mercurial > hg > graal-compiler
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() {