comparison graal/GraalCompiler/src/com/sun/c1x/ir/BlockBegin.java @ 2622:91d3952f7eb7

Framestate work : using stateAFter and reducting the number of nodes with framestates. Intermediate state (does not pass tests)
author Gilles Duboscq <gilles.duboscq@oracle.com>
date Tue, 10 May 2011 12:37:46 +0200
parents dd115f80acf8
children 62ff4a70f07e
comparison
equal deleted inserted replaced
2621:dd115f80acf8 2622:91d3952f7eb7
58 } 58 }
59 59
60 /** 60 /**
61 * The frame state before execution of the first instruction in this block. 61 * The frame state before execution of the first instruction in this block.
62 */ 62 */
63 @Override
64 public FrameState stateBefore() { 63 public FrameState stateBefore() {
65 return (FrameState) inputs().get(super.inputCount() + INPUT_STATE_BEFORE); 64 return (FrameState) inputs().get(super.inputCount() + INPUT_STATE_BEFORE);
66 } 65 }
67 66
68 public FrameState setStateBefore(FrameState n) { 67 public FrameState setStateBefore(FrameState n) {
126 /** 125 /**
127 * Denotes the current set of {@link BlockBegin.BlockFlag} settings. 126 * Denotes the current set of {@link BlockBegin.BlockFlag} settings.
128 */ 127 */
129 private int blockFlags; 128 private int blockFlags;
130 129
130 private FrameState stateAfter;
131
131 /** 132 /**
132 * The {@link BlockBegin} nodes for which this node is a successor. 133 * The {@link BlockBegin} nodes for which this node is a successor.
133 */ 134 */
134 private final List<BlockBegin> predecessors; 135 private final List<BlockBegin> predecessors;
135 136
213 * Gets the loop index of this block. 214 * Gets the loop index of this block.
214 * @return the loop index 215 * @return the loop index
215 */ 216 */
216 public int loopIndex() { 217 public int loopIndex() {
217 return loopIndex; 218 return loopIndex;
219 }
220
221 public void setStateAfter(FrameState stateAfter) {
222 this.stateAfter = stateAfter;
223 }
224
225 @Override
226 public FrameState stateAfter() {
227 return stateAfter;
218 } 228 }
219 229
220 /** 230 /**
221 * Gets the exception handlers that cover one or more instructions of this basic block. 231 * Gets the exception handlers that cover one or more instructions of this basic block.
222 * 232 *