From 53babf35ef5b643774636550ea23851e2607e076 Mon Sep 17 00:00:00 2001 From: Takashi Kokubun Date: Wed, 16 Dec 2020 06:24:07 -0800 Subject: Inline getconstant on JIT (#3906) * Inline getconstant on JIT * Support USE_MJIT=0 --- mjit.h | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'mjit.h') diff --git a/mjit.h b/mjit.h index a05305cf53..a523bc9512 100644 --- a/mjit.h +++ b/mjit.h @@ -70,6 +70,8 @@ struct rb_mjit_compile_info { bool disable_send_cache; // Disable method inlining bool disable_inlining; + // Disable opt_getinlinecache inlining + bool disable_const_cache; }; typedef VALUE (*mjit_func_t)(rb_execution_context_t *, rb_control_frame_t *); @@ -81,10 +83,13 @@ RUBY_EXTERN bool mjit_call_p; extern void rb_mjit_add_iseq_to_process(const rb_iseq_t *iseq); extern VALUE rb_mjit_wait_call(rb_execution_context_t *ec, struct rb_iseq_constant_body *body); extern struct rb_mjit_compile_info* rb_mjit_iseq_compile_info(const struct rb_iseq_constant_body *body); +extern void rb_mjit_before_vm_ic_update(void); +extern void rb_mjit_after_vm_ic_update(void); extern void rb_mjit_recompile_send(const rb_iseq_t *iseq); extern void rb_mjit_recompile_ivar(const rb_iseq_t *iseq); extern void rb_mjit_recompile_exivar(const rb_iseq_t *iseq); extern void rb_mjit_recompile_inlining(const rb_iseq_t *iseq); +extern void rb_mjit_recompile_const(const rb_iseq_t *iseq); RUBY_SYMBOL_EXPORT_END extern bool mjit_compile(FILE *f, const rb_iseq_t *iseq, const char *funcname, int id); @@ -189,6 +194,8 @@ void mjit_finish(bool close_handle_p); # else // USE_MJIT +static inline void rb_mjit_before_vm_ic_update(void){} +static inline void rb_mjit_after_vm_ic_update(void){} static inline struct mjit_cont *mjit_cont_new(rb_execution_context_t *ec){return NULL;} static inline void mjit_cont_free(struct mjit_cont *cont){} static inline void mjit_gc_start_hook(void){} -- cgit v1.2.3