From 009968a700209336eb592ccb83bddcf7b2c17984 Mon Sep 17 00:00:00 2001 From: Takashi Kokubun Date: Thu, 21 Dec 2023 17:12:40 -0800 Subject: [PATCH] RJIT: Avoid incrementing vm_insns_count during compilation --- rjit.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/rjit.c b/rjit.c index a2ce825588645a..93f372673dc09e 100644 --- a/rjit.c +++ b/rjit.c @@ -165,7 +165,9 @@ struct rb_rjit_runtime_counters rb_rjit_counters = { 0 }; extern VALUE rb_gc_enable(void); extern VALUE rb_gc_disable(void); +extern uint64_t rb_vm_insns_count; +// Disable GC, TracePoint, and VM insns counter #define WITH_RJIT_ISOLATED(stmt) do { \ VALUE was_disabled = rb_gc_disable(); \ rb_hook_list_t *global_hooks = rb_ec_ractor_hooks(GET_EC()); \ @@ -174,7 +176,9 @@ extern VALUE rb_gc_disable(void); bool original_call_p = rb_rjit_call_p; \ rjit_stats_p = false; \ rb_rjit_call_p = false; \ + uint64_t insns_count = rb_vm_insns_count; \ stmt; \ + rb_vm_insns_count = insns_count; \ rb_rjit_call_p = (rjit_cancel_p ? false : original_call_p); \ rjit_stats_p = rb_rjit_opts.stats; \ global_hooks->events = rb_rjit_global_events; \