# HG changeset patch # User Josef Eisl # Date 1448876827 -3600 # Node ID 309300c95036fcd110d8a6b962a49fbac14eca13 # Parent f1c5310d0ff1e0498240739ae71f67809613518e PostAllocationOptimizationPhase: pass context directly to phases. diff -r f1c5310d0ff1 -r 309300c95036 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotInstructionProfiling.java --- 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 > void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder, - BenchmarkCounterFactory counterFactory) { + PostAllocationOptimizationContext context) { + BenchmarkCounterFactory counterFactory = context.counterFactory; new Analyzer(target, lirGenRes.getCompilationUnitName(), lirGenRes.getLIR(), counterFactory).run(); } diff -r f1c5310d0ff1 -r 309300c95036 graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/phases/StackMoveOptimizationPhase.java --- 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 > void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder, - BenchmarkCounterFactory counterFactory) { + PostAllocationOptimizationContext context) { LIR lir = lirGenRes.getLIR(); for (AbstractBlockBase block : lir.getControlFlowGraph().getBlocks()) { List instructions = lir.getLIRforBlock(block); diff -r f1c5310d0ff1 -r 309300c95036 graal/com.oracle.graal.lir/src/com/oracle/graal/lir/ControlFlowOptimizer.java --- 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 > void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder, - BenchmarkCounterFactory counterFactory) { + PostAllocationOptimizationContext context) { LIR lir = lirGenRes.getLIR(); new Optimizer(lir).deleteEmptyBlocks(codeEmittingOrder); } diff -r f1c5310d0ff1 -r 309300c95036 graal/com.oracle.graal.lir/src/com/oracle/graal/lir/EdgeMoveOptimizer.java --- 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 > void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder, - BenchmarkCounterFactory counterFactory) { + PostAllocationOptimizationContext context) { LIR ir = lirGenRes.getLIR(); Optimizer optimizer = new Optimizer(ir); diff -r f1c5310d0ff1 -r 309300c95036 graal/com.oracle.graal.lir/src/com/oracle/graal/lir/NullCheckOptimizer.java --- 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 > void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder, - BenchmarkCounterFactory counterFactory) { + PostAllocationOptimizationContext context) { LIR ir = lirGenRes.getLIR(); List> blocks = ir.codeEmittingOrder(); NullCheckOptimizer.foldNullChecks(ir, blocks, target.implicitNullCheckLimit); diff -r f1c5310d0ff1 -r 309300c95036 graal/com.oracle.graal.lir/src/com/oracle/graal/lir/RedundantMoveElimination.java --- 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 > void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder, - BenchmarkCounterFactory counterFactory) { + PostAllocationOptimizationContext context) { Optimization redundantMoveElimination = new Optimization(lirGenRes.getFrameMap()); redundantMoveElimination.doOptimize(lirGenRes.getLIR()); } diff -r f1c5310d0ff1 -r 309300c95036 graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/PostAllocationOptimizationPhase.java --- 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 { public static final class PostAllocationOptimizationContext { - private final BenchmarkCounterFactory counterFactory; + public final BenchmarkCounterFactory counterFactory; public PostAllocationOptimizationContext(BenchmarkCounterFactory counterFactory) { this.counterFactory = counterFactory; } } - - @Override - protected final > void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder, - PostAllocationOptimizationContext context) { - run(target, lirGenRes, codeEmittingOrder, linearScanOrder, context.counterFactory); - } - - protected abstract > void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder, - BenchmarkCounterFactory counterFactory); - } diff -r f1c5310d0ff1 -r 309300c95036 graal/com.oracle.graal.lir/src/com/oracle/graal/lir/profiling/MoveProfiling.java --- 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 > void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder, - BenchmarkCounterFactory counterFactory) { + PostAllocationOptimizationContext context) { + BenchmarkCounterFactory counterFactory = context.counterFactory; new Analyzer(target, lirGenRes.getLIR(), counterFactory).run(); }