Mercurial > hg > graal-compiler
changeset 10704:84b944726df2
Truffle: introduce NodeUtil.countNodes
author | Andreas Woess <andreas.woess@jku.at> |
---|---|
date | Thu, 11 Jul 2013 12:22:51 +0200 |
parents | 7cdd4708b1aa |
children | fd53f9f7007b |
files | graal/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/NodeUtil.java |
diffstat | 1 files changed, 20 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- 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);