Mercurial > hg > graal-compiler
comparison graal/GraalCompiler/src/com/sun/c1x/ir/Instruction.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 | 0f69be73d5ce |
children | a0dd2b907806 |
comparison
equal
deleted
inserted
replaced
2677:0ea5f12e873a | 2707:7ed72769d51a |
---|---|
76 /** | 76 /** |
77 * Index of bytecode that generated this node when appended in a basic block. | 77 * Index of bytecode that generated this node when appended in a basic block. |
78 * Negative values indicate special cases. | 78 * Negative values indicate special cases. |
79 */ | 79 */ |
80 private int bci; | 80 private int bci; |
81 | |
82 /** | |
83 * List of associated exception handlers. | |
84 */ | |
85 private List<ExceptionHandler> exceptionHandlers = ExceptionHandler.ZERO_HANDLERS; | |
86 | 81 |
87 private boolean isAppended = false; | 82 private boolean isAppended = false; |
88 | 83 |
89 /** | 84 /** |
90 * Constructs a new instruction with the specified value type. | 85 * Constructs a new instruction with the specified value type. |
183 } | 178 } |
184 return ((BlockEnd) cur).begin(); | 179 return ((BlockEnd) cur).begin(); |
185 } | 180 } |
186 | 181 |
187 /** | 182 /** |
188 * Gets the list of exception handlers associated with this instruction. | |
189 * @return the list of exception handlers for this instruction | |
190 */ | |
191 public final List<ExceptionHandler> exceptionHandlers() { | |
192 return exceptionHandlers; | |
193 } | |
194 | |
195 /** | |
196 * Sets the list of exception handlers for this instruction. | |
197 * @param exceptionHandlers the exception handlers | |
198 */ | |
199 public final void setExceptionHandlers(List<ExceptionHandler> exceptionHandlers) { | |
200 this.exceptionHandlers = exceptionHandlers; | |
201 } | |
202 | |
203 /** | |
204 * Compute the value number of this Instruction. Local and global value numbering | 183 * Compute the value number of this Instruction. Local and global value numbering |
205 * optimizations use a hash map, and the value number provides a hash code. | 184 * optimizations use a hash map, and the value number provides a hash code. |
206 * If the instruction cannot be value numbered, then this method should return | 185 * If the instruction cannot be value numbered, then this method should return |
207 * {@code 0}. | 186 * {@code 0}. |
208 * @return the hashcode of this instruction | 187 * @return the hashcode of this instruction |
245 * @return the state after the instruction | 224 * @return the state after the instruction |
246 */ | 225 */ |
247 public FrameState stateAfter() { | 226 public FrameState stateAfter() { |
248 return null; | 227 return null; |
249 } | 228 } |
229 | |
230 public BlockBegin exceptionEdge() { | |
231 return null; | |
232 } | |
250 } | 233 } |