diff graal/GraalCompiler/src/com/sun/c1x/alloc/LinearScan.java @ 2789:aeccd2af4e9e

Fixes around critical edge split and placeholder removal after goto removal.
author Thomas Wuerthinger <thomas@wuerthinger.net>
date Wed, 25 May 2011 16:48:28 +0200
parents 79dda81dd337
children 6d14aa4fbf90
line wrap: on
line diff
--- a/graal/GraalCompiler/src/com/sun/c1x/alloc/LinearScan.java	Wed May 25 14:33:44 2011 +0200
+++ b/graal/GraalCompiler/src/com/sun/c1x/alloc/LinearScan.java	Wed May 25 16:48:28 2011 +0200
@@ -725,7 +725,7 @@
         // this is checked by these assertions to be sure about it.
         // the entry block may have incoming
         // values in registers, which is ok.
-        if (!operand.isVariable() /*&& block != ir.startBlock*/) {
+        if (!operand.isVariable() && block != ir.startBlock) {
             if (isProcessed(operand)) {
                 assert liveKill.get(operandNumber(operand)) : "using fixed register that is not defined in this block";
             }
@@ -812,6 +812,8 @@
                 reportFailure(numBlocks);
             }
 
+            TTY.println("preds=" + startBlock.blockPredecessors().size() + ", succs=" + startBlock.blockSuccessors().size());
+
             // bailout of if this occurs in product mode.
             throw new CiBailout("liveIn set of first block must be empty");
         }