@@ -251,7 +251,8 @@ def is_specializable(self, opcode: str) -> bool:
251
251
252
252
def get_specialized_total_counts (self ) -> tuple [int , int , int ]:
253
253
basic = 0
254
- specialized = 0
254
+ specialized_hits = 0
255
+ specialized_misses = 0
255
256
not_specialized = 0
256
257
for opcode , opcode_stat in self ._data .items ():
257
258
if "execution_count" not in opcode_stat :
@@ -261,16 +262,17 @@ def get_specialized_total_counts(self) -> tuple[int, int, int]:
261
262
not_specialized += count
262
263
elif opcode in self ._specialized_instructions :
263
264
miss = opcode_stat .get ("specialization.miss" , 0 )
264
- not_specialized += miss
265
- specialized += count - miss
265
+ specialized_hits += count - miss
266
+ specialized_misses += miss
266
267
else :
267
268
basic += count
268
- return basic , specialized , not_specialized
269
+ return basic , specialized_hits , specialized_misses , not_specialized
269
270
270
271
def get_deferred_counts (self ) -> dict [str , int ]:
271
272
return {
272
273
opcode : opcode_stat .get ("specialization.deferred" , 0 )
273
274
for opcode , opcode_stat in self ._data .items ()
275
+ if opcode != "RESUME"
274
276
}
275
277
276
278
def get_misses_counts (self ) -> dict [str , int ]:
@@ -799,7 +801,8 @@ def calc_specialization_effectiveness_table(stats: Stats) -> Rows:
799
801
800
802
(
801
803
basic ,
802
- specialized ,
804
+ specialized_hits ,
805
+ specialized_misses ,
803
806
not_specialized ,
804
807
) = opcode_stats .get_specialized_total_counts ()
805
808
@@ -810,7 +813,16 @@ def calc_specialization_effectiveness_table(stats: Stats) -> Rows:
810
813
Count (not_specialized ),
811
814
Ratio (not_specialized , total ),
812
815
),
813
- ("Specialized" , Count (specialized ), Ratio (specialized , total )),
816
+ (
817
+ "Specialized hits" ,
818
+ Count (specialized_hits ),
819
+ Ratio (specialized_hits , total ),
820
+ ),
821
+ (
822
+ "Specialized misses" ,
823
+ Count (specialized_misses ),
824
+ Ratio (specialized_misses , total ),
825
+ ),
814
826
]
815
827
816
828
def calc_deferred_by_table (stats : Stats ) -> Rows :
0 commit comments