changeset 16969:865628e59c55

Truffle: cleanup to the LoopNode API.
author Christian Humer <christian.humer@gmail.com>
date Wed, 27 Aug 2014 11:35:59 +0200
parents cbe585ebce98
children 7bb9b9f56799
files graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/OptimizedLoopNode.java graal/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/DefaultLoopNode.java graal/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/LoopNode.java
diffstat 3 files changed, 17 insertions(+), 30 deletions(-) [+]
line wrap: on
line diff
--- 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
+}
--- 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)) {
+        }
     }
 }
--- 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;
     }