changeset 2723:173067211acb

Removed two more BlockBegin flags.
author Thomas Wuerthinger <thomas@wuerthinger.net>
date Thu, 19 May 2011 16:44:05 +0200
parents 23d0bcfa3c84
children e2d20fc3760f
files graal/GraalCompiler/src/com/sun/c1x/debug/CFGPrinter.java graal/GraalCompiler/src/com/sun/c1x/graph/IR.java graal/GraalCompiler/src/com/sun/c1x/ir/BlockBegin.java graal/GraalCompiler/src/com/sun/c1x/ir/ComputeLinearScanOrder.java
diffstat 4 files changed, 4 insertions(+), 60 deletions(-) [+]
line wrap: on
line diff
--- a/graal/GraalCompiler/src/com/sun/c1x/debug/CFGPrinter.java	Thu May 19 16:39:54 2011 +0200
+++ b/graal/GraalCompiler/src/com/sun/c1x/debug/CFGPrinter.java	Thu May 19 16:44:05 2011 +0200
@@ -148,12 +148,6 @@
         out.println();
 
         out.print("flags ");
-        if (block.isLinearScanLoopHeader()) {
-            out.print("\"llh\" ");
-        }
-        if (block.isLinearScanLoopEnd()) {
-            out.print("\"lle\" ");
-        }
         out.println();
 
         out.print("loop_index ").println(-1);
--- a/graal/GraalCompiler/src/com/sun/c1x/graph/IR.java	Thu May 19 16:39:54 2011 +0200
+++ b/graal/GraalCompiler/src/com/sun/c1x/graph/IR.java	Thu May 19 16:44:05 2011 +0200
@@ -118,12 +118,7 @@
                 LIRBlock lirBlock = new LIRBlock(bb.blockID);
                 bb.setLIRBlock(lirBlock);
                 lirBlock.setLinearScanNumber(bb.linearScanNumber());
-                if (bb.isLinearScanLoopHeader()) {
-                    lirBlock.setLinearScanLoopHeader();
-                }
-                if (bb.isLinearScanLoopEnd()) {
-                    lirBlock.setLinearScanLoopEnd();
-                }
+                // TODO(tw): Initialize LIRBlock.linearScanLoopHeader and LIRBlock.linearScanLoopEnd
                 lirBlock.setStateBefore(bb.stateBefore());
                 orderedBlocks.add(lirBlock);
             }
--- a/graal/GraalCompiler/src/com/sun/c1x/ir/BlockBegin.java	Thu May 19 16:39:54 2011 +0200
+++ b/graal/GraalCompiler/src/com/sun/c1x/ir/BlockBegin.java	Thu May 19 16:44:05 2011 +0200
@@ -80,9 +80,7 @@
      * An enumeration of flags for block entries indicating various things.
      */
     public enum BlockFlag {
-        ParserLoopHeader,
-        LinearScanLoopHeader,
-        LinearScanLoopEnd;
+        ParserLoopHeader;
 
         public final int mask = 1 << ordinal();
     }
@@ -402,14 +400,6 @@
         setBlockFlag(BlockFlag.ParserLoopHeader, value);
     }
 
-    public boolean isLinearScanLoopHeader() {
-        return checkBlockFlag(BlockFlag.LinearScanLoopHeader);
-    }
-
-    public boolean isLinearScanLoopEnd() {
-        return checkBlockFlag(BlockFlag.LinearScanLoopEnd);
-    }
-
     private void setBlockFlag(BlockFlag flag, boolean value) {
         if (value) {
             setBlockFlag(flag);
--- a/graal/GraalCompiler/src/com/sun/c1x/ir/ComputeLinearScanOrder.java	Thu May 19 16:39:54 2011 +0200
+++ b/graal/GraalCompiler/src/com/sun/c1x/ir/ComputeLinearScanOrder.java	Thu May 19 16:44:05 2011 +0200
@@ -143,9 +143,9 @@
             assert isVisited(cur) : "block must be visited when block is active";
             assert parent != null : "must have parent";
 
-            cur.setBlockFlag(BlockBegin.BlockFlag.LinearScanLoopHeader);
+            //cur.setBlockFlag(BlockBegin.BlockFlag.LinearScanLoopHeader);
 
-            parent.setBlockFlag(BlockBegin.BlockFlag.LinearScanLoopEnd);
+            //parent.setBlockFlag(BlockBegin.BlockFlag.LinearScanLoopEnd);
 
             loopEndBlocks.add(parent);
             return;
@@ -191,21 +191,6 @@
 
         int curBit = 15;
 
-        // this is necessary for the (very rare) case that two successive blocks have
-        // the same loop depth, but a different loop index (can happen for endless loops
-        // with exception handlers)
-        if (!cur.isLinearScanLoopHeader()) {
-            weight |= (1 << curBit);
-        }
-        curBit--;
-
-        // loop end blocks (blocks that end with a backward branch) are added
-        // after all other blocks of the loop.
-        if (!cur.isLinearScanLoopEnd()) {
-            weight |= (1 << curBit);
-        }
-        curBit--;
-
         // exceptions should not be thrown in normal control flow, so these blocks
         // are added as late as possible
         if (!(cur.end() instanceof Throw) && (singleSux == null || !(singleSux.end() instanceof Throw))) {
@@ -318,25 +303,11 @@
     }
 
     public void printBlocks() {
-        if (C1XOptions.TraceLinearScanLevel >= 2) {
-            TTY.println("----- loop information:");
-            for (BlockBegin cur : linearScanOrder) {
-                TTY.print(String.format("%4d: B%02d: ", cur.linearScanNumber(), cur.blockID));
-//                for (int loopIdx = 0; loopIdx < numLoops; loopIdx++) {
-//                    TTY.print(String.format("%d = %b ", loopIdx, isBlockInLoop(loopIdx, cur)));
-//                }
-                TTY.println(String.format(" . loopIndex: %2d, loopDepth: %2d", -1, -1));
-            }
-        }
-
         if (C1XOptions.TraceLinearScanLevel >= 1) {
             TTY.println("----- linear-scan block order:");
             for (BlockBegin cur : linearScanOrder) {
                 TTY.print(String.format("%4d: B%02d    loop: %2d  depth: %2d", cur.linearScanNumber(), cur.blockID, -1, -1));
 
-                TTY.print(cur.isLinearScanLoopHeader() ? " lh" : "   ");
-                TTY.print(cur.isLinearScanLoopEnd() ? " le" : "   ");
-
                 if (cur.numberOfPreds() > 0) {
                     TTY.print("    preds: ");
                     for (int j = 0; j < cur.numberOfPreds(); j++) {
@@ -376,17 +347,11 @@
 
             for (BlockBegin sux : cur.end().blockSuccessors()) {
                 assert sux.linearScanNumber() >= 0 && sux.linearScanNumber() == linearScanOrder.indexOf(sux) : "incorrect linearScanNumber";
-                if (!cur.checkBlockFlag(BlockBegin.BlockFlag.LinearScanLoopEnd)) {
-                    assert cur.linearScanNumber() < sux.linearScanNumber() : "invalid order";
-                }
             }
 
             for (Instruction pred : cur.blockPredecessors()) {
                 BlockBegin begin = pred.block();
                 assert begin.linearScanNumber() >= 0 && begin.linearScanNumber() == linearScanOrder.indexOf(begin) : "incorrect linearScanNumber";
-                if (!cur.checkBlockFlag(BlockBegin.BlockFlag.LinearScanLoopHeader)) {
-                    assert cur.linearScanNumber() > begin.linearScanNumber() : "invalid order";
-                }
             }
         }