# HG changeset patch # User Christian Humer # Date 1409132159 -7200 # Node ID 865628e59c55e492236e2e72989b04db678d7af6 # Parent cbe585ebce985c5a3ec59e1fc00dd63d49b3662a Truffle: cleanup to the LoopNode API. diff -r cbe585ebce98 -r 865628e59c55 graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/OptimizedLoopNode.java --- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/OptimizedLoopNode.java Wed Aug 27 11:35:59 2014 +0200 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/OptimizedLoopNode.java Wed Aug 27 11:35:59 2014 +0200 @@ -23,7 +23,6 @@ package com.oracle.graal.truffle; import com.oracle.truffle.api.*; -import com.oracle.truffle.api.CompilerDirectives.*; import com.oracle.truffle.api.frame.*; import com.oracle.truffle.api.nodes.*; @@ -33,36 +32,24 @@ */ public final class OptimizedLoopNode extends LoopNode { - @CompilationFinal private int loopCount; - public OptimizedLoopNode(RepeatingNode body) { super(body); } @Override public void executeLoop(VirtualFrame frame) { + int loopCount = 0; try { - do { - } while (executeBody(frame)); + while (executeRepeatingNode(frame)) { + if (CompilerDirectives.inInterpreter()) { + loopCount++; + } + } } finally { - loopDone(); + if (CompilerDirectives.inInterpreter()) { + getRootNode().reportLoopCount(loopCount); + } } } - private final boolean executeBody(VirtualFrame frame) { - boolean result = executeRepeatNode(frame); - if (CompilerDirectives.inInterpreter()) { - if (result) { - loopCount++; - } - } - return result; - } - - private void loopDone() { - if (CompilerDirectives.inInterpreter()) { - getRootNode().reportLoopCount(loopCount); - loopCount = 0; - } - } -} \ No newline at end of file +} diff -r cbe585ebce98 -r 865628e59c55 graal/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/DefaultLoopNode.java --- a/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/DefaultLoopNode.java Wed Aug 27 11:35:59 2014 +0200 +++ b/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/DefaultLoopNode.java Wed Aug 27 11:35:59 2014 +0200 @@ -35,7 +35,7 @@ @Override public void executeLoop(VirtualFrame frame) { - do { - } while (executeRepeatNode(frame)); + while (executeRepeatingNode(frame)) { + } } } diff -r cbe585ebce98 -r 865628e59c55 graal/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/LoopNode.java --- a/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/LoopNode.java Wed Aug 27 11:35:59 2014 +0200 +++ b/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/LoopNode.java Wed Aug 27 11:35:59 2014 +0200 @@ -36,17 +36,17 @@ */ @Child protected Node repeatingNode; - public LoopNode(RepeatingNode repeatintNode) { - this.repeatingNode = (Node) repeatintNode; + public LoopNode(RepeatingNode repeatingNode) { + this.repeatingNode = (Node) repeatingNode; } public abstract void executeLoop(VirtualFrame frame); - protected final boolean executeRepeatNode(VirtualFrame frame) { - return getRepeatNode().executeRepeating(frame); + protected final boolean executeRepeatingNode(VirtualFrame frame) { + return getRepeatingNode().executeRepeating(frame); } - public final RepeatingNode getRepeatNode() { + public final RepeatingNode getRepeatingNode() { return (RepeatingNode) repeatingNode; }