# HG changeset patch # User Christian Humer # Date 1426874450 -3600 # Node ID 4cd28f6e34852b1a9404d7da87dc01ddb711bf6a # Parent 2727a2be239150f7173e97cdc8e70ecf0d700181 Truffle: refactor trivial node count calculation and expose and API that enables to use it for Node subtrees. diff -r 2727a2be2391 -r 4cd28f6e3485 graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/DefaultTruffleSplittingStrategy.java --- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/DefaultTruffleSplittingStrategy.java Fri Mar 20 19:00:50 2015 +0100 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/DefaultTruffleSplittingStrategy.java Fri Mar 20 19:00:50 2015 +0100 @@ -62,7 +62,7 @@ return false; } OptimizedCallTarget splitTarget = call.getCallTarget(); - int nodeCount = splitTarget.countNonTrivialNodes(); + int nodeCount = splitTarget.getNonTrivialNodeCount(); if (nodeCount > TruffleCompilerOptions.TruffleSplittingMaxCalleeSize.getValue()) { return false; } diff -r 2727a2be2391 -r 4cd28f6e3485 graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/DefaultTruffleSplittingStrategyNew.java --- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/DefaultTruffleSplittingStrategyNew.java Fri Mar 20 19:00:50 2015 +0100 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/DefaultTruffleSplittingStrategyNew.java Fri Mar 20 19:00:50 2015 +0100 @@ -55,7 +55,7 @@ if (TruffleCompilerOptions.TruffleSplittingAggressive.getValue()) { return true; } - int size = call.getCallTarget().countNonTrivialNodes(); + int size = call.getCallTarget().getNonTrivialNodeCount(); if (size > TruffleCompilerOptions.TruffleSplittingMaxCalleeSize.getValue()) { return false; } diff -r 2727a2be2391 -r 4cd28f6e3485 graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/OptimizedCallTarget.java --- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/OptimizedCallTarget.java Fri Mar 20 19:00:50 2015 +0100 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/OptimizedCallTarget.java Fri Mar 20 19:00:50 2015 +0100 @@ -486,16 +486,16 @@ return StreamSupport.stream(Spliterators.spliteratorUnknownSize(iterator, 0), false); } - public final int countNonTrivialNodes() { + public final int getNonTrivialNodeCount() { if (cachedNonTrivialNodeCount == -1) { - cachedNonTrivialNodeCount = calculateNonTrivialNodesImpl(); + cachedNonTrivialNodeCount = calculateNonTrivialNodes(getRootNode()); } return cachedNonTrivialNodeCount; } - private int calculateNonTrivialNodesImpl() { + public static int calculateNonTrivialNodes(Node node) { NonTrivialNodeCountVisitor visitor = new NonTrivialNodeCountVisitor(); - getRootNode().accept(visitor); + node.accept(visitor); return visitor.nodeCount; } diff -r 2727a2be2391 -r 4cd28f6e3485 graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleInlining.java --- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleInlining.java Fri Mar 20 19:00:50 2015 +0100 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleInlining.java Fri Mar 20 19:00:50 2015 +0100 @@ -43,7 +43,7 @@ } private static List createDecisions(OptimizedCallTarget sourceTarget, TruffleInliningPolicy policy, CompilerOptions options) { - int nodeCount = sourceTarget.countNonTrivialNodes(); + int nodeCount = sourceTarget.getNonTrivialNodeCount(); List exploredCallSites = exploreCallSites(new ArrayList<>(Arrays.asList(sourceTarget)), nodeCount, policy); return decideInlining(exploredCallSites, policy, nodeCount, options); } @@ -66,7 +66,7 @@ List childCallSites = Collections.emptyList(); double frequency = calculateFrequency(parentTarget, callNode); - int nodeCount = callNode.getCurrentCallTarget().countNonTrivialNodes(); + int nodeCount = callNode.getCurrentCallTarget().getNonTrivialNodeCount(); int recursions = countRecursions(callStack); int deepNodeCount = nodeCount; diff -r 2727a2be2391 -r 4cd28f6e3485 graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/debug/AbstractDebugCompilationListener.java --- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/debug/AbstractDebugCompilationListener.java Fri Mar 20 19:00:50 2015 +0100 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/debug/AbstractDebugCompilationListener.java Fri Mar 20 19:00:50 2015 +0100 @@ -101,7 +101,7 @@ } public static void addASTSizeProperty(OptimizedCallTarget target, Map properties) { - int nodeCount = target.countNonTrivialNodes(); + int nodeCount = target.getNonTrivialNodeCount(); int deepNodeCount = nodeCount; TruffleInlining inlining = target.getInlining(); if (inlining != null) {