aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKoichi Sasada <ko1@atdot.net>2019-12-17 13:14:52 +0900
committerKoichi Sasada <ko1@atdot.net>2019-12-17 13:15:38 +0900
commitfbe229906b6e55c2e7bb1e68452d5c225503b9ca (patch)
tree2ca6c924ed354610d94cd48cb04d888913e32bfd
parent618d09115185efa05f6948247d86087f4aa96118 (diff)
downloadruby-fbe229906b6e55c2e7bb1e68452d5c225503b9ca.tar.gz
add debug counter to count `call` reusing cases.
-rw-r--r--debug_counter.h1
-rw-r--r--vm_insnhelper.c1
2 files changed, 2 insertions, 0 deletions
diff --git a/debug_counter.h b/debug_counter.h
index 35ffe08c8d..ea045a81e4 100644
--- a/debug_counter.h
+++ b/debug_counter.h
@@ -46,6 +46,7 @@ RB_DEBUG_COUNTER(mc_miss_by_distinct)
RB_DEBUG_COUNTER(mc_miss_by_refine)
RB_DEBUG_COUNTER(mc_miss_by_visi)
RB_DEBUG_COUNTER(mc_miss_spurious)
+RB_DEBUG_COUNTER(mc_miss_reuse_call)
/*
* call cache fastpath usage
diff --git a/vm_insnhelper.c b/vm_insnhelper.c
index e7e20ee3ca..efd297d506 100644
--- a/vm_insnhelper.c
+++ b/vm_insnhelper.c
@@ -1458,6 +1458,7 @@ calccall(const struct rb_call_data *cd, const rb_callable_method_entry_t *me)
}
else {
RB_DEBUG_COUNTER_INC(mc_miss_spurious);
+ (void)RB_DEBUG_COUNTER_INC_IF(mc_miss_reuse_call, cc->call != vm_call_general);
return cc->call;
}
}