Mercurial > hg > graal-compiler
changeset 23037:a54b0edb0aea
Skip over empty block targets for parsing time constant conditional jumps.
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Fri, 20 Nov 2015 00:43:44 +0100 |
parents | b2243b94f6c1 |
children | 71bb0eb7b094 |
files | graal/com.oracle.graal.java/src/com/oracle/graal/java/BytecodeParser.java |
diffstat | 1 files changed, 9 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.java/src/com/oracle/graal/java/BytecodeParser.java Fri Nov 20 00:36:25 2015 +0100 +++ b/graal/com.oracle.graal.java/src/com/oracle/graal/java/BytecodeParser.java Fri Nov 20 00:43:44 2015 +0100 @@ -2909,7 +2909,15 @@ if (value) { nextBlock = trueBlock; } - appendGoto(nextBlock); + int startBci = nextBlock.startBci; + int targetAtStart = stream.readUByte(startBci); + if (targetAtStart == Bytecodes.GOTO) { + // This is an empty block. Skip it. + appendGoto(nextBlock.successors.get(0)); + assert nextBlock.numNormalSuccessors() == 1; + } else { + appendGoto(nextBlock); + } } private int checkPositiveIntConstantPushed(BciBlock block) {