Partly revert a change in #8705

Having this variable actually helps the performance of non-JITed calls.

-----  -----------  ----------  ----------  ----------  -------------  ------------
bench  before (ms)  stddev (%)  after (ms)  stddev (%)  after 1st itr  before/after
fib    241.9        0.5         225.4       1.0         1.06           1.07
-----  -----------  ----------  ----------  ----------  -------------  ------------

(benchmarked with --yjit-cold-threshold=0)
This commit is contained in:
Takashi Kokubun 2023-10-19 17:51:01 -07:00
parent 1640dbdedd
commit 62c1d8187b

5
vm.c
View File

@ -426,14 +426,15 @@ jit_compile(rb_execution_context_t *ec)
{
const rb_iseq_t *iseq = ec->cfp->iseq;
struct rb_iseq_constant_body *body = ISEQ_BODY(iseq);
if (!(rb_yjit_enabled_p || rb_rjit_call_p)) {
bool yjit_enabled = rb_yjit_enabled_p;
if (!(yjit_enabled || rb_rjit_call_p)) {
return NULL;
}
// Increment the ISEQ's call counter and trigger JIT compilation if not compiled
if (body->jit_entry == NULL) {
body->jit_entry_calls++;
if (rb_yjit_enabled_p) {
if (yjit_enabled) {
if (rb_yjit_threshold_hit(iseq, body->jit_entry_calls)) {
rb_yjit_compile_iseq(iseq, ec, false);
}