# HG changeset patch # User Josef Eisl # Date 1437401442 -7200 # Node ID bbfbb5613a620c40ddcce86259b486ef933816aa # Parent e743cde3ff3ac60546d117fd61bc65114be53c5a LinearScan: pass block order to constructor. diff -r e743cde3ff3a -r bbfbb5613a62 graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/lsra/LinearScan.java --- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/lsra/LinearScan.java Tue Jul 21 10:55:01 2015 +0200 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/lsra/LinearScan.java Mon Jul 20 16:10:42 2015 +0200 @@ -152,12 +152,12 @@ */ private final int firstVariableNumber; - LinearScan(TargetDescription target, LIRGenerationResult res, SpillMoveFactory spillMoveFactory, RegisterAllocationConfig regAllocConfig) { + LinearScan(TargetDescription target, LIRGenerationResult res, SpillMoveFactory spillMoveFactory, RegisterAllocationConfig regAllocConfig, List> sortedBlocks) { this.res = res; this.ir = res.getLIR(); this.moveFactory = spillMoveFactory; this.frameMapBuilder = res.getFrameMapBuilder(); - this.sortedBlocks = ir.linearScanOrder(); + this.sortedBlocks = sortedBlocks; this.registerAttributes = regAllocConfig.getRegisterConfig().getAttributesMap(); this.regAllocConfig = regAllocConfig; diff -r e743cde3ff3a -r bbfbb5613a62 graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/lsra/LinearScanPhase.java --- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/lsra/LinearScanPhase.java Tue Jul 21 10:55:01 2015 +0200 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/lsra/LinearScanPhase.java Mon Jul 20 16:10:42 2015 +0200 @@ -53,9 +53,9 @@ RegisterAllocationConfig registerAllocationConfig) { final LinearScan allocator; if (LinearScanPhase.SSA_LSRA.getValue()) { - allocator = new SSALinearScan(target, lirGenRes, spillMoveFactory, registerAllocationConfig); + allocator = new SSALinearScan(target, lirGenRes, spillMoveFactory, registerAllocationConfig, linearScanOrder); } else { - allocator = new LinearScan(target, lirGenRes, spillMoveFactory, registerAllocationConfig); + allocator = new LinearScan(target, lirGenRes, spillMoveFactory, registerAllocationConfig, linearScanOrder); } allocator.allocate(target, lirGenRes, codeEmittingOrder, linearScanOrder, spillMoveFactory, registerAllocationConfig); } diff -r e743cde3ff3a -r bbfbb5613a62 graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/lsra/SSALinearScan.java --- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/lsra/SSALinearScan.java Tue Jul 21 10:55:01 2015 +0200 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/lsra/SSALinearScan.java Mon Jul 20 16:10:42 2015 +0200 @@ -22,6 +22,8 @@ */ package com.oracle.graal.lir.alloc.lsra; +import java.util.*; + import jdk.internal.jvmci.code.*; import jdk.internal.jvmci.debug.*; import jdk.internal.jvmci.debug.Debug.*; @@ -34,8 +36,8 @@ final class SSALinearScan extends LinearScan { - SSALinearScan(TargetDescription target, LIRGenerationResult res, SpillMoveFactory spillMoveFactory, RegisterAllocationConfig regAllocConfig) { - super(target, res, spillMoveFactory, regAllocConfig); + SSALinearScan(TargetDescription target, LIRGenerationResult res, SpillMoveFactory spillMoveFactory, RegisterAllocationConfig regAllocConfig, List> sortedBlocks) { + super(target, res, spillMoveFactory, regAllocConfig, sortedBlocks); } @Override