Mercurial > hg > graal-compiler
changeset 23115:9d8f89df0da8
PreAllocationOptimizationPhase: pass context directly to phases.
author | Josef Eisl <josef.eisl@jku.at> |
---|---|
date | Mon, 30 Nov 2015 10:50:39 +0100 |
parents | 309300c95036 |
children | b49409694eb5 |
files | graal/com.oracle.graal.lir/src/com/oracle/graal/lir/constopt/ConstantLoadOptimization.java graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/PreAllocationOptimizationPhase.java graal/com.oracle.graal.lir/src/com/oracle/graal/lir/ssa/SSADestructionPhase.java graal/com.oracle.graal.lir/src/com/oracle/graal/lir/ssi/SSIConstructionPhase.java |
diffstat | 4 files changed, 10 insertions(+), 18 deletions(-) [+] |
line wrap: on
line diff
--- 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 <B extends AbstractBlockBase<B>> void run(TargetDescription target, LIRGenerationResult lirGenRes, List<B> codeEmittingOrder, List<B> linearScanOrder, LIRGeneratorTool lirGen) { + protected <B extends AbstractBlockBase<B>> void run(TargetDescription target, LIRGenerationResult lirGenRes, List<B> codeEmittingOrder, List<B> linearScanOrder, + PreAllocationOptimizationContext context) { + LIRGeneratorTool lirGen = context.lirGen; new Optimization(lirGenRes.getLIR(), lirGen).apply(); }
--- 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<PreAllocationOptimizationPhase.PreAllocationOptimizationContext> { 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 <B extends AbstractBlockBase<B>> void run(TargetDescription target, LIRGenerationResult lirGenRes, List<B> codeEmittingOrder, List<B> linearScanOrder, - PreAllocationOptimizationContext context) { - run(target, lirGenRes, codeEmittingOrder, linearScanOrder, context.lirGen); - } - - protected abstract <B extends AbstractBlockBase<B>> void run(TargetDescription target, LIRGenerationResult lirGenRes, List<B> codeEmittingOrder, List<B> linearScanOrder, LIRGeneratorTool lirGen); - }
--- 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 <B extends AbstractBlockBase<B>> void run(TargetDescription target, LIRGenerationResult lirGenRes, List<B> codeEmittingOrder, List<B> linearScanOrder, LIRGeneratorTool lirGen) { + protected <B extends AbstractBlockBase<B>> void run(TargetDescription target, LIRGenerationResult lirGenRes, List<B> codeEmittingOrder, List<B> linearScanOrder, + PreAllocationOptimizationContext context) { + LIRGeneratorTool lirGen = context.lirGen; LIR lir = lirGenRes.getLIR(); AbstractControlFlowGraph<?> cfg = lir.getControlFlowGraph(); for (AbstractBlockBase<?> block : cfg.getBlocks()) {
--- 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 <B extends AbstractBlockBase<B>> void run(TargetDescription target, LIRGenerationResult lirGenRes, List<B> codeEmittingOrder, List<B> linearScanOrder, LIRGeneratorTool lirGen) { + protected <B extends AbstractBlockBase<B>> void run(TargetDescription target, LIRGenerationResult lirGenRes, List<B> codeEmittingOrder, List<B> linearScanOrder, + PreAllocationOptimizationContext context) { + LIRGeneratorTool lirGen = context.lirGen; assert SSAUtil.verifySSAForm(lirGenRes.getLIR()); LIR lir = lirGenRes.getLIR(); new SSIBuilder(lir, lirGenRes.getFrameMapBuilder()).build(lirGen);