Mercurial > hg > graal-compiler
changeset 23114:309300c95036
PostAllocationOptimizationPhase: pass context directly to phases.
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotInstructionProfiling.java Mon Nov 30 11:52:45 2015 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotInstructionProfiling.java Mon Nov 30 10:47:07 2015 +0100 @@ -54,7 +54,8 @@ @Override protected <B extends AbstractBlockBase<B>> void run(TargetDescription target, LIRGenerationResult lirGenRes, List<B> codeEmittingOrder, List<B> linearScanOrder, - BenchmarkCounterFactory counterFactory) { + PostAllocationOptimizationContext context) { + BenchmarkCounterFactory counterFactory = context.counterFactory; new Analyzer(target, lirGenRes.getCompilationUnitName(), lirGenRes.getLIR(), counterFactory).run(); }
--- a/graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/phases/StackMoveOptimizationPhase.java Mon Nov 30 11:52:45 2015 +0100 +++ b/graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/phases/StackMoveOptimizationPhase.java Mon Nov 30 10:47:07 2015 +0100 @@ -44,7 +44,6 @@ import com.oracle.graal.lir.RedundantMoveElimination; import com.oracle.graal.lir.amd64.AMD64Move.AMD64MultiStackMove; import com.oracle.graal.lir.amd64.AMD64Move.AMD64StackMove; -import com.oracle.graal.lir.gen.BenchmarkCounterFactory; import com.oracle.graal.lir.gen.LIRGenerationResult; import com.oracle.graal.lir.phases.PostAllocationOptimizationPhase; @@ -67,7 +66,7 @@ @Override protected <B extends AbstractBlockBase<B>> void run(TargetDescription target, LIRGenerationResult lirGenRes, List<B> codeEmittingOrder, List<B> linearScanOrder, - BenchmarkCounterFactory counterFactory) { + PostAllocationOptimizationContext context) { LIR lir = lirGenRes.getLIR(); for (AbstractBlockBase<?> block : lir.getControlFlowGraph().getBlocks()) { List<LIRInstruction> instructions = lir.getLIRforBlock(block);
--- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/ControlFlowOptimizer.java Mon Nov 30 11:52:45 2015 +0100 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/ControlFlowOptimizer.java Mon Nov 30 10:47:07 2015 +0100 @@ -33,7 +33,6 @@ import com.oracle.graal.compiler.common.cfg.AbstractBlockBase; import com.oracle.graal.debug.Debug; import com.oracle.graal.debug.DebugMetric; -import com.oracle.graal.lir.gen.BenchmarkCounterFactory; import com.oracle.graal.lir.gen.LIRGenerationResult; import com.oracle.graal.lir.phases.PostAllocationOptimizationPhase; @@ -47,7 +46,7 @@ */ @Override protected <B extends AbstractBlockBase<B>> void run(TargetDescription target, LIRGenerationResult lirGenRes, List<B> codeEmittingOrder, List<B> linearScanOrder, - BenchmarkCounterFactory counterFactory) { + PostAllocationOptimizationContext context) { LIR lir = lirGenRes.getLIR(); new Optimizer<B>(lir).deleteEmptyBlocks(codeEmittingOrder); }
--- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/EdgeMoveOptimizer.java Mon Nov 30 11:52:45 2015 +0100 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/EdgeMoveOptimizer.java Mon Nov 30 10:47:07 2015 +0100 @@ -31,7 +31,6 @@ import com.oracle.graal.lir.StandardOp.LoadConstantOp; import com.oracle.graal.lir.StandardOp.MoveOp; import com.oracle.graal.lir.StandardOp.ValueMoveOp; -import com.oracle.graal.lir.gen.BenchmarkCounterFactory; import com.oracle.graal.lir.gen.LIRGenerationResult; import com.oracle.graal.lir.phases.PostAllocationOptimizationPhase; @@ -57,7 +56,7 @@ @Override protected <B extends AbstractBlockBase<B>> void run(TargetDescription target, LIRGenerationResult lirGenRes, List<B> codeEmittingOrder, List<B> linearScanOrder, - BenchmarkCounterFactory counterFactory) { + PostAllocationOptimizationContext context) { LIR ir = lirGenRes.getLIR(); Optimizer optimizer = new Optimizer(ir);
--- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/NullCheckOptimizer.java Mon Nov 30 11:52:45 2015 +0100 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/NullCheckOptimizer.java Mon Nov 30 10:47:07 2015 +0100 @@ -29,7 +29,6 @@ import com.oracle.graal.compiler.common.cfg.AbstractBlockBase; import com.oracle.graal.lir.StandardOp.ImplicitNullCheck; import com.oracle.graal.lir.StandardOp.NullCheck; -import com.oracle.graal.lir.gen.BenchmarkCounterFactory; import com.oracle.graal.lir.gen.LIRGenerationResult; import com.oracle.graal.lir.phases.PostAllocationOptimizationPhase; @@ -37,7 +36,7 @@ @Override protected <B extends AbstractBlockBase<B>> void run(TargetDescription target, LIRGenerationResult lirGenRes, List<B> codeEmittingOrder, List<B> linearScanOrder, - BenchmarkCounterFactory counterFactory) { + PostAllocationOptimizationContext context) { LIR ir = lirGenRes.getLIR(); List<? extends AbstractBlockBase<?>> blocks = ir.codeEmittingOrder(); NullCheckOptimizer.foldNullChecks(ir, blocks, target.implicitNullCheckLimit);
--- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/RedundantMoveElimination.java Mon Nov 30 11:52:45 2015 +0100 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/RedundantMoveElimination.java Mon Nov 30 10:47:07 2015 +0100 @@ -46,7 +46,6 @@ import com.oracle.graal.lir.StandardOp.MoveOp; import com.oracle.graal.lir.StandardOp.ValueMoveOp; import com.oracle.graal.lir.framemap.FrameMap; -import com.oracle.graal.lir.gen.BenchmarkCounterFactory; import com.oracle.graal.lir.gen.LIRGenerationResult; import com.oracle.graal.lir.phases.PostAllocationOptimizationPhase; @@ -57,7 +56,7 @@ @Override protected <B extends AbstractBlockBase<B>> void run(TargetDescription target, LIRGenerationResult lirGenRes, List<B> codeEmittingOrder, List<B> linearScanOrder, - BenchmarkCounterFactory counterFactory) { + PostAllocationOptimizationContext context) { Optimization redundantMoveElimination = new Optimization(lirGenRes.getFrameMap()); redundantMoveElimination.doOptimize(lirGenRes.getLIR()); }
--- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/PostAllocationOptimizationPhase.java Mon Nov 30 11:52:45 2015 +0100 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/PostAllocationOptimizationPhase.java Mon Nov 30 10:47:07 2015 +0100 @@ -22,31 +22,15 @@ */ package com.oracle.graal.lir.phases; -import java.util.List; - -import jdk.vm.ci.code.TargetDescription; - -import com.oracle.graal.compiler.common.cfg.AbstractBlockBase; import com.oracle.graal.lir.gen.BenchmarkCounterFactory; -import com.oracle.graal.lir.gen.LIRGenerationResult; public abstract class PostAllocationOptimizationPhase extends LIRPhase<PostAllocationOptimizationPhase.PostAllocationOptimizationContext> { public static final class PostAllocationOptimizationContext { - private final BenchmarkCounterFactory counterFactory; + public final BenchmarkCounterFactory counterFactory; public PostAllocationOptimizationContext(BenchmarkCounterFactory counterFactory) { this.counterFactory = counterFactory; } } - - @Override - protected final <B extends AbstractBlockBase<B>> void run(TargetDescription target, LIRGenerationResult lirGenRes, List<B> codeEmittingOrder, List<B> linearScanOrder, - PostAllocationOptimizationContext context) { - run(target, lirGenRes, codeEmittingOrder, linearScanOrder, context.counterFactory); - } - - protected abstract <B extends AbstractBlockBase<B>> void run(TargetDescription target, LIRGenerationResult lirGenRes, List<B> codeEmittingOrder, List<B> linearScanOrder, - BenchmarkCounterFactory counterFactory); - }
--- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/profiling/MoveProfiling.java Mon Nov 30 11:52:45 2015 +0100 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/profiling/MoveProfiling.java Mon Nov 30 10:47:07 2015 +0100 @@ -54,7 +54,8 @@ @Override protected <B extends AbstractBlockBase<B>> void run(TargetDescription target, LIRGenerationResult lirGenRes, List<B> codeEmittingOrder, List<B> linearScanOrder, - BenchmarkCounterFactory counterFactory) { + PostAllocationOptimizationContext context) { + BenchmarkCounterFactory counterFactory = context.counterFactory; new Analyzer(target, lirGenRes.getLIR(), counterFactory).run(); }