# HG changeset patch
# User Miguel Garcia
@@ -95,6 +96,7 @@
* a bug in FlowSensitiveReduction (the code was reachable, after all).
*/
public void doRewrite(LogicNode falseConstant) {
+ metricUnconditionalDeoptInserted.increment();
StructuredGraph graph = fixed.graph();
// have to insert a FixedNode other than a ControlSinkNode
FixedGuardNode buckStopsHere = graph.add(new FixedGuardNode(falseConstant, deoptReason, DeoptimizationAction.None));
diff -r 1f28c463e452 -r e30d7eaa290d graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/cfs/EquationalReasoner.java
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/cfs/EquationalReasoner.java Mon May 05 13:24:57 2014 +0200
+++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/cfs/EquationalReasoner.java Sun May 04 18:36:44 2014 +0200
@@ -65,11 +65,12 @@
*/
public final class EquationalReasoner {
- private static final DebugMetric metricInstanceOfRemoved = Debug.metric("InstanceOfRemoved");
- private static final DebugMetric metricNullCheckRemoved = Debug.metric("NullCheckRemoved");
- private static final DebugMetric metricObjectEqualsRemoved = Debug.metric("ObjectEqualsRemoved");
- private static final DebugMetric metricEquationalReasoning = Debug.metric("EquationalReasoning");
- private static final DebugMetric metricDowncasting = Debug.metric("Downcasting");
+ private static final DebugMetric metricInstanceOfRemoved = Debug.metric("FSR-InstanceOfRemoved");
+ private static final DebugMetric metricNullCheckRemoved = Debug.metric("FSR-NullCheckRemoved");
+ private static final DebugMetric metricObjectEqualsRemoved = Debug.metric("FSR-ObjectEqualsRemoved");
+ private static final DebugMetric metricEquationalReasoning = Debug.metric("FSR-EquationalReasoning");
+ private static final DebugMetric metricDowncasting = Debug.metric("FSR-Downcasting");
+ private static final DebugMetric metricNullInserted = Debug.metric("FSR-NullInserted");
private final StructuredGraph graph;
private final CanonicalizerTool tool;
@@ -269,6 +270,7 @@
if (FlowUtil.hasLegalObjectStamp(v)) {
if (state.isNull(v)) {
// it's ok to return nullConstant in deverbosify unlike in downcast
+ metricNullInserted.increment();
return nullConstant;
}
return downcast(v);
@@ -596,6 +598,7 @@
PiNode untrivialNull = nonTrivialNull(scrutinee);
if (untrivialNull != null) {
+ metricNullInserted.increment();
return untrivialNull;
}
diff -r 1f28c463e452 -r e30d7eaa290d graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/cfs/FlowSensitiveReduction.java
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/cfs/FlowSensitiveReduction.java Mon May 05 13:24:57 2014 +0200
+++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/cfs/FlowSensitiveReduction.java Sun May 04 18:36:44 2014 +0200
@@ -54,6 +54,14 @@
*
*
+ *
*
@@ -76,6 +84,13 @@
*
*
+ * Metrics for this phase are displayed starting with FSR-
prefix, their counters are
+ * hosted in {@link com.oracle.graal.phases.common.cfs.BaseReduction},
+ * {@link com.oracle.graal.phases.common.cfs.EquationalReasoner} and
+ * {@link com.oracle.graal.phases.common.cfs.State}.
+ *