diff graal/GraalCompiler/src/com/sun/c1x/graph/IR.java @ 2788:df4c5254c5cc

Towards goto removal.
author Thomas Wuerthinger <thomas@wuerthinger.net>
date Wed, 25 May 2011 14:33:44 +0200
parents 9bc0c2eb00d6
children aeccd2af4e9e
line wrap: on
line diff
--- a/graal/GraalCompiler/src/com/sun/c1x/graph/IR.java	Wed May 25 12:20:08 2011 +0200
+++ b/graal/GraalCompiler/src/com/sun/c1x/graph/IR.java	Wed May 25 14:33:44 2011 +0200
@@ -124,7 +124,13 @@
         }
         startBlock = valueToBlock.get(getHIRStartBlock());
         assert startBlock != null;
-        verifyAndPrint("After linear scan order");
+
+        if (startBlock.blockPredecessors().size() > 0) {
+            LIRBlock oldStartBlock = startBlock;
+            startBlock = new LIRBlock(orderedBlocks.size());
+            startBlock.blockSuccessors().add(oldStartBlock);
+            orderedBlocks.add(startBlock);
+        }
 
         ComputeLinearScanOrder clso = new ComputeLinearScanOrder(lirBlocks.size(), startBlock);
         orderedBlocks = clso.linearScanOrder();
@@ -135,7 +141,7 @@
             b.setLinearScanNumber(z++);
         }
 
-
+        verifyAndPrint("After linear scan order");
 
         if (C1XOptions.PrintTimers) {
             C1XTimers.HIR_OPTIMIZE.stop();