Mercurial > hg > truffle
comparison graal/GraalCompiler/src/com/sun/c1x/ir/BlockBegin.java @ 2603:01c5c0443158
new node layout: Phi
author | Lukas Stadler <lukas.stadler@jku.at> |
---|---|
date | Fri, 06 May 2011 11:18:15 +0200 |
parents | 0c6564c254af |
children | 39aa89baa165 |
comparison
equal
deleted
inserted
replaced
2602:0c6564c254af | 2603:01c5c0443158 |
---|---|
441 | 441 |
442 if (wasVisited() && !isParserLoopHeader()) { | 442 if (wasVisited() && !isParserLoopHeader()) { |
443 throw new CiBailout("jsr/ret too complicated"); | 443 throw new CiBailout("jsr/ret too complicated"); |
444 } | 444 } |
445 | 445 |
446 existingState.merge(this, newState); | 446 existingState.merge(this, newState, graph()); |
447 } | 447 } |
448 } | 448 } |
449 | 449 |
450 private void invalidateDeadLocals(FrameState newState, CiBitMap liveness) { | 450 private void invalidateDeadLocals(FrameState newState, CiBitMap liveness) { |
451 int max = newState.localsSize(); | 451 int max = newState.localsSize(); |
463 | 463 |
464 private void insertLoopPhis(FrameState newState) { | 464 private void insertLoopPhis(FrameState newState) { |
465 int stackSize = newState.stackSize(); | 465 int stackSize = newState.stackSize(); |
466 for (int i = 0; i < stackSize; i++) { | 466 for (int i = 0; i < stackSize; i++) { |
467 // always insert phis for the stack | 467 // always insert phis for the stack |
468 newState.setupPhiForStack(this, i); | 468 newState.setupPhiForStack(this, i, graph()); |
469 } | 469 } |
470 int localsSize = newState.localsSize(); | 470 int localsSize = newState.localsSize(); |
471 for (int i = 0; i < localsSize; i++) { | 471 for (int i = 0; i < localsSize; i++) { |
472 Value x = newState.localAt(i); | 472 Value x = newState.localAt(i); |
473 if (x != null) { | 473 if (x != null) { |
474 newState.setupPhiForLocal(this, i); | 474 newState.setupPhiForLocal(this, i, graph()); |
475 } | 475 } |
476 } | 476 } |
477 } | 477 } |
478 | 478 |
479 public boolean isStandardEntry() { | 479 public boolean isStandardEntry() { |