From 9bdd48597297dcb01a7e07f5a0f716c4ea9cc1e1 Mon Sep 17 00:00:00 2001 From: Takashi Kokubun Date: Wed, 26 Jul 2023 12:59:59 -0700 Subject: [PATCH] YJIT: Count the number of dynamic send dispatches (#8122) --- yjit.rb | 1 + yjit/src/codegen.rs | 1 + yjit/src/stats.rs | 1 + 3 files changed, 3 insertions(+) diff --git a/yjit.rb b/yjit.rb index 3308be60c6..cbbf772fac 100644 --- a/yjit.rb +++ b/yjit.rb @@ -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 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,