diff options
| author | Takashi Kokubun <takashikkbn@gmail.com> | 2023-07-26 12:59:59 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-07-26 12:59:59 -0700 |
| commit | 9bdd48597297dcb01a7e07f5a0f716c4ea9cc1e1 (patch) | |
| tree | 5dda5b5857ecb404cf15121575574d8bb554d471 | |
| parent | 37160be439c9a368c206b2eec713820dc97e4e0f (diff) | |
YJIT: Count the number of dynamic send dispatches (#8122)
Notes
Notes:
Merged-By: k0kubun <takashikkbn@gmail.com>
| -rw-r--r-- | yjit.rb | 1 | ||||
| -rw-r--r-- | yjit/src/codegen.rs | 1 | ||||
| -rw-r--r-- | yjit/src/stats.rs | 1 |
3 files changed, 3 insertions, 0 deletions
@@ -270,6 +270,7 @@ module RubyVM::YJIT out.puts "num_send: " + format_number(13, stats[:num_send]) out.puts "num_send_known_class: " + format_number_pct(13, stats[:num_send_known_class], stats[:num_send]) out.puts "num_send_polymorphic: " + format_number_pct(13, stats[:num_send_polymorphic], stats[:num_send]) + out.puts "num_send_dynamic: " + format_number_pct(13, stats[:num_send_dynamic], stats[:num_send]) if stats[:num_send_x86_rel32] != 0 || stats[:num_send_x86_reg] != 0 out.puts "num_send_x86_rel32: " + format_number(13, stats[:num_send_x86_rel32]) out.puts "num_send_x86_reg: " + format_number(13, stats[:num_send_x86_reg]) diff --git a/yjit/src/codegen.rs b/yjit/src/codegen.rs index 6c36a28c6a..f72185b846 100644 --- a/yjit/src/codegen.rs +++ b/yjit/src/codegen.rs @@ -6488,6 +6488,7 @@ fn gen_send_dynamic<F: Fn(&mut Assembler) -> Opnd>( // Fix the interpreter SP deviated by vm_sendish asm.mov(Opnd::mem(64, CFP, RUBY_OFFSET_CFP_SP), SP); + gen_counter_incr(asm, Counter::num_send_dynamic); Some(KeepCompiling) } diff --git a/yjit/src/stats.rs b/yjit/src/stats.rs index a58d232f56..8606e8be87 100644 --- a/yjit/src/stats.rs +++ b/yjit/src/stats.rs @@ -410,6 +410,7 @@ make_counters! { num_send_polymorphic, num_send_x86_rel32, num_send_x86_reg, + num_send_dynamic, iseq_stack_too_large, iseq_too_long, |
