diff graal/GraalCompiler/src/com/sun/c1x/lir/LIRDebugInfo.java @ 2707:7ed72769d51a

exception handling related changes: * changed blockPredecessors to list of Instructions, instead of Blocks * removed explicit predecessor management in BlockBegin, now using predecessors from Graph structure * replaced generated LIR exception entries with exception dispatch chains in IR * added Unwind and ExceptionDispatch instructions * removed ExceptionEntry flag in BlockBegin and all code depending on it * removed exceptionHandler list from Instruction, replaced by exception Edge on Invoke and Throw * replaced list of ExceptionHandlers with single exception edge in debug info misc: * changed GraphvizPrinter layout (smaller ports on large nodes) * removed defunct run config
author Lukas Stadler <lukas.stadler@jku.at>
date Wed, 18 May 2011 18:09:20 +0200
parents 16b9a8b5ad39
children a0dd2b907806
line wrap: on
line diff
--- a/graal/GraalCompiler/src/com/sun/c1x/lir/LIRDebugInfo.java	Fri May 13 17:09:20 2011 -0700
+++ b/graal/GraalCompiler/src/com/sun/c1x/lir/LIRDebugInfo.java	Wed May 18 18:09:20 2011 +0200
@@ -31,10 +31,6 @@
 
 /**
  * This class represents debugging and deoptimization information attached to a LIR instruction.
- *
- * @author Marcelo Cintra
- * @author Thomas Wuerthinger
- * @author Ben L. Titzer
  */
 public class LIRDebugInfo {
 
@@ -43,27 +39,18 @@
     }
 
     public final FrameState state;
-    public final List<ExceptionHandler> exceptionHandlers;
+    public final BlockBegin exceptionEdge;
     public CiDebugInfo debugInfo;
 
-    public LIRDebugInfo(FrameState state, List<ExceptionHandler> exceptionHandlers) {
+    public LIRDebugInfo(FrameState state, BlockBegin exceptionEdge) {
         assert state != null;
         this.state = state;
-        this.exceptionHandlers = exceptionHandlers;
+        this.exceptionEdge = exceptionEdge;
     }
 
     private LIRDebugInfo(LIRDebugInfo info) {
         this.state = info.state;
-
-        // deep copy of exception handlers
-        if (info.exceptionHandlers != null) {
-            this.exceptionHandlers = new ArrayList<ExceptionHandler>(info.exceptionHandlers.size());
-            for (ExceptionHandler h : info.exceptionHandlers) {
-                this.exceptionHandlers.add(new ExceptionHandler(h));
-            }
-        } else {
-            this.exceptionHandlers = null;
-        }
+        this.exceptionEdge = info.exceptionEdge;
     }
 
     public LIRDebugInfo copy() {