зеркало из https://github.com/github/ruby.git
RJIT: Avoid incrementing vm_insns_count
during compilation
This commit is contained in:
Родитель
3c18277629
Коммит
009968a700
4
rjit.c
4
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_enable(void);
|
||||||
extern VALUE rb_gc_disable(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 { \
|
#define WITH_RJIT_ISOLATED(stmt) do { \
|
||||||
VALUE was_disabled = rb_gc_disable(); \
|
VALUE was_disabled = rb_gc_disable(); \
|
||||||
rb_hook_list_t *global_hooks = rb_ec_ractor_hooks(GET_EC()); \
|
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; \
|
bool original_call_p = rb_rjit_call_p; \
|
||||||
rjit_stats_p = false; \
|
rjit_stats_p = false; \
|
||||||
rb_rjit_call_p = false; \
|
rb_rjit_call_p = false; \
|
||||||
|
uint64_t insns_count = rb_vm_insns_count; \
|
||||||
stmt; \
|
stmt; \
|
||||||
|
rb_vm_insns_count = insns_count; \
|
||||||
rb_rjit_call_p = (rjit_cancel_p ? false : original_call_p); \
|
rb_rjit_call_p = (rjit_cancel_p ? false : original_call_p); \
|
||||||
rjit_stats_p = rb_rjit_opts.stats; \
|
rjit_stats_p = rb_rjit_opts.stats; \
|
||||||
global_hooks->events = rb_rjit_global_events; \
|
global_hooks->events = rb_rjit_global_events; \
|
||||||
|
|
Загрузка…
Ссылка в новой задаче