# HG changeset patch # User Miguel Garcia # Date 1398607064 -7200 # Node ID 96ed2167f79cca366b2a295d14fb259c27da489c # Parent 46c51b5d0abb0d9fae839ef7f7093ed0a42e6198 [flow-sensitive] opt-in for flow-sensitive reductions in IterativeInliningPhase diff -r 46c51b5d0abb -r 96ed2167f79c graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/IterativeInliningPhase.java --- a/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/IterativeInliningPhase.java Tue Apr 29 11:02:08 2014 +0200 +++ b/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/IterativeInliningPhase.java Sun Apr 27 15:57:44 2014 +0200 @@ -31,6 +31,7 @@ import com.oracle.graal.debug.Debug.Scope; import com.oracle.graal.nodes.*; import com.oracle.graal.phases.common.*; +import com.oracle.graal.phases.common.cfs.IterativeFlowSensitiveReductionPhase; import com.oracle.graal.phases.tiers.*; public class IterativeInliningPhase extends AbstractInliningPhase { @@ -70,9 +71,14 @@ new DeadCodeEliminationPhase().apply(graph); - if (ConditionalElimination.getValue() && OptCanonicalizer.getValue()) { + boolean reduceOrEliminate = FlowSensitiveReduction.getValue() || ConditionalElimination.getValue(); + if (reduceOrEliminate && OptCanonicalizer.getValue()) { canonicalizer.apply(graph, context); - new IterativeConditionalEliminationPhase(canonicalizer).apply(graph, context); + if (FlowSensitiveReduction.getValue()) { + new IterativeFlowSensitiveReductionPhase(canonicalizer).apply(graph, context); + } else { + new IterativeConditionalEliminationPhase(canonicalizer).apply(graph, context); + } } if (!progress) { break;