Mercurial > hg > graal-jvmci-8
diff graal/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/NodeUtil.java @ 20130:8dc73c226c63
Truffle: cache NodeClass lookup in Node.
author | Christian Humer <christian.humer@gmail.com> |
---|---|
date | Thu, 02 Apr 2015 01:26:31 +0200 |
parents | 5b7db8941fd7 |
children | 4b12d5355811 |
line wrap: on
line diff
--- a/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/NodeUtil.java Thu Apr 02 01:22:41 2015 +0200 +++ b/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/NodeUtil.java Thu Apr 02 01:26:31 2015 +0200 @@ -54,7 +54,7 @@ } static Iterator<Node> makeIterator(Node node) { - return NodeClass.get(node.getClass()).makeIterator(node); + return node.getNodeClass().makeIterator(node); } public static Iterator<Node> makeRecursiveIterator(Node node) { @@ -132,7 +132,7 @@ static Node deepCopyImpl(Node orig) { final Node clone = orig.copy(); - NodeClass nodeClass = NodeClass.get(clone.getClass()); + NodeClass nodeClass = clone.getNodeClass(); nodeClass.getParentField().putObject(clone, null); @@ -169,7 +169,7 @@ public static List<Node> findNodeChildren(Node node) { List<Node> nodes = new ArrayList<>(); - NodeClass nodeClass = NodeClass.get(node.getClass()); + NodeClass nodeClass = node.getNodeClass(); for (NodeFieldAccessor nodeField : nodeClass.getChildFields()) { Object child = nodeField.getObject(node); @@ -197,7 +197,7 @@ } public static boolean replaceChild(Node parent, Node oldChild, Node newChild) { - NodeClass nodeClass = NodeClass.get(parent.getClass()); + NodeClass nodeClass = parent.getNodeClass(); for (NodeFieldAccessor nodeField : nodeClass.getChildFields()) { if (nodeField.getObject(parent) == oldChild) { @@ -252,7 +252,7 @@ */ public static NodeFieldAccessor findChildField(Node parent, Node child) { assert child != null; - NodeClass parentNodeClass = NodeClass.get(parent.getClass()); + NodeClass parentNodeClass = parent.getNodeClass(); for (NodeFieldAccessor field : parentNodeClass.getChildFields()) { if (field.getObject(parent) == child) { @@ -302,7 +302,7 @@ */ public static boolean forEachChild(Node parent, NodeVisitor visitor) { Objects.requireNonNull(visitor); - NodeClass parentNodeClass = NodeClass.get(parent.getClass()); + NodeClass parentNodeClass = parent.getNodeClass(); for (NodeFieldAccessor field : parentNodeClass.getChildFields()) { Object child = field.getObject(parent); @@ -564,7 +564,7 @@ } private static String getNodeFieldName(Node parent, Node node, String defaultName) { - NodeFieldAccessor[] fields = NodeClass.get(parent.getClass()).getFields(); + NodeFieldAccessor[] fields = parent.getNodeClass().getFields(); for (NodeFieldAccessor field : fields) { Object value = field.loadValue(parent); if (field.getKind() == NodeFieldKind.CHILD && value == node) { @@ -644,7 +644,7 @@ ArrayList<NodeFieldAccessor> childFields = new ArrayList<>(); String sep = ""; p.print("("); - for (NodeFieldAccessor field : NodeClass.get(node.getClass()).getFields()) { + for (NodeFieldAccessor field : NodeClass.get(node).getFields()) { if (field.getKind() == NodeFieldKind.CHILD || field.getKind() == NodeFieldKind.CHILDREN) { childFields.add(field); } else if (field.getKind() == NodeFieldKind.DATA) {