changeset 15928:9c209d76d72d

LSRA Optimization: walk basic block boundaries.
author Josef Eisl <josef.eisl@jku.at>
date Mon, 26 May 2014 09:32:51 +0200
parents 96229f219351
children 8da4ff90fb7f
files graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/alloc/OptimizingLinearScanWalker.java
diffstat 1 files changed, 13 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/alloc/OptimizingLinearScanWalker.java	Mon May 26 09:29:51 2014 +0200
+++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/alloc/OptimizingLinearScanWalker.java	Mon May 26 09:32:51 2014 +0200
@@ -22,6 +22,9 @@
  */
 package com.oracle.graal.compiler.alloc;
 
+import com.oracle.graal.compiler.common.cfg.*;
+import com.oracle.graal.debug.*;
+import com.oracle.graal.debug.Debug.Scope;
 import com.oracle.graal.options.*;
 
 public class OptimizingLinearScanWalker extends LinearScanWalker {
@@ -37,4 +40,14 @@
         super(allocator, unhandledFixedFirst, unhandledAnyFirst);
     }
 
+    @Override
+    void walk() {
+        try (Scope s = Debug.scope("OptimizingLinearScanWalker")) {
+            for (AbstractBlock<?> block : allocator.sortedBlocks) {
+                int nextBlock = allocator.getFirstLirInstructionId(block);
+                walkTo(nextBlock);
+            }
+        }
+        super.walk();
+    }
 }