Mercurial > hg > graal-compiler
changeset 6692:349127dc59de
fix for bug in GraphBuilderPhase (which caused a NPE in insertLoopProxies)
author | Lukas Stadler <lukas.stadler@jku.at> |
---|---|
date | Fri, 09 Nov 2012 16:11:12 +0100 |
parents | 9611d0ccb4ec |
children | 75785a8ba5a3 |
files | graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java |
diffstat | 1 files changed, 6 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java Fri Nov 09 15:23:35 2012 +0100 +++ b/graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java Fri Nov 09 16:11:12 2012 +0100 @@ -173,11 +173,16 @@ // finish the start block ((StateSplit) lastInstr).setStateAfter(frameState.create(0)); + + currentBlock = blockMap.startBlock; + blockMap.startBlock.entryState = frameState; if (blockMap.startBlock.isLoopHeader) { + // TODO(lstadler,gduboscq) createTarget might not be safe at this position, since it expects currentBlock, + // etc. to be set up correctly. A better solution to this problem of start blocks that are loop headers + // would be to create a dummy block in BciBlockMapping. appendGoto(createTarget(blockMap.startBlock, frameState)); } else { blockMap.startBlock.firstInstruction = lastInstr; - blockMap.startBlock.entryState = frameState; } for (Block block : blockMap.blocks) {