Cleanup diff against upstream. Add comments

I did a `git diff --stat` against upstream and looked at all the files
that are outside of YJIT to come up with these minor changes.
This commit is contained in:
Alan Wu 2021-10-06 17:44:19 -04:00
Родитель 884b6f3dbb
Коммит 7c08538aa3
8 изменённых файлов: 8 добавлений и 13 удалений

2
iseq.h
Просмотреть файл

@ -315,8 +315,6 @@ VALUE rb_iseq_defined_string(enum defined_type type);
/* vm.c */
VALUE rb_iseq_local_variables(const rb_iseq_t *iseq);
NOINLINE(void rb_yjit_empty_func_with_ec(rb_control_frame_t *cfp, rb_execution_context_t *ec));
RUBY_SYMBOL_EXPORT_END
#endif /* RUBY_ISEQ_H */

1
mjit.h
Просмотреть файл

@ -193,6 +193,7 @@ mjit_exec(rb_execution_context_t *ec)
RB_DEBUG_COUNTER_INC(mjit_frame_VM2JT);
# endif
RB_DEBUG_COUNTER_INC(mjit_exec_call_func);
// Under SystemV x64 calling convention
// ec -> RDI
// cfp -> RSI
return func(ec, ec->cfp);

4
proc.c
Просмотреть файл

@ -347,7 +347,7 @@ rb_binding_alloc(VALUE klass)
VALUE obj;
rb_binding_t *bind;
obj = TypedData_Make_Struct(klass, rb_binding_t, &ruby_binding_data_type, bind);
#if RUBY_DEBUG
#if YJIT_STATS
rb_yjit_collect_binding_alloc();
#endif
return obj;
@ -614,7 +614,7 @@ bind_local_variable_set(VALUE bindval, VALUE sym, VALUE val)
env = VM_ENV_ENVVAL_PTR(vm_block_ep(&bind->block));
}
#if RUBY_DEBUG
#if YJIT_STATS
rb_yjit_collect_binding_set();
#endif

Просмотреть файл

@ -18,6 +18,5 @@ RubyVM::Instructions = RubyVM::BareInstructions.to_a + \
RubyVM::OperandsUnifications.to_a + \
RubyVM::InstructionsUnifications.to_a
require_relative 'trace_instructions'
RubyVM::Instructions.freeze

2
vm.c
Просмотреть файл

@ -1853,7 +1853,7 @@ rb_vm_check_redefinition_opt_method(const rb_method_entry_t *me, VALUE klass)
if (st_lookup(vm_opt_method_def_table, (st_data_t)me->def, &bop)) {
int flag = vm_redefinition_check_flag(klass);
rb_yjit_bop_redefined(klass, me, (enum ruby_basic_operators)bop);
ruby_vm_redefined_flag[bop] |= flag;
ruby_vm_redefined_flag[bop] |= flag;
}
}
}

Просмотреть файл

@ -236,8 +236,8 @@ STATIC_ASSERT(sizeof_iseq_inline_constant_cache_entry,
struct iseq_inline_constant_cache {
struct iseq_inline_constant_cache_entry *entry;
// For YJIT: the index to the opt_getinlinecache instruction in the same iseq.
// It's set during compile time and constant once set.
// For YJIT: the index to the opt_getinlinecache instruction in the same iseq.
// It's set during compile time and constant once set.
unsigned get_insn_idx;
};

Просмотреть файл

@ -93,13 +93,8 @@ vm_exec_core(rb_execution_context_t *ec, VALUE initial)
#define USE_MACHINE_REGS 1
#elif defined(__GNUC__) && defined(__powerpc64__)
#if 0
DECL_SC_REG(const VALUE *, pc, "14");
DECL_SC_REG(rb_control_frame_t *, cfp, "15");
#else
register rb_control_frame_t *reg_cfp;
const VALUE *reg_pc;
#endif
#define USE_MACHINE_REGS 1
#elif defined(__GNUC__) && defined(__aarch64__)

Просмотреть файл

@ -4808,6 +4808,8 @@ vm_ic_update(const rb_iseq_t *iseq, IC ic, VALUE val, const VALUE *reg_ep)
ruby_vm_const_missing_count = 0;
RB_OBJ_WRITE(iseq, &ic->entry, ice);
#ifndef MJIT_HEADER
// MJIT and YJIT can't be on at the same time, so there is no need to
// notify YJIT about changes to the IC when running inside MJIT code.
rb_yjit_constant_ic_update(iseq, ic);
#endif
}