changeset 12718:605c69ce3b35

Use option to enable guard-id-as-speculation-id rather than Debug.isEnabled()
author Gilles Duboscq <duboscq@ssw.jku.at>
date Fri, 08 Nov 2013 12:04:35 +0100
parents dd856c84a75c
children 895f31682b88
files graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/GuardLoweringPhase.java
diffstat 1 files changed, 10 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/GuardLoweringPhase.java	Fri Nov 08 11:00:17 2013 +0100
+++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/GuardLoweringPhase.java	Fri Nov 08 12:04:35 2013 +0100
@@ -27,7 +27,6 @@
 import java.util.*;
 import java.util.Map.Entry;
 
-import com.oracle.graal.debug.*;
 import com.oracle.graal.graph.*;
 import com.oracle.graal.nodes.*;
 import com.oracle.graal.nodes.StructuredGraph.GuardsStage;
@@ -35,6 +34,7 @@
 import com.oracle.graal.nodes.cfg.*;
 import com.oracle.graal.nodes.extended.*;
 import com.oracle.graal.nodes.util.*;
+import com.oracle.graal.options.*;
 import com.oracle.graal.phases.*;
 import com.oracle.graal.phases.graph.*;
 import com.oracle.graal.phases.schedule.*;
@@ -54,6 +54,12 @@
  * does the actual control-flow expansion of the remaining {@link GuardNode GuardNodes}.
  */
 public class GuardLoweringPhase extends BasePhase<MidTierContext> {
+    static class Options {
+        //@formatter:off
+        @Option(help = "")
+        public static final OptionValue<Boolean> UseGuardIdAsSpeculationId = new OptionValue<>(false);
+        //@formatter:on
+    }
 
     private static class UseImplicitNullChecks extends ScheduledNodeIterator {
 
@@ -125,9 +131,11 @@
     private static class LowerGuards extends ScheduledNodeIterator {
 
         private final Block block;
+        private boolean useGuardIdAsSpeculationId;
 
         public LowerGuards(Block block) {
             this.block = block;
+            this.useGuardIdAsSpeculationId = Options.UseGuardIdAsSpeculationId.getValue();
         }
 
         @Override
@@ -146,7 +154,7 @@
             StructuredGraph graph = guard.graph();
             AbstractBeginNode fastPath = graph.add(new BeginNode());
             @SuppressWarnings("deprecation")
-            DeoptimizeNode deopt = graph.add(new DeoptimizeNode(guard.action(), guard.reason(), (short) (Debug.isEnabled() ? guard.getId() : 0)));
+            DeoptimizeNode deopt = graph.add(new DeoptimizeNode(guard.action(), guard.reason(), (short) (useGuardIdAsSpeculationId ? guard.getId() : 0)));
             AbstractBeginNode deoptBranch = AbstractBeginNode.begin(deopt);
             AbstractBeginNode trueSuccessor;
             AbstractBeginNode falseSuccessor;