changeset 3514:eb3e8ea2956a

Clean up of Merge class.
author Thomas Wuerthinger <thomas@wuerthinger.net>
date Mon, 08 Aug 2011 22:24:44 +0200
parents 8a9621569b8e
children 4275ca8dde2b
files graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/alloc/LinearScan.java graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/ir/LoopBegin.java graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/ir/Merge.java graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/schedule/IdentifyBlocksPhase.java graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/util/LoopUtil.java graal/com.oracle.max.graal.runtime/src/com/oracle/max/graal/runtime/HotSpotRuntime.java
diffstat 6 files changed, 11 insertions(+), 31 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/alloc/LinearScan.java	Mon Aug 08 22:18:47 2011 +0200
+++ b/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/alloc/LinearScan.java	Mon Aug 08 22:24:44 2011 +0200
@@ -843,7 +843,7 @@
                     TTY.println("pred count on blockbegin: " + phi.merge().phiPredecessorCount());
                     TTY.println("phi values: " + phi.valueCount());
                     TTY.println("phi block preds:");
-                    for (Node n : phi.merge().phiPredecessors()) {
+                    for (EndNode n : phi.merge().cfgPredecessors()) {
                         TTY.println(n.toString());
                     }
                 }
--- a/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/ir/LoopBegin.java	Mon Aug 08 22:18:47 2011 +0200
+++ b/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/ir/LoopBegin.java	Mon Aug 08 22:24:44 2011 +0200
@@ -110,7 +110,7 @@
     }
 
     @Override
-    public Iterable<Node> phiPredecessors() {
+    public Iterable<? extends Node> phiPredecessors() {
         return Arrays.asList(new Node[]{this.forwardEdge(), this.loopEnd()});
     }
 
--- a/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/ir/Merge.java	Mon Aug 08 22:18:47 2011 +0200
+++ b/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/ir/Merge.java	Mon Aug 08 22:24:44 2011 +0200
@@ -37,7 +37,7 @@
  */
 public class Merge extends StateSplit{
 
-    @Input    private final NodeInputList<Node> ends = new NodeInputList<Node>(this);
+    @Input    private final NodeInputList<EndNode> ends = new NodeInputList<EndNode>(this);
 
     public Merge(Graph graph) {
         super(CiKind.Illegal, graph);
@@ -66,31 +66,16 @@
     }
 
     public EndNode endAt(int index) {
-        return (EndNode) ends.get(index);
+        return ends.get(index);
+    }
+
+    public Iterable<? extends Node> phiPredecessors() {
+        return ends;
     }
 
     @Override
     public Iterable<EndNode> cfgPredecessors() {
-        return new Iterable<EndNode>() {
-            @Override
-            public Iterator<EndNode> iterator() {
-                return new Iterator<EndNode>() {
-                    int i = 0;
-                    @Override
-                    public void remove() {
-                        throw new UnsupportedOperationException();
-                    }
-                    @Override
-                    public EndNode next() {
-                        return Merge.this.endAt(i++);
-                    }
-                    @Override
-                    public boolean hasNext() {
-                        return i < Merge.this.endCount();
-                    }
-                };
-            }
-        };
+        return ends;
     }
 
     @Override
@@ -316,8 +301,4 @@
     public Collection<Phi> phis() {
         return Util.filter(this.usages(), Phi.class);
     }
-
-    public Iterable<Node> phiPredecessors() {
-        return ends;
-    }
 }
--- a/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/schedule/IdentifyBlocksPhase.java	Mon Aug 08 22:18:47 2011 +0200
+++ b/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/schedule/IdentifyBlocksPhase.java	Mon Aug 08 22:24:44 2011 +0200
@@ -521,7 +521,7 @@
                     if (mergeBlock.getPredecessors().size() <= i) {
                         TTY.println(merge.toString());
                         TTY.println(phi.toString());
-                        TTY.println(merge.phiPredecessors().toString());
+                        TTY.println(merge.cfgPredecessors().toString());
                         TTY.println(phi.inputs().toString());
                         TTY.println("value count: " + phi.valueCount());
                     }
--- a/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/util/LoopUtil.java	Mon Aug 08 22:18:47 2011 +0200
+++ b/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/util/LoopUtil.java	Mon Aug 08 22:24:44 2011 +0200
@@ -613,7 +613,7 @@
                 }
                 Merge merge = (Merge) color;
                 List<Node> parentColors = new ArrayList<Node>(merge.phiPredecessorCount());
-                for (Node pred : merge.phiPredecessors()) {
+                for (EndNode pred : merge.cfgPredecessors()) {
                     parentColors.add(colors.get(pred));
                 }
                 return parentColors;
--- a/graal/com.oracle.max.graal.runtime/src/com/oracle/max/graal/runtime/HotSpotRuntime.java	Mon Aug 08 22:18:47 2011 +0200
+++ b/graal/com.oracle.max.graal.runtime/src/com/oracle/max/graal/runtime/HotSpotRuntime.java	Mon Aug 08 22:24:44 2011 +0200
@@ -30,7 +30,6 @@
 import com.oracle.max.graal.compiler.graph.*;
 import com.oracle.max.graal.compiler.ir.*;
 import com.oracle.max.graal.compiler.ir.Conditional.ConditionalStructure;
-import com.oracle.max.graal.compiler.ir.MathIntrinsic.Operation;
 import com.oracle.max.graal.compiler.value.*;
 import com.oracle.max.graal.graph.*;
 import com.oracle.max.graal.runtime.nodes.*;