changeset 21749:1a9b0cebd4ec

added counters for profile based type-check snippets that miss one of the profile types
author Doug Simon <doug.simon@oracle.com>
date Fri, 05 Jun 2015 17:33:15 +0200
parents 7e1f73635264
children c87d2672da43
files graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/InstanceOfSnippets.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/TypeCheckSnippetUtils.java
diffstat 2 files changed, 3 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/InstanceOfSnippets.java	Fri Jun 05 17:28:29 2015 +0200
+++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/InstanceOfSnippets.java	Fri Jun 05 17:33:15 2015 +0200
@@ -94,6 +94,7 @@
                 return positive ? trueValue : falseValue;
             }
         }
+        hintsMiss.inc();
         // This maybe just be a rare event but it might also indicate a phase change
         // in the application. Ideally we want to use DeoptimizationAction.None for
         // the former but the cost is too high if indeed it is the latter. As such,
@@ -161,6 +162,7 @@
                 return positive ? trueValue : falseValue;
             }
         }
+        hintsMiss.inc();
         if (!checkSecondarySubType(hub, objectHub)) {
             return falseValue;
         }
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/TypeCheckSnippetUtils.java	Fri Jun 05 17:28:29 2015 +0200
+++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/TypeCheckSnippetUtils.java	Fri Jun 05 17:33:15 2015 +0200
@@ -146,6 +146,7 @@
 
     private static final SnippetCounter.Group counters = SnippetCounters.getValue() ? new SnippetCounter.Group("TypeCheck") : null;
     static final SnippetCounter hintsHit = new SnippetCounter(counters, "hintsHit", "hit a hint type");
+    static final SnippetCounter hintsMiss = new SnippetCounter(counters, "hintsMiss", "missed a hint type");
     static final SnippetCounter exactHit = new SnippetCounter(counters, "exactHit", "exact type test succeeded");
     static final SnippetCounter exactMiss = new SnippetCounter(counters, "exactMiss", "exact type test failed");
     static final SnippetCounter isNull = new SnippetCounter(counters, "isNull", "object tested was null");