# HG changeset patch # User Andreas Woess # Date 1373538171 -7200 # Node ID 84b944726df258fb040e25f539306d432f4c2ad3 # Parent 7cdd4708b1aae8026a8e1f1b09edeb73c1eb78cf Truffle: introduce NodeUtil.countNodes diff -r 7cdd4708b1aa -r 84b944726df2 graal/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/NodeUtil.java --- a/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/NodeUtil.java Thu Jul 11 12:10:17 2013 +0200 +++ b/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/NodeUtil.java Thu Jul 11 12:22:51 2013 +0200 @@ -508,6 +508,26 @@ return nodeList; } + public static int countNodes(Node root) { + NodeCountVisitor nodeCount = new NodeCountVisitor(); + root.accept(nodeCount); + return nodeCount.nodeCount; + } + + private static class NodeCountVisitor implements NodeVisitor { + + int nodeCount; + + @Override + public boolean visit(Node node) { + if (node instanceof RootNode && nodeCount > 0) { + return false; + } + nodeCount++; + return true; + } + } + public static String printCompactTreeToString(Node node) { StringWriter out = new StringWriter(); printCompactTree(new PrintWriter(out), null, node, 1);