# HG changeset patch # User Doug Simon # Date 1383923656 -3600 # Node ID 3e88ee655612caaa3f5ef9663c064e41fa74ca1b # Parent c46e091cba57aeade37cb11fc298270051e41f28 per SnippetTemplate metrics now include the details of the specialization in their name diff -r c46e091cba57 -r 3e88ee655612 graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/SnippetTemplate.java --- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/SnippetTemplate.java Fri Nov 08 16:13:15 2013 +0100 +++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/SnippetTemplate.java Fri Nov 08 16:14:16 2013 +0100 @@ -33,8 +33,8 @@ import com.oracle.graal.api.replacements.*; import com.oracle.graal.debug.*; import com.oracle.graal.debug.internal.*; +import com.oracle.graal.graph.Graph.Mark; import com.oracle.graal.graph.*; -import com.oracle.graal.graph.Graph.Mark; import com.oracle.graal.graph.iterators.*; import com.oracle.graal.loop.*; import com.oracle.graal.nodes.*; @@ -427,12 +427,39 @@ return false; } + private static String debugValueName(SnippetTemplate template, String category, Arguments args) { + if (Debug.isEnabled()) { + StringBuilder result = new StringBuilder(category).append('['); + SnippetInfo info = args.info; + result.append(info.method.getName()).append('('); + String sep = ""; + for (int i = 0; i < info.getParameterCount(); i++) { + if (info.isConstantParameter(i)) { + result.append(sep); + if (info.names[i] != null) { + result.append(info.names[i]); + } else { + result.append(i); + } + result.append('=').append(args.values[i]); + sep = ", "; + } + } + result.append(")]@").append(template.hashCode()); + return result.toString(); + + } + return null; + } + /** * Creates a snippet template. */ protected SnippetTemplate(final Providers providers, Arguments args) { StructuredGraph snippetGraph = providers.getReplacements().getSnippet(args.info.method); SnippetGraphsNodeCount.add(snippetGraph.getNodeCount()); + instantiationTimer = Debug.timer(debugValueName(this, "SnippetTemplateInstantiationTime", args)); + instantiationCounter = Debug.metric(debugValueName(this, "SnippetTemplateInstantiationCount", args)); ResolvedJavaMethod method = snippetGraph.method(); Signature signature = method.getSignature(); @@ -621,8 +648,6 @@ this.returnNode = retNode; SnippetTemplatesNodeCount.add(nodes.size()); - instantiationTimer = Debug.timer("SnippetTemplateInstantiationTime[" + args.info.method.getName() + "]@" + hashCode()); - instantiationCounter = Debug.metric("SnippetTemplateInstantiationCount[" + args.info.method.getName() + "]@" + hashCode()); } private static boolean checkAllVarargPlaceholdersAreDeleted(int parameterCount, VarargsPlaceholderNode[] placeholders) {