# HG changeset patch # User Josef Eisl # Date 1448878996 -3600 # Node ID 8aecb496a8be2f4c69d8493934ee1b5db859417d # Parent b49409694eb59aa2112e08a807b88dde27f1b050 TraceRA: TraceAllocationPhase: directly pass context to phases. diff -r b49409694eb5 -r 8aecb496a8be graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/trace/TraceAllocationPhase.java --- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/trace/TraceAllocationPhase.java Mon Nov 30 10:57:47 2015 +0100 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/trace/TraceAllocationPhase.java Mon Nov 30 11:23:16 2015 +0100 @@ -22,21 +22,15 @@ */ package com.oracle.graal.lir.alloc.trace; -import java.util.List; - -import jdk.vm.ci.code.TargetDescription; - import com.oracle.graal.compiler.common.alloc.RegisterAllocationConfig; -import com.oracle.graal.compiler.common.cfg.AbstractBlockBase; -import com.oracle.graal.lir.gen.LIRGenerationResult; import com.oracle.graal.lir.gen.LIRGeneratorTool.MoveFactory; import com.oracle.graal.lir.phases.LIRPhase; public abstract class TraceAllocationPhase extends LIRPhase { public static final class TraceAllocationContext { - private final MoveFactory spillMoveFactory; - private final RegisterAllocationConfig registerAllocationConfig; + public final MoveFactory spillMoveFactory; + public final RegisterAllocationConfig registerAllocationConfig; public TraceAllocationContext(MoveFactory spillMoveFactory, RegisterAllocationConfig registerAllocationConfig) { this.spillMoveFactory = spillMoveFactory; @@ -44,13 +38,4 @@ } } - @Override - protected final > void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder, - TraceAllocationContext context) { - run(target, lirGenRes, codeEmittingOrder, linearScanOrder, context.spillMoveFactory, context.registerAllocationConfig); - } - - protected abstract > void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder, - MoveFactory spillMoveFactory, RegisterAllocationConfig registerAllocationConfig); - } diff -r b49409694eb5 -r 8aecb496a8be graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/trace/TraceGlobalMoveResolutionPhase.java --- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/trace/TraceGlobalMoveResolutionPhase.java Mon Nov 30 10:57:47 2015 +0100 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/trace/TraceGlobalMoveResolutionPhase.java Mon Nov 30 11:23:16 2015 +0100 @@ -37,7 +37,6 @@ import jdk.vm.ci.meta.AllocatableValue; import jdk.vm.ci.meta.Value; -import com.oracle.graal.compiler.common.alloc.RegisterAllocationConfig; import com.oracle.graal.compiler.common.alloc.TraceBuilder.TraceBuilderResult; import com.oracle.graal.compiler.common.cfg.AbstractBlockBase; import com.oracle.graal.debug.Debug; @@ -65,8 +64,8 @@ } @Override - protected > void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder, MoveFactory spillMoveFactory, - RegisterAllocationConfig registerAllocationConfig) { + protected > void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder, TraceAllocationContext context) { + MoveFactory spillMoveFactory = context.spillMoveFactory; resolveGlobalDataFlow(resultTraces, lirGenRes, spillMoveFactory, target.arch); } diff -r b49409694eb5 -r 8aecb496a8be graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/trace/TraceRegisterAllocationFixupPhase.java --- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/trace/TraceRegisterAllocationFixupPhase.java Mon Nov 30 10:57:47 2015 +0100 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/trace/TraceRegisterAllocationFixupPhase.java Mon Nov 30 11:23:16 2015 +0100 @@ -28,7 +28,6 @@ import jdk.vm.ci.code.TargetDescription; -import com.oracle.graal.compiler.common.alloc.RegisterAllocationConfig; import com.oracle.graal.compiler.common.cfg.AbstractBlockBase; import com.oracle.graal.debug.Debug; import com.oracle.graal.debug.Indent; @@ -46,8 +45,8 @@ public final class TraceRegisterAllocationFixupPhase extends TraceAllocationPhase { @Override - protected > void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder, MoveFactory spillMoveFactory, - RegisterAllocationConfig registerAllocationConfig) { + protected > void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder, TraceAllocationContext context) { + MoveFactory spillMoveFactory = context.spillMoveFactory; LIR lir = lirGenRes.getLIR(); if (replaceStackToStackMoves(lir, spillMoveFactory)) { Debug.dump(lir, "After fixing stack to stack moves"); diff -r b49409694eb5 -r 8aecb496a8be graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/trace/TraceTrivialAllocator.java --- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/trace/TraceTrivialAllocator.java Mon Nov 30 10:57:47 2015 +0100 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/trace/TraceTrivialAllocator.java Mon Nov 30 11:23:16 2015 +0100 @@ -31,7 +31,6 @@ import jdk.vm.ci.code.TargetDescription; import jdk.vm.ci.meta.Value; -import com.oracle.graal.compiler.common.alloc.RegisterAllocationConfig; import com.oracle.graal.compiler.common.alloc.TraceBuilder.TraceBuilderResult; import com.oracle.graal.compiler.common.cfg.AbstractBlockBase; import com.oracle.graal.lir.LIR; @@ -42,7 +41,6 @@ import com.oracle.graal.lir.ValueProcedure; import com.oracle.graal.lir.Variable; import com.oracle.graal.lir.gen.LIRGenerationResult; -import com.oracle.graal.lir.gen.LIRGeneratorTool.MoveFactory; import com.oracle.graal.lir.ssi.SSIUtil; import com.oracle.graal.lir.util.VariableVirtualStackValueMap; @@ -59,8 +57,7 @@ } @Override - protected > void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List trace, MoveFactory spillMoveFactory, - RegisterAllocationConfig registerAllocationConfig) { + protected > void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List trace, TraceAllocationContext context) { LIR lir = lirGenRes.getLIR(); assert isTrivialTrace(lir, trace) : "Not a trivial trace! " + trace; B block = trace.iterator().next();