Mercurial > hg > graal-compiler
changeset 23117:8aecb496a8be
TraceRA: TraceAllocationPhase: directly pass context to phases.
author | Josef Eisl <josef.eisl@jku.at> |
---|---|
date | Mon, 30 Nov 2015 11:23:16 +0100 |
parents | b49409694eb5 |
children | c8f3095d4345 |
files | graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/trace/TraceAllocationPhase.java graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/trace/TraceGlobalMoveResolutionPhase.java graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/trace/TraceRegisterAllocationFixupPhase.java graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/trace/TraceTrivialAllocator.java |
diffstat | 4 files changed, 7 insertions(+), 27 deletions(-) [+] |
line wrap: on
line diff
--- 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<TraceAllocationPhase.TraceAllocationContext> { 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 <B extends AbstractBlockBase<B>> void run(TargetDescription target, LIRGenerationResult lirGenRes, List<B> codeEmittingOrder, List<B> linearScanOrder, - TraceAllocationContext context) { - run(target, lirGenRes, codeEmittingOrder, linearScanOrder, context.spillMoveFactory, context.registerAllocationConfig); - } - - protected abstract <B extends AbstractBlockBase<B>> void run(TargetDescription target, LIRGenerationResult lirGenRes, List<B> codeEmittingOrder, List<B> linearScanOrder, - MoveFactory spillMoveFactory, RegisterAllocationConfig registerAllocationConfig); - }
--- 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 <B extends AbstractBlockBase<B>> void run(TargetDescription target, LIRGenerationResult lirGenRes, List<B> codeEmittingOrder, List<B> linearScanOrder, MoveFactory spillMoveFactory, - RegisterAllocationConfig registerAllocationConfig) { + protected <B extends AbstractBlockBase<B>> void run(TargetDescription target, LIRGenerationResult lirGenRes, List<B> codeEmittingOrder, List<B> linearScanOrder, TraceAllocationContext context) { + MoveFactory spillMoveFactory = context.spillMoveFactory; resolveGlobalDataFlow(resultTraces, lirGenRes, spillMoveFactory, target.arch); }
--- 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 <B extends AbstractBlockBase<B>> void run(TargetDescription target, LIRGenerationResult lirGenRes, List<B> codeEmittingOrder, List<B> linearScanOrder, MoveFactory spillMoveFactory, - RegisterAllocationConfig registerAllocationConfig) { + protected <B extends AbstractBlockBase<B>> void run(TargetDescription target, LIRGenerationResult lirGenRes, List<B> codeEmittingOrder, List<B> linearScanOrder, TraceAllocationContext context) { + MoveFactory spillMoveFactory = context.spillMoveFactory; LIR lir = lirGenRes.getLIR(); if (replaceStackToStackMoves(lir, spillMoveFactory)) { Debug.dump(lir, "After fixing stack to stack moves");
--- 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 <B extends AbstractBlockBase<B>> void run(TargetDescription target, LIRGenerationResult lirGenRes, List<B> codeEmittingOrder, List<B> trace, MoveFactory spillMoveFactory, - RegisterAllocationConfig registerAllocationConfig) { + protected <B extends AbstractBlockBase<B>> void run(TargetDescription target, LIRGenerationResult lirGenRes, List<B> codeEmittingOrder, List<B> trace, TraceAllocationContext context) { LIR lir = lirGenRes.getLIR(); assert isTrivialTrace(lir, trace) : "Not a trivial trace! " + trace; B block = trace.iterator().next();