# HG changeset patch # User Miguel Garcia # Date 1399221404 -7200 # Node ID e30d7eaa290d1e39d52079bccc675ec2c67b1055 # Parent 1f28c463e45248b306bc6e75a8da051885509eb8 [flow-sensitive] more metrics, documentation diff -r 1f28c463e452 -r e30d7eaa290d graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/cfs/BaseReduction.java --- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/cfs/BaseReduction.java Mon May 05 13:24:57 2014 +0200 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/cfs/BaseReduction.java Sun May 04 18:36:44 2014 +0200 @@ -57,10 +57,11 @@ */ public abstract class BaseReduction extends PostOrderNodeIterator { - protected static final DebugMetric metricCheckCastRemoved = Debug.metric("CheckCastRemoved"); - protected static final DebugMetric metricGuardingPiNodeRemoved = Debug.metric("GuardingPiNodeRemoved"); - protected static final DebugMetric metricFixedGuardNodeRemoved = Debug.metric("FixedGuardNodeRemoved"); - protected static final DebugMetric metricMethodResolved = Debug.metric("MethodResolved"); + protected static final DebugMetric metricCheckCastRemoved = Debug.metric("FSR-CheckCastRemoved"); + protected static final DebugMetric metricGuardingPiNodeRemoved = Debug.metric("FSR-GuardingPiNodeRemoved"); + protected static final DebugMetric metricFixedGuardNodeRemoved = Debug.metric("FSR-FixedGuardNodeRemoved"); + protected static final DebugMetric metricMethodResolved = Debug.metric("FSR-MethodResolved"); + protected static final DebugMetric metricUnconditionalDeoptInserted = Debug.metric("FSR-UnconditionalDeoptInserted"); /** *

@@ -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 @@ *