# HG changeset patch # User Josef Eisl # Date 1448877039 -3600 # Node ID 9d8f89df0da877dbe65feccbc79c66584cdd52bb # Parent 309300c95036fcd110d8a6b962a49fbac14eca13 PreAllocationOptimizationPhase: pass context directly to phases. diff -r 309300c95036 -r 9d8f89df0da8 graal/com.oracle.graal.lir/src/com/oracle/graal/lir/constopt/ConstantLoadOptimization.java --- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/constopt/ConstantLoadOptimization.java Mon Nov 30 10:47:07 2015 +0100 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/constopt/ConstantLoadOptimization.java Mon Nov 30 10:50:39 2015 +0100 @@ -77,7 +77,9 @@ } @Override - protected > void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder, LIRGeneratorTool lirGen) { + protected > void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder, + PreAllocationOptimizationContext context) { + LIRGeneratorTool lirGen = context.lirGen; new Optimization(lirGenRes.getLIR(), lirGen).apply(); } diff -r 309300c95036 -r 9d8f89df0da8 graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/PreAllocationOptimizationPhase.java --- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/PreAllocationOptimizationPhase.java Mon Nov 30 10:47:07 2015 +0100 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/PreAllocationOptimizationPhase.java Mon Nov 30 10:50:39 2015 +0100 @@ -22,18 +22,12 @@ */ 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.LIRGenerationResult; import com.oracle.graal.lir.gen.LIRGeneratorTool; public abstract class PreAllocationOptimizationPhase extends LIRPhase { public static final class PreAllocationOptimizationContext { - private final LIRGeneratorTool lirGen; + public final LIRGeneratorTool lirGen; public PreAllocationOptimizationContext(LIRGeneratorTool lirGen) { this.lirGen = lirGen; @@ -41,12 +35,4 @@ } - @Override - protected final > void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder, - PreAllocationOptimizationContext context) { - run(target, lirGenRes, codeEmittingOrder, linearScanOrder, context.lirGen); - } - - protected abstract > void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder, LIRGeneratorTool lirGen); - } diff -r 309300c95036 -r 9d8f89df0da8 graal/com.oracle.graal.lir/src/com/oracle/graal/lir/ssa/SSADestructionPhase.java --- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/ssa/SSADestructionPhase.java Mon Nov 30 10:47:07 2015 +0100 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/ssa/SSADestructionPhase.java Mon Nov 30 10:50:39 2015 +0100 @@ -39,7 +39,9 @@ public final class SSADestructionPhase extends PreAllocationOptimizationPhase { @Override - protected > void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder, LIRGeneratorTool lirGen) { + protected > void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder, + PreAllocationOptimizationContext context) { + LIRGeneratorTool lirGen = context.lirGen; LIR lir = lirGenRes.getLIR(); AbstractControlFlowGraph cfg = lir.getControlFlowGraph(); for (AbstractBlockBase block : cfg.getBlocks()) { diff -r 309300c95036 -r 9d8f89df0da8 graal/com.oracle.graal.lir/src/com/oracle/graal/lir/ssi/SSIConstructionPhase.java --- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/ssi/SSIConstructionPhase.java Mon Nov 30 10:47:07 2015 +0100 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/ssi/SSIConstructionPhase.java Mon Nov 30 10:50:39 2015 +0100 @@ -46,7 +46,9 @@ public final class SSIConstructionPhase extends PreAllocationOptimizationPhase { @Override - protected > void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder, LIRGeneratorTool lirGen) { + protected > void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder, + PreAllocationOptimizationContext context) { + LIRGeneratorTool lirGen = context.lirGen; assert SSAUtil.verifySSAForm(lirGenRes.getLIR()); LIR lir = lirGenRes.getLIR(); new SSIBuilder(lir, lirGenRes.getFrameMapBuilder()).build(lirGen);