# HG changeset patch # User Thomas Wuerthinger # Date 1423773458 -3600 # Node ID ae87324c37d60db88f0a7cddb29decabd931c1b4 # Parent 833d0361c3e2a31d3b044066a18b1bda6a8a1091 Do not extend AbstractBlockBase with BciBlock. diff -r 833d0361c3e2 -r ae87324c37d6 graal/com.oracle.graal.java/src/com/oracle/graal/java/AbstractBytecodeParser.java --- a/graal/com.oracle.graal.java/src/com/oracle/graal/java/AbstractBytecodeParser.java Thu Feb 12 21:27:06 2015 +0100 +++ b/graal/com.oracle.graal.java/src/com/oracle/graal/java/AbstractBytecodeParser.java Thu Feb 12 21:37:38 2015 +0100 @@ -842,9 +842,9 @@ Map bciToBlockSuccessorIndex = new HashMap<>(); for (int i = 0; i < currentBlock.getSuccessorCount(); i++) { - assert !bciToBlockSuccessorIndex.containsKey(currentBlock.getSuccessors().get(i).startBci); - if (!bciToBlockSuccessorIndex.containsKey(currentBlock.getSuccessors().get(i).startBci)) { - bciToBlockSuccessorIndex.put(currentBlock.getSuccessors().get(i).startBci, new SuccessorInfo(i)); + assert !bciToBlockSuccessorIndex.containsKey(currentBlock.getSuccessor(i).startBci); + if (!bciToBlockSuccessorIndex.containsKey(currentBlock.getSuccessor(i).startBci)) { + bciToBlockSuccessorIndex.put(currentBlock.getSuccessor(i).startBci, new SuccessorInfo(i)); } } @@ -869,7 +869,7 @@ SuccessorInfo info = bciToBlockSuccessorIndex.get(targetBci); if (info.actualIndex < 0) { info.actualIndex = nextSuccessorIndex++; - actualSuccessors.add(currentBlock.getSuccessors().get(info.blockIndex)); + actualSuccessors.add(currentBlock.getSuccessor(info.blockIndex)); } keySuccessors[i] = info.actualIndex; } diff -r 833d0361c3e2 -r ae87324c37d6 graal/com.oracle.graal.java/src/com/oracle/graal/java/BciBlockMapping.java --- a/graal/com.oracle.graal.java/src/com/oracle/graal/java/BciBlockMapping.java Thu Feb 12 21:27:06 2015 +0100 +++ b/graal/com.oracle.graal.java/src/com/oracle/graal/java/BciBlockMapping.java Thu Feb 12 21:37:38 2015 +0100 @@ -31,7 +31,6 @@ import com.oracle.graal.api.meta.*; import com.oracle.graal.bytecode.*; import com.oracle.graal.compiler.common.*; -import com.oracle.graal.compiler.common.cfg.*; import com.oracle.graal.debug.*; import com.oracle.graal.debug.Debug.Scope; import com.oracle.graal.nodes.*; @@ -75,20 +74,16 @@ */ public final class BciBlockMapping { - public static class BciBlock extends AbstractBlockBase implements Cloneable { + public static class BciBlock implements Cloneable { + protected int id; public int startBci; public int endBci; public boolean isExceptionEntry; public boolean isLoopHeader; public int loopId; public int loopEnd; - - /** - * XXX to be removed - currently only used by baseline compiler. - */ - public Loop loop; - public boolean isLoopEnd; + protected List successors; private FixedWithNextNode firstInstruction; private AbstractFrameStateBuilder entryState; @@ -128,6 +123,10 @@ return null; } + public int getId() { + return id; + } + public int numNormalSuccessors() { if (exceptionDispatchBlock() != null) { return successors.size() - 1; @@ -165,14 +164,6 @@ return sb.toString(); } - public Loop getLoop() { - return loop; - } - - public void setLoop(Loop loop) { - this.loop = loop; - } - public int getLoopDepth() { return Long.bitCount(loops); } @@ -181,10 +172,6 @@ return isLoopHeader; } - public boolean isLoopEnd() { - return isLoopEnd; - } - public boolean isExceptionEntry() { return isExceptionEntry; } @@ -392,6 +379,18 @@ entryStateArray[dimension - 1] = entryState; } } + + public int getSuccessorCount() { + return successors.size(); + } + + public List getSuccessors() { + return successors; + } + + public void setId(int i) { + this.id = i; + } } public static class ExceptionDispatchBlock extends BciBlock { @@ -976,7 +975,6 @@ loops |= computeBlockOrder(successor); if (successor.active) { // Reached block via backward branch. - block.isLoopEnd = true; loops |= (1L << successor.loopId); } }