changeset 21331:45ff3423d4c4

LinearScan: call sortIntervalsBeforeAllocation in allocate().
author Josef Eisl <josef.eisl@jku.at>
date Tue, 12 May 2015 13:22:25 +0200
parents e35311c60c84
children 6c1a3a2d6fb9
files graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/lsra/LinearScan.java
diffstat 1 files changed, 3 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/lsra/LinearScan.java	Tue May 12 13:19:01 2015 +0200
+++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/lsra/LinearScan.java	Tue May 12 13:22:25 2015 +0200
@@ -1020,6 +1020,9 @@
             AllocationContext context = new AllocationContext(spillMoveFactory);
 
             createLifetimeAnalysisPhase().apply(target, lirGenRes, codeEmittingOrder, linearScanOrder, context, false);
+
+            sortIntervalsBeforeAllocation();
+
             createRegisterAllocationPhase().apply(target, lirGenRes, codeEmittingOrder, linearScanOrder, context, false);
 
             if (LinearScan.Options.LSRAOptimizeSpillPosition.getValue()) {
@@ -1071,7 +1074,6 @@
         @Override
         protected <B extends AbstractBlockBase<B>> void run(TargetDescription target, LIRGenerationResult lirGenRes, List<B> codeEmittingOrder, List<B> linearScanOrder,
                         SpillMoveFactory spillMoveFactory) {
-            sortIntervalsBeforeAllocation();
             printIntervals("Before register allocation");
             allocateRegisters();
             printIntervals("After register allocation");