@@ -188,20 +188,35 @@ make_counters! {
188188 dynamic_getivar_count,
189189 dynamic_setivar_count,
190190
191- // Method call def_type related to fallback to dynamic dispatch
192- unspecialized_def_type_iseq,
193- unspecialized_def_type_cfunc,
194- unspecialized_def_type_attrset,
195- unspecialized_def_type_ivar,
196- unspecialized_def_type_bmethod,
197- unspecialized_def_type_zsuper,
198- unspecialized_def_type_alias,
199- unspecialized_def_type_undef,
200- unspecialized_def_type_not_implemented,
201- unspecialized_def_type_optimized,
202- unspecialized_def_type_missing,
203- unspecialized_def_type_refined,
204- unspecialized_def_type_null,
191+ // Method call def_type related to send without block fallback to dynamic dispatch
192+ unspecialized_send_without_block_def_type_iseq,
193+ unspecialized_send_without_block_def_type_cfunc,
194+ unspecialized_send_without_block_def_type_attrset,
195+ unspecialized_send_without_block_def_type_ivar,
196+ unspecialized_send_without_block_def_type_bmethod,
197+ unspecialized_send_without_block_def_type_zsuper,
198+ unspecialized_send_without_block_def_type_alias,
199+ unspecialized_send_without_block_def_type_undef,
200+ unspecialized_send_without_block_def_type_not_implemented,
201+ unspecialized_send_without_block_def_type_optimized,
202+ unspecialized_send_without_block_def_type_missing,
203+ unspecialized_send_without_block_def_type_refined,
204+ unspecialized_send_without_block_def_type_null,
205+
206+ // Method call def_type related to send fallback to dynamic dispatch
207+ unspecialized_send_def_type_iseq,
208+ unspecialized_send_def_type_cfunc,
209+ unspecialized_send_def_type_attrset,
210+ unspecialized_send_def_type_ivar,
211+ unspecialized_send_def_type_bmethod,
212+ unspecialized_send_def_type_zsuper,
213+ unspecialized_send_def_type_alias,
214+ unspecialized_send_def_type_undef,
215+ unspecialized_send_def_type_not_implemented,
216+ unspecialized_send_def_type_optimized,
217+ unspecialized_send_def_type_missing,
218+ unspecialized_send_def_type_refined,
219+ unspecialized_send_def_type_null,
205220
206221 // Writes to the VM frame
207222 vm_write_pc_count,
@@ -332,24 +347,45 @@ pub fn send_fallback_counter(reason: crate::hir::SendFallbackReason) -> Counter
332347 }
333348}
334349
350+ pub fn send_without_block_fallback_counter_for_method_type ( method_type : crate :: hir:: MethodType ) -> Counter {
351+ use crate :: hir:: MethodType :: * ;
352+ use crate :: stats:: Counter :: * ;
353+
354+ match method_type {
355+ Iseq => unspecialized_send_without_block_def_type_iseq,
356+ Cfunc => unspecialized_send_without_block_def_type_cfunc,
357+ Attrset => unspecialized_send_without_block_def_type_attrset,
358+ Ivar => unspecialized_send_without_block_def_type_ivar,
359+ Bmethod => unspecialized_send_without_block_def_type_bmethod,
360+ Zsuper => unspecialized_send_without_block_def_type_zsuper,
361+ Alias => unspecialized_send_without_block_def_type_alias,
362+ Undefined => unspecialized_send_without_block_def_type_undef,
363+ NotImplemented => unspecialized_send_without_block_def_type_not_implemented,
364+ Optimized => unspecialized_send_without_block_def_type_optimized,
365+ Missing => unspecialized_send_without_block_def_type_missing,
366+ Refined => unspecialized_send_without_block_def_type_refined,
367+ Null => unspecialized_send_without_block_def_type_null,
368+ }
369+ }
370+
335371pub fn send_fallback_counter_for_method_type ( method_type : crate :: hir:: MethodType ) -> Counter {
336372 use crate :: hir:: MethodType :: * ;
337373 use crate :: stats:: Counter :: * ;
338374
339375 match method_type {
340- Iseq => unspecialized_def_type_iseq ,
341- Cfunc => unspecialized_def_type_cfunc ,
342- Attrset => unspecialized_def_type_attrset ,
343- Ivar => unspecialized_def_type_ivar ,
344- Bmethod => unspecialized_def_type_bmethod ,
345- Zsuper => unspecialized_def_type_zsuper ,
346- Alias => unspecialized_def_type_alias ,
347- Undefined => unspecialized_def_type_undef ,
348- NotImplemented => unspecialized_def_type_not_implemented ,
349- Optimized => unspecialized_def_type_optimized ,
350- Missing => unspecialized_def_type_missing ,
351- Refined => unspecialized_def_type_refined ,
352- Null => unspecialized_def_type_null ,
376+ Iseq => unspecialized_send_def_type_iseq ,
377+ Cfunc => unspecialized_send_def_type_cfunc ,
378+ Attrset => unspecialized_send_def_type_attrset ,
379+ Ivar => unspecialized_send_def_type_ivar ,
380+ Bmethod => unspecialized_send_def_type_bmethod ,
381+ Zsuper => unspecialized_send_def_type_zsuper ,
382+ Alias => unspecialized_send_def_type_alias ,
383+ Undefined => unspecialized_send_def_type_undef ,
384+ NotImplemented => unspecialized_send_def_type_not_implemented ,
385+ Optimized => unspecialized_send_def_type_optimized ,
386+ Missing => unspecialized_send_def_type_missing ,
387+ Refined => unspecialized_send_def_type_refined ,
388+ Null => unspecialized_send_def_type_null ,
353389 }
354390}
355391
0 commit comments