Mercurial > hg > graal-compiler
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() {