@@ -302,7 +302,8 @@ def kind_to_text(kind, defines, opname):
302302
303303def categorized_counts (opcode_stats , specialized_instructions ):
304304 basic = 0
305- specialized = 0
305+ specialized_hits = 0
306+ specialized_misses = 0
306307 not_specialized = 0
307308 for name , opcode_stat in opcode_stats .items ():
308309 if "execution_count" not in opcode_stat :
@@ -312,11 +313,11 @@ def categorized_counts(opcode_stats, specialized_instructions):
312313 not_specialized += count
313314 elif name in specialized_instructions :
314315 miss = opcode_stat .get ("specialization.miss" , 0 )
315- not_specialized += miss
316- specialized += count - miss
316+ specialized_misses += miss
317+ specialized_hits += count - miss
317318 else :
318319 basic += count
319- return basic , not_specialized , specialized
320+ return basic , not_specialized , specialized_hits , specialized_misses
320321
321322
322323def print_title (name , level = 2 ):
@@ -484,13 +485,14 @@ def emit_comparative_specialization_stats(
484485def calculate_specialization_effectiveness (
485486 opcode_stats , total , specialized_instructions
486487):
487- basic , not_specialized , specialized = categorized_counts (
488+ basic , not_specialized , hits , misses = categorized_counts (
488489 opcode_stats , specialized_instructions
489490 )
490491 return [
491492 ("Basic" , basic , format_ratio (basic , total )),
492493 ("Not specialized" , not_specialized , format_ratio (not_specialized , total )),
493- ("Specialized" , specialized , format_ratio (specialized , total )),
494+ ("Specialized hits" , hits , format_ratio (specialized , total )),
495+ ("Specialized misses" , misses , format_ratio (specialized , total )),
494496 ]
495497
496498
@@ -510,6 +512,9 @@ def emit_specialization_overview(opcode_stats, total, specialized_instructions):
510512 # Avoid double counting misses
511513 if title == "Misses" and "specializable" in opcode_stat :
512514 continue
515+ # Deferred stats for RESUME are meaningless
516+ if title == "Deferred" and name == RESUME :
517+ continue
513518 value = opcode_stat .get (field , 0 )
514519 counts .append ((value , name ))
515520 total += value
0 commit comments