# HG changeset patch # User Thomas Wuerthinger # Date 1312835084 -7200 # Node ID eb3e8ea2956a551e68674197332808d947cc1a3d # Parent 8a9621569b8e2ccbdc8bbffbd126d68ba6dcc61f Clean up of Merge class. diff -r 8a9621569b8e -r eb3e8ea2956a graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/alloc/LinearScan.java --- 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()); } } diff -r 8a9621569b8e -r eb3e8ea2956a graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/ir/LoopBegin.java --- 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 phiPredecessors() { + public Iterable phiPredecessors() { return Arrays.asList(new Node[]{this.forwardEdge(), this.loopEnd()}); } diff -r 8a9621569b8e -r eb3e8ea2956a graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/ir/Merge.java --- 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 ends = new NodeInputList(this); + @Input private final NodeInputList ends = new NodeInputList(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 phiPredecessors() { + return ends; } @Override public Iterable cfgPredecessors() { - return new Iterable() { - @Override - public Iterator iterator() { - return new Iterator() { - 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 phis() { return Util.filter(this.usages(), Phi.class); } - - public Iterable phiPredecessors() { - return ends; - } } diff -r 8a9621569b8e -r eb3e8ea2956a graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/schedule/IdentifyBlocksPhase.java --- 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()); } diff -r 8a9621569b8e -r eb3e8ea2956a graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/util/LoopUtil.java --- 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 parentColors = new ArrayList(merge.phiPredecessorCount()); - for (Node pred : merge.phiPredecessors()) { + for (EndNode pred : merge.cfgPredecessors()) { parentColors.add(colors.get(pred)); } return parentColors; diff -r 8a9621569b8e -r eb3e8ea2956a graal/com.oracle.max.graal.runtime/src/com/oracle/max/graal/runtime/HotSpotRuntime.java --- 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.*;