Mercurial > hg > graal-compiler
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()) {