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();