mirror of
https://github.com/ruby/ruby.git
synced 2026-01-27 04:24:23 +00:00
YJIT: Finer breakdown for block_arg counters
For example, on `lobsters` the block_arg reason was at ~10%. With this change it shows that 6% of that is `send_cfunc_block_arg`.
This commit is contained in:
parent
5471f99eea
commit
2bf9970101
@ -5605,7 +5605,7 @@ fn gen_send_cfunc(
|
||||
// Nothing to do
|
||||
}
|
||||
_ => {
|
||||
gen_counter_incr(asm, Counter::send_block_arg);
|
||||
gen_counter_incr(asm, Counter::send_cfunc_block_arg);
|
||||
return None;
|
||||
}
|
||||
}
|
||||
@ -7009,7 +7009,7 @@ fn exit_if_unsupported_block_arg_type(
|
||||
Some(Some(Type::TProc))
|
||||
}
|
||||
_ => {
|
||||
gen_counter_incr(asm, Counter::send_block_arg);
|
||||
gen_counter_incr(asm, Counter::send_iseq_block_arg_type);
|
||||
None
|
||||
}
|
||||
}
|
||||
@ -7341,7 +7341,7 @@ fn gen_send_general(
|
||||
let ivar_name = unsafe { get_cme_def_body_attr_id(cme) };
|
||||
|
||||
if flags & VM_CALL_ARGS_BLOCKARG != 0 {
|
||||
gen_counter_incr(asm, Counter::send_block_arg);
|
||||
gen_counter_incr(asm, Counter::send_getter_block_arg);
|
||||
return None;
|
||||
}
|
||||
|
||||
@ -7373,7 +7373,7 @@ fn gen_send_general(
|
||||
gen_counter_incr(asm, Counter::send_cfunc_tracing);
|
||||
return None;
|
||||
} else if flags & VM_CALL_ARGS_BLOCKARG != 0 {
|
||||
gen_counter_incr(asm, Counter::send_block_arg);
|
||||
gen_counter_incr(asm, Counter::send_attrset_block_arg);
|
||||
return None;
|
||||
} else {
|
||||
let ivar_name = unsafe { get_cme_def_body_attr_id(cme) };
|
||||
@ -7396,7 +7396,7 @@ fn gen_send_general(
|
||||
// Send family of methods, e.g. call/apply
|
||||
VM_METHOD_TYPE_OPTIMIZED => {
|
||||
if flags & VM_CALL_ARGS_BLOCKARG != 0 {
|
||||
gen_counter_incr(asm, Counter::send_block_arg);
|
||||
gen_counter_incr(asm, Counter::send_optimized_block_arg);
|
||||
return None;
|
||||
}
|
||||
|
||||
|
||||
@ -319,14 +319,17 @@ make_counters! {
|
||||
send_private_not_fcall,
|
||||
send_cfunc_ruby_array_varg,
|
||||
send_cfunc_argc_mismatch,
|
||||
send_cfunc_block_arg,
|
||||
send_cfunc_toomany_args,
|
||||
send_cfunc_tracing,
|
||||
send_cfunc_kwargs,
|
||||
send_cfunc_splat_with_kw,
|
||||
send_cfunc_splat_send,
|
||||
send_attrset_kwargs,
|
||||
send_attrset_block_arg,
|
||||
send_iseq_tailcall,
|
||||
send_iseq_arity_error,
|
||||
send_iseq_block_arg_type,
|
||||
send_iseq_clobbering_block_arg,
|
||||
send_iseq_leaf_builtin_block_arg_block_param,
|
||||
send_iseq_only_keywords,
|
||||
@ -343,6 +346,7 @@ make_counters! {
|
||||
send_iseq_too_many_kwargs,
|
||||
send_not_implemented_method,
|
||||
send_getter_arity,
|
||||
send_getter_block_arg,
|
||||
send_args_splat_non_iseq,
|
||||
send_args_splat_ivar,
|
||||
send_args_splat_attrset,
|
||||
@ -371,6 +375,7 @@ make_counters! {
|
||||
send_iseq_has_rest_opt_and_block,
|
||||
send_bmethod_ractor,
|
||||
send_bmethod_block_arg,
|
||||
send_optimized_block_arg,
|
||||
|
||||
invokesuper_defined_class_mismatch,
|
||||
invokesuper_kw_splat,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user