Mercurial > hg > truffle
changeset 19558:e9d88438d154
Small refactoring in node class.
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Mon, 23 Feb 2015 18:02:08 +0100 |
parents | f53c6c8e2048 |
children | 08d94d9f0b0f |
files | graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeClass.java |
diffstat | 1 files changed, 12 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeClass.java Mon Feb 23 17:57:58 2015 +0100 +++ b/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeClass.java Mon Feb 23 18:02:08 2015 +0100 @@ -569,16 +569,18 @@ static void updateEdgesInPlace(Node node, InplaceUpdateClosure duplicationReplacement, Edges edges) { int index = 0; - while (index < edges.getDirectCount()) { + Type curType = edges.type(); + int directCount = edges.getDirectCount(); + while (index < directCount) { Node edge = edges.getNode(node, index); if (edge != null) { - Node newEdge = duplicationReplacement.replacement(edge, edges.type()); - if (edges.type() == Edges.Type.Inputs) { + Node newEdge = duplicationReplacement.replacement(edge, curType); + if (curType == Edges.Type.Inputs) { node.updateUsages(null, newEdge); } else { node.updatePredecessor(null, newEdge); } - assert newEdge == null || edges.getType(index).isAssignableFrom(newEdge.getClass()) : "Can not assign " + newEdge.getClass() + " to " + edges.getType(index) + " in " + node; + assert assertUpdateValid(node, edges, index, newEdge); edges.initializeNode(node, index, newEdge); } index++; @@ -587,12 +589,17 @@ while (index < edges.getCount()) { NodeList<Node> list = edges.getNodeList(node, index); if (list != null) { - edges.initializeList(node, index, updateEdgeListCopy(node, list, duplicationReplacement, edges.type())); + edges.initializeList(node, index, updateEdgeListCopy(node, list, duplicationReplacement, curType)); } index++; } } + private static boolean assertUpdateValid(Node node, Edges edges, int index, Node newEdge) { + assert newEdge == null || edges.getType(index).isAssignableFrom(newEdge.getClass()) : "Can not assign " + newEdge.getClass() + " to " + edges.getType(index) + " in " + node; + return true; + } + void updateInputSuccInPlace(Node node, InplaceUpdateClosure duplicationReplacement) { updateEdgesInPlace(node, duplicationReplacement, inputs); updateEdgesInPlace(node, duplicationReplacement, successors);