changeset 22304:eb34ba95ec39

LinearScanWalker: add RegisterPriority to spillCollectActiveAny.
author Josef Eisl <josef.eisl@jku.at>
date Tue, 21 Jul 2015 17:03:54 +0200
parents 7ddff90cca15
children d56555c627ac
files graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/lsra/LinearScanWalker.java graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/lsra/OptimizingLinearScanWalker.java
diffstat 2 files changed, 8 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/lsra/LinearScanWalker.java	Tue Jul 21 11:36:41 2015 +0200
+++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/lsra/LinearScanWalker.java	Tue Jul 21 17:03:54 2015 +0200
@@ -237,10 +237,10 @@
         }
     }
 
-    void spillCollectActiveAny() {
+    void spillCollectActiveAny(RegisterPriority registerPriority) {
         Interval interval = activeLists.get(RegisterBinding.Any);
         while (interval != Interval.EndMarker) {
-            setUsePos(interval, Math.min(interval.nextUsage(RegisterPriority.LiveAtLoopEnd, currentPosition), interval.to()), false);
+            setUsePos(interval, Math.min(interval.nextUsage(registerPriority, currentPosition), interval.to()), false);
             interval = interval.next;
         }
     }
@@ -777,7 +777,7 @@
             // spillBlockUnhandledFixed(cur);
             assert unhandledLists.get(RegisterBinding.Fixed) == Interval.EndMarker : "must not have unhandled fixed intervals because all fixed intervals have a use at position 0";
             spillBlockInactiveFixed(interval);
-            spillCollectActiveAny();
+            spillCollectActiveAny(RegisterPriority.LiveAtLoopEnd);
             spillCollectInactiveAny(interval);
 
             if (Debug.isLogEnabled()) {
--- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/lsra/OptimizingLinearScanWalker.java	Tue Jul 21 11:36:41 2015 +0200
+++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/lsra/OptimizingLinearScanWalker.java	Tue Jul 21 17:03:54 2015 +0200
@@ -22,16 +22,17 @@
  */
 package com.oracle.graal.lir.alloc.lsra;
 
+import static jdk.internal.jvmci.code.ValueUtil.*;
 import jdk.internal.jvmci.code.*;
-import com.oracle.graal.debug.*;
-import com.oracle.graal.debug.Debug.*;
 import jdk.internal.jvmci.meta.*;
 import jdk.internal.jvmci.options.*;
-import static jdk.internal.jvmci.code.ValueUtil.*;
 
 import com.oracle.graal.compiler.common.cfg.*;
+import com.oracle.graal.debug.*;
+import com.oracle.graal.debug.Debug.Scope;
 import com.oracle.graal.lir.alloc.lsra.Interval.RegisterBinding;
 import com.oracle.graal.lir.alloc.lsra.Interval.RegisterBindingLists;
+import com.oracle.graal.lir.alloc.lsra.Interval.RegisterPriority;
 import com.oracle.graal.lir.alloc.lsra.Interval.State;
 
 public class OptimizingLinearScanWalker extends LinearScanWalker {
@@ -209,7 +210,7 @@
         // spillBlockUnhandledFixed(cur);
         assert unhandledLists.get(RegisterBinding.Fixed) == Interval.EndMarker : "must not have unhandled fixed intervals because all fixed intervals have a use at position 0";
         spillBlockInactiveFixed(interval);
-        spillCollectActiveAny();
+        spillCollectActiveAny(RegisterPriority.LiveAtLoopEnd);
         spillCollectInactiveAny(interval);
 
         if (Debug.isLogEnabled()) {