diff options
author | Takashi Kokubun <[email protected]> | 2020-12-16 06:24:07 -0800 |
---|---|---|
committer | GitHub <[email protected]> | 2020-12-16 06:24:07 -0800 |
commit | 53babf35ef5b643774636550ea23851e2607e076 (patch) | |
tree | a18e660dd7f39718188fb161fd453c6c39097a14 /mjit.h | |
parent | bfb374be2342d7822cd37a1b100cb1715f85ca74 (diff) |
Inline getconstant on JIT (#3906)
* Inline getconstant on JIT
* Support USE_MJIT=0
Notes
Notes:
Merged-By: k0kubun <[email protected]>
Diffstat (limited to 'mjit.h')
-rw-r--r-- | mjit.h | 7 |
1 files changed, 7 insertions, 0 deletions
@@ -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){} |