Mercurial > hg > graal-compiler
comparison graal/GraalCompiler/src/com/sun/c1x/value/FrameStateBuilder.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 | bfce42cd9c07 |
children | 7596ae867a7b |
comparison
equal
deleted
inserted
replaced
2837:7b5831f0e913 | 2840:75e0d39833a0 |
---|---|
100 return new FrameState(bci, locals, stack, stackIndex, locks, graph); | 100 return new FrameState(bci, locals, stack, stackIndex, locks, graph); |
101 } | 101 } |
102 | 102 |
103 @Override | 103 @Override |
104 public FrameState duplicateWithEmptyStack(int bci) { | 104 public FrameState duplicateWithEmptyStack(int bci) { |
105 return new FrameState(bci, locals, new Value[0], 0, locks, graph); | 105 FrameState frameState = new FrameState(bci, locals, new Value[0], 0, locks, graph); |
106 frameState.setOuterFrameState(outerFrameState()); | |
107 return frameState; | |
106 } | 108 } |
107 | 109 |
108 /** | 110 /** |
109 * Pushes an instruction onto the stack with the expected type. | 111 * Pushes an instruction onto the stack with the expected type. |
110 * @param kind the type expected for this instruction | 112 * @param kind the type expected for this instruction |
359 * @param scope the IRScope in which this locking operation occurs | 361 * @param scope the IRScope in which this locking operation occurs |
360 * @param obj the object being locked | 362 * @param obj the object being locked |
361 */ | 363 */ |
362 public void lock(IR ir, Value obj, int totalNumberOfLocks) { | 364 public void lock(IR ir, Value obj, int totalNumberOfLocks) { |
363 locks.add(obj); | 365 locks.add(obj); |
364 ir.updateMaxLocks(totalNumberOfLocks); | |
365 } | 366 } |
366 | 367 |
367 /** | 368 /** |
368 * Unlock the lock on the top of the stack. | 369 * Unlock the lock on the top of the stack. |
369 */ | 370 */ |
494 } else { | 495 } else { |
495 locks.set(i - locals.length - stack.length, v); | 496 locks.set(i - locals.length - stack.length, v); |
496 } | 497 } |
497 } | 498 } |
498 | 499 |
500 @Override | |
501 public Value outerFrameState() { | |
502 return null; | |
503 } | |
499 } | 504 } |