changeset 19333:ae87324c37d6

Do not extend AbstractBlockBase with BciBlock.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Thu, 12 Feb 2015 21:37:38 +0100
parents 833d0361c3e2
children 0e4449e992c6
files graal/com.oracle.graal.java/src/com/oracle/graal/java/AbstractBytecodeParser.java graal/com.oracle.graal.java/src/com/oracle/graal/java/BciBlockMapping.java
diffstat 2 files changed, 23 insertions(+), 25 deletions(-) [+]
line wrap: on
line diff
--- 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<Integer, SuccessorInfo> 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;
             }
--- 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<BciBlock> 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<BciBlock> loop;
-        public boolean isLoopEnd;
+        protected List<BciBlock> 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<BciBlock> getLoop() {
-            return loop;
-        }
-
-        public void setLoop(Loop<BciBlock> 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<BciBlock> 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);
             }
         }