Mercurial > hg > truffle
changeset 21221:da2b2d3edeeb
Add LIREagerSSADestruction option.
author | Josef Eisl <josef.eisl@jku.at> |
---|---|
date | Mon, 20 Apr 2015 17:30:30 +0200 |
parents | e02ae54e6a44 |
children | f226f63af996 |
files | graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/PreAllocationOptimizationStage.java graal/com.oracle.graal.lir/src/com/oracle/graal/lir/ssa/SSADestructionPhase.java |
diffstat | 2 files changed, 10 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/PreAllocationOptimizationStage.java Wed Apr 22 11:40:17 2015 +0200 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/PreAllocationOptimizationStage.java Mon Apr 20 17:30:30 2015 +0200 @@ -22,15 +22,13 @@ */ package com.oracle.graal.lir.phases; -import static com.oracle.graal.compiler.common.GraalOptions.*; - import com.oracle.graal.lir.constopt.*; -import com.oracle.graal.lir.phases.PreAllocationOptimizationPhase.*; +import com.oracle.graal.lir.phases.PreAllocationOptimizationPhase.PreAllocationOptimizationContext; import com.oracle.graal.lir.ssa.*; public class PreAllocationOptimizationStage extends LIRPhaseSuite<PreAllocationOptimizationContext> { public PreAllocationOptimizationStage() { - if (SSA_LIR.getValue()) { + if (SSADestructionPhase.Options.LIREagerSSADestruction.getValue()) { appendPhase(new SSADestructionPhase()); } if (ConstantLoadOptimization.Options.LIROptConstantLoadOptimization.getValue()) {
--- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/ssa/SSADestructionPhase.java Wed Apr 22 11:40:17 2015 +0200 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/ssa/SSADestructionPhase.java Mon Apr 20 17:30:30 2015 +0200 @@ -31,9 +31,17 @@ import com.oracle.graal.lir.StandardOp.LabelOp; import com.oracle.graal.lir.gen.*; import com.oracle.graal.lir.phases.*; +import com.oracle.graal.options.*; public final class SSADestructionPhase extends PreAllocationOptimizationPhase { + public static class Options { + // @formatter:off + @Option(help = "Destruct SSA LIR eagerly (before other LIR phases).", type = OptionType.Debug) + public static final OptionValue<Boolean> LIREagerSSADestruction = new OptionValue<>(true); + // @formatter:on + } + @Override protected <B extends AbstractBlockBase<B>> void run(TargetDescription target, LIRGenerationResult lirGenRes, List<B> codeEmittingOrder, List<B> linearScanOrder, LIRGeneratorTool lirGen) { LIR lir = lirGenRes.getLIR();