From 0bd025ad6991f2159ef8bd596a79c89b79f5cc3e Mon Sep 17 00:00:00 2001 From: Takashi Kokubun Date: Thu, 28 May 2020 22:45:27 -0700 Subject: [PATCH] Add a debug_counter for JIT cancel on leave --- debug_counter.h | 1 + tool/ruby_vm/views/mjit_compile.inc.erb | 1 + 2 files changed, 2 insertions(+) diff --git a/debug_counter.h b/debug_counter.h index c043531c34..f6223fba85 100644 --- a/debug_counter.h +++ b/debug_counter.h @@ -333,6 +333,7 @@ RB_DEBUG_COUNTER(mjit_cancel_exivar_inline) RB_DEBUG_COUNTER(mjit_cancel_send_inline) RB_DEBUG_COUNTER(mjit_cancel_opt_insn) /* CALL_SIMPLE_METHOD */ RB_DEBUG_COUNTER(mjit_cancel_invalidate_all) +RB_DEBUG_COUNTER(mjit_cancel_leave) /* rb_mjit_unit_list length */ RB_DEBUG_COUNTER(mjit_length_unit_queue) diff --git a/tool/ruby_vm/views/mjit_compile.inc.erb b/tool/ruby_vm/views/mjit_compile.inc.erb index 019994e2dc..c9755454ba 100644 --- a/tool/ruby_vm/views/mjit_compile.inc.erb +++ b/tool/ruby_vm/views/mjit_compile.inc.erb @@ -76,6 +76,7 @@ switch (insn) { fprintf(f, " if (UNLIKELY(RUBY_VM_INTERRUPTED_ANY(ec))) {\n"); fprintf(f, " reg_cfp->sp = vm_base_ptr(reg_cfp) + %d;\n", b->stack_size); fprintf(f, " reg_cfp->pc = original_body_iseq + %d;\n", pos); + fprintf(f, " RB_DEBUG_COUNTER_INC(mjit_cancel_leave);\n"); fprintf(f, " goto cancel;\n"); fprintf(f, " }\n"); fprintf(f, " ec->cfp = RUBY_VM_PREVIOUS_CONTROL_FRAME(reg_cfp);\n"); // vm_pop_frame