# HG changeset patch # User Thomas Wuerthinger # Date 1379356645 -7200 # Node ID 25de2c04c956ba0f0d4c14d83bf08c194c4a4709 # Parent 3522f7c99c5fef005925e33ee29cc25208468905 Small performance improvement to inlining. diff -r 3522f7c99c5f -r 25de2c04c956 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 Mon Sep 16 20:23:26 2013 +0200 +++ b/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeClass.java Mon Sep 16 20:37:25 2013 +0200 @@ -991,14 +991,15 @@ for (Entry entry : newNodes.entrySet()) { Node oldNode = entry.getKey(); Node node = entry.getValue(); + NodeClass oldNodeClass = oldNode.getNodeClass(); + NodeClass nodeClass = node.getNodeClass(); for (NodeClassIterator iter = oldNode.inputs().iterator(); iter.hasNext();) { Position pos = iter.nextPosition(); - if (!pos.isValidFor(node, oldNode)) { + if (!nodeClass.isValid(pos, oldNodeClass)) { continue; } - Node input = oldNode.getNodeClass().get(oldNode, pos); + Node input = oldNodeClass.get(oldNode, pos); Node target = newNodes.get(input); - NodeClass nodeClass = node.getNodeClass(); if (target == null) { Node replacement = input; if (replacements != null) { @@ -1013,27 +1014,22 @@ } nodeClass.set(node, pos, target); } - } - // re-wire successors - for (Entry entry : newNodes.entrySet()) { - Node oldNode = entry.getKey(); - Node node = entry.getValue(); for (NodeClassIterator iter = oldNode.successors().iterator(); iter.hasNext();) { Position pos = iter.nextPosition(); - if (!pos.isValidFor(node, oldNode)) { + if (!nodeClass.isValid(pos, oldNodeClass)) { continue; } - Node succ = oldNode.getNodeClass().get(oldNode, pos); + Node succ = oldNodeClass.get(oldNode, pos); Node target = newNodes.get(succ); if (target == null) { Node replacement = replacements.replacement(succ); if (replacement != succ) { - assert isAssignable(node.getNodeClass().fieldTypes.get(node.getNodeClass().successorOffsets[pos.index]), replacement); + assert isAssignable(nodeClass.fieldTypes.get(node.getNodeClass().successorOffsets[pos.index]), replacement); target = replacement; } } - node.getNodeClass().set(node, pos, target); + nodeClass.set(node, pos, target); } } return newNodes;