diff graal/GraalCompiler/src/com/sun/c1x/graph/BlockMap.java @ 2840:75e0d39833a0

new CompilerGraph, create only one Return and one Unwind per CompilerGraph
author Lukas Stadler <lukas.stadler@jku.at>
date Tue, 31 May 2011 16:53:19 +0200
parents 706047ee5f2e
children
line wrap: on
line diff
--- a/graal/GraalCompiler/src/com/sun/c1x/graph/BlockMap.java	Tue May 31 13:42:01 2011 +0200
+++ b/graal/GraalCompiler/src/com/sun/c1x/graph/BlockMap.java	Tue May 31 16:53:19 2011 +0200
@@ -401,15 +401,6 @@
 
     private ExceptionBlock unwindBlock;
 
-    private ExceptionBlock makeUnwind() {
-        if (unwindBlock == null) {
-            unwindBlock = new ExceptionBlock();
-            unwindBlock.startBci = -1;
-            unwindBlock.endBci = -1;
-        }
-        return unwindBlock;
-    }
-
     private Block makeExceptionDispatch(List<RiExceptionHandler> handlers, int index) {
         RiExceptionHandler handler = handlers.get(index);
         if (handler.isCatchAll()) {
@@ -422,14 +413,10 @@
             block.endBci = -1;
             block.handler = handler;
             block.successors.add(blockMap[handler.handlerBCI()]);
-            Block next;
             if (index < handlers.size() - 1) {
-                next = makeExceptionDispatch(handlers, index + 1);
-            } else {
-                next = makeUnwind();
+                block.next = makeExceptionDispatch(handlers, index + 1);
+                block.successors.add(block.next);
             }
-            block.successors.add(next);
-            block.next = next;
             exceptionDispatch.put(handler, block);
         }
         return block;