Mercurial > hg > graal-compiler
changeset 19265:3fc30638b010
LowLevelLowTier: add options for optimizations.
author | Josef Eisl <josef.eisl@jku.at> |
---|---|
date | Tue, 10 Feb 2015 19:48:29 +0100 |
parents | 5ff79efdd040 |
children | c6ec49433b47 |
files | graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/LowLevelLowTier.java |
diffstat | 1 files changed, 26 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/LowLevelLowTier.java Tue Feb 10 16:03:45 2015 +0100 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/LowLevelLowTier.java Tue Feb 10 19:48:29 2015 +0100 @@ -24,12 +24,34 @@ import com.oracle.graal.lir.*; import com.oracle.graal.lir.phases.LowLevelLowTierPhase.*; +import com.oracle.graal.options.*; public class LowLevelLowTier extends LowLevelPhaseSuite<LowLevelLowTierContext> { + public static class Options { + // @formatter:off + @Option(help = "", type = OptionType.Debug) + public static final OptionValue<Boolean> LowLevelOptEdgeMoveOptimizer = new OptionValue<>(true); + @Option(help = "", type = OptionType.Debug) + public static final OptionValue<Boolean> LowLevelOptControlFlowOptmizer = new OptionValue<>(true); + @Option(help = "", type = OptionType.Debug) + public static final OptionValue<Boolean> LowLevelOptRedundantMoveElimination = new OptionValue<>(true); + @Option(help = "", type = OptionType.Debug) + public static final OptionValue<Boolean> LowLevelOptNullCheckOptimizer = new OptionValue<>(true); + // @formatter:on + } + public LowLevelLowTier() { - appendPhase(new EdgeMoveOptimizer()); - appendPhase(new ControlFlowOptimizer()); - appendPhase(new RedundantMoveElimination()); - appendPhase(new NullCheckOptimizer()); + if (Options.LowLevelOptEdgeMoveOptimizer.getValue()) { + appendPhase(new EdgeMoveOptimizer()); + } + if (Options.LowLevelOptControlFlowOptmizer.getValue()) { + appendPhase(new ControlFlowOptimizer()); + } + if (Options.LowLevelOptRedundantMoveElimination.getValue()) { + appendPhase(new RedundantMoveElimination()); + } + if (Options.LowLevelOptNullCheckOptimizer.getValue()) { + appendPhase(new NullCheckOptimizer()); + } } }