# HG changeset patch # User Josef Eisl # Date 1429543830 -7200 # Node ID da2b2d3edeeb9ac4ab787d2d9b35203cace77a0e # Parent e02ae54e6a44efc7b3c2a142f56dc8ae6512ea1d Add LIREagerSSADestruction option. diff -r e02ae54e6a44 -r da2b2d3edeeb graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/PreAllocationOptimizationStage.java --- 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 { public PreAllocationOptimizationStage() { - if (SSA_LIR.getValue()) { + if (SSADestructionPhase.Options.LIREagerSSADestruction.getValue()) { appendPhase(new SSADestructionPhase()); } if (ConstantLoadOptimization.Options.LIROptConstantLoadOptimization.getValue()) { diff -r e02ae54e6a44 -r da2b2d3edeeb 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 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 LIREagerSSADestruction = new OptionValue<>(true); + // @formatter:on + } + @Override protected > void run(TargetDescription target, LIRGenerationResult lirGenRes, List codeEmittingOrder, List linearScanOrder, LIRGeneratorTool lirGen) { LIR lir = lirGenRes.getLIR();