Mercurial > hg > graal-compiler
changeset 23121:d736437ef3df
TraceRA: TraceLinearScanAssignLocationsPhase: rewrite stack to stack moves.
author | Josef Eisl <josef.eisl@jku.at> |
---|---|
date | Mon, 30 Nov 2015 14:50:33 +0100 |
parents | f449414238e4 |
children | a720fbf1810a |
files | graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/trace/TraceLinearScanAssignLocationsPhase.java |
diffstat | 1 files changed, 6 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/trace/TraceLinearScanAssignLocationsPhase.java Mon Nov 30 14:46:11 2015 +0100 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/trace/TraceLinearScanAssignLocationsPhase.java Mon Nov 30 14:50:33 2015 +0100 @@ -57,6 +57,7 @@ import com.oracle.graal.lir.StandardOp.ValueMoveOp; import com.oracle.graal.lir.Variable; import com.oracle.graal.lir.gen.LIRGenerationResult; +import com.oracle.graal.lir.gen.LIRGeneratorTool.MoveFactory; /** * Specialization of {@link com.oracle.graal.lir.alloc.lsra.LinearScanAssignLocationsPhase} that @@ -69,14 +70,17 @@ protected <B extends AbstractBlockBase<B>> void run(TargetDescription target, LIRGenerationResult lirGenRes, List<B> codeEmittingOrder, List<B> linearScanOrder, TraceLinearScanAllocationContext context) { TraceLinearScan allocator = context.allocator; - new Assigner(allocator).assignLocations(); + MoveFactory spillMoveFactory = context.spillMoveFactory; + new Assigner(allocator, spillMoveFactory).assignLocations(); } private static final class Assigner { private final TraceLinearScan allocator; + private final MoveFactory spillMoveFactory; - private Assigner(TraceLinearScan allocator) { + private Assigner(TraceLinearScan allocator, MoveFactory spillMoveFactory) { this.allocator = allocator; + this.spillMoveFactory = spillMoveFactory; } /**