diff graal/GraalCompiler/src/com/sun/c1x/alloc/EdgeMoveOptimizer.java @ 2674:6ab73784566a

* BlockBegin.predecessors changed to List<BlockEnd> * Node: add input/successor with given back edge index, allows for explicit ordering of predecessors/usages * Graphviz: PDF output, option to omit FrameStates * runscimark.sh: forward additional options to JVM
author Lukas Stadler <lukas.stadler@jku.at>
date Fri, 13 May 2011 15:18:41 +0200
parents 16b9a8b5ad39
children 7ed72769d51a
line wrap: on
line diff
--- a/graal/GraalCompiler/src/com/sun/c1x/alloc/EdgeMoveOptimizer.java	Fri May 13 11:19:25 2011 +0200
+++ b/graal/GraalCompiler/src/com/sun/c1x/alloc/EdgeMoveOptimizer.java	Fri May 13 15:18:41 2011 +0200
@@ -112,7 +112,7 @@
      * predecessors of {@code block} to the start of {@code block}.
      */
     private void optimizeMovesAtBlockEnd(BlockBegin block) {
-        if (block.isPredecessor(block)) {
+        if (block.isPredecessor(block.end())) {
             // currently we can't handle this correctly.
             return;
         }
@@ -126,7 +126,7 @@
 
         // setup a list with the LIR instructions of all predecessors
         for (int i = 0; i < numPreds; i++) {
-            BlockBegin pred = block.predAt(i);
+            BlockBegin pred = block.predAt(i).begin();
             List<LIRInstruction> predInstructions = pred.lir().instructionsList();
 
             if (pred.numberOfSux() != 1) {
@@ -231,7 +231,7 @@
                 // the same blocks.
                 return;
             }
-            assert sux.predAt(0) == block : "invalid control flow";
+            assert sux.predAt(0).begin() == block : "invalid control flow";
             assert !sux.checkBlockFlag(BlockBegin.BlockFlag.ExceptionEntry) : "exception handlers not allowed";
 
             // ignore the label at the beginning of the block