changeset 21203:9f45587ad8f5

LinearScan: add createMoveResolver().
author Josef Eisl <josef.eisl@jku.at>
date Wed, 29 Apr 2015 17:16:53 +0200
parents a03e95b6d629
children 4a5df5570b7f
files graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/lsra/LinearScan.java graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/lsra/LinearScanWalker.java graal/com.oracle.graal.lir/src/com/oracle/graal/lir/gen/PhiResolver.java
diffstat 2 files changed, 6 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/lsra/LinearScan.java	Mon Apr 27 16:26:14 2015 +0200
+++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/lsra/LinearScan.java	Wed Apr 29 17:16:53 2015 +0200
@@ -200,6 +200,10 @@
         return spillMoveFactory;
     }
 
+    protected MoveResolver createMoveResolver() {
+        return new MoveResolver(this);
+    }
+
     public static boolean isVariableOrRegister(Value value) {
         return isVariable(value) || isRegister(value);
     }
@@ -1519,7 +1523,7 @@
         try (Indent indent = Debug.logAndIndent("resolve data flow")) {
 
             int numBlocks = blockCount();
-            MoveResolver moveResolver = new MoveResolver(this);
+            MoveResolver moveResolver = createMoveResolver();
             BitSet blockCompleted = new BitSet(numBlocks);
             BitSet alreadyResolved = new BitSet(numBlocks);
 
--- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/lsra/LinearScanWalker.java	Mon Apr 27 16:26:14 2015 +0200
+++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/lsra/LinearScanWalker.java	Wed Apr 29 17:16:53 2015 +0200
@@ -74,7 +74,7 @@
     LinearScanWalker(LinearScan allocator, Interval unhandledFixedFirst, Interval unhandledAnyFirst) {
         super(allocator, unhandledFixedFirst, unhandledAnyFirst);
 
-        moveResolver = new MoveResolver(allocator);
+        moveResolver = allocator.createMoveResolver();
         spillIntervals = Util.uncheckedCast(new List[allocator.registers.length]);
         for (int i = 0; i < allocator.registers.length; i++) {
             spillIntervals[i] = EMPTY_LIST;