# HG changeset patch # User Doug Simon # Date 1433518395 -7200 # Node ID 1a9b0cebd4ecf8855897d6b244b223b7551935ef # Parent 7e1f73635264ef2084abce76e2da87f133464c0b added counters for profile based type-check snippets that miss one of the profile types diff -r 7e1f73635264 -r 1a9b0cebd4ec graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/InstanceOfSnippets.java --- 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; } diff -r 7e1f73635264 -r 1a9b0cebd4ec graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/TypeCheckSnippetUtils.java --- 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");