ruby-changes:55168
From: k0kubun <ko1@a...>
Date: Fri, 29 Mar 2019 21:53:05 +0900 (JST)
Subject: [ruby-changes:55168] k0kubun:r67375 (trunk): Add debug counters for MJIT
k0kubun 2019-03-29 21:52:59 +0900 (Fri, 29 Mar 2019) New Revision: 67375 https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=67375 Log: Add debug counters for MJIT Modified files: trunk/debug_counter.h trunk/mjit.h Index: debug_counter.h =================================================================== --- debug_counter.h (revision 67374) +++ debug_counter.h (revision 67375) @@ -255,6 +255,14 @@ RB_DEBUG_COUNTER(theap_alloc) https://github.com/ruby/ruby/blob/trunk/debug_counter.h#L255 RB_DEBUG_COUNTER(theap_alloc_fail) RB_DEBUG_COUNTER(theap_evacuate) +/* mjit_exec() counts */ +RB_DEBUG_COUNTER(mjit_exec) +RB_DEBUG_COUNTER(mjit_exec_call_func) +RB_DEBUG_COUNTER(mjit_exec_not_added) +RB_DEBUG_COUNTER(mjit_exec_not_added_add_iseq) +RB_DEBUG_COUNTER(mjit_exec_not_ready) +RB_DEBUG_COUNTER(mjit_exec_not_compiled) + /* load (not implemented yet) */ /* RB_DEBUG_COUNTER(load_files) Index: mjit.h =================================================================== --- mjit.h (revision 67374) +++ mjit.h (revision 67375) @@ -10,6 +10,7 @@ https://github.com/ruby/ruby/blob/trunk/mjit.h#L10 #define RUBY_MJIT_H 1 #include "ruby.h" +#include "debug_counter.h" #if USE_MJIT @@ -101,6 +102,7 @@ mjit_exec(rb_execution_context_t *ec) https://github.com/ruby/ruby/blob/trunk/mjit.h#L102 if (!mjit_call_p) return Qundef; + RB_DEBUG_COUNTER_INC(mjit_exec); iseq = ec->cfp->iseq; body = iseq->body; @@ -110,7 +112,9 @@ mjit_exec(rb_execution_context_t *ec) https://github.com/ruby/ruby/blob/trunk/mjit.h#L112 if (UNLIKELY((uintptr_t)func <= (uintptr_t)LAST_JIT_ISEQ_FUNC)) { switch ((enum rb_mjit_iseq_func)func) { case NOT_ADDED_JIT_ISEQ_FUNC: + RB_DEBUG_COUNTER_INC(mjit_exec_not_added); if (total_calls == mjit_opts.min_calls && mjit_target_iseq_p(body)) { + RB_DEBUG_COUNTER_INC(mjit_exec_not_added_add_iseq); mjit_add_iseq_to_process(iseq); if (UNLIKELY(mjit_opts.wait)) { return mjit_wait_call(ec, body); @@ -118,13 +122,17 @@ mjit_exec(rb_execution_context_t *ec) https://github.com/ruby/ruby/blob/trunk/mjit.h#L122 } return Qundef; case NOT_READY_JIT_ISEQ_FUNC: + RB_DEBUG_COUNTER_INC(mjit_exec_not_ready); + return Qundef; case NOT_COMPILED_JIT_ISEQ_FUNC: + RB_DEBUG_COUNTER_INC(mjit_exec_not_compiled); return Qundef; default: /* to avoid warning with LAST_JIT_ISEQ_FUNC */ break; } } + RB_DEBUG_COUNTER_INC(mjit_exec_call_func); return func(ec, ec->cfp); } -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/