mirror of
https://github.com/ruby/ruby.git
synced 2025-08-15 13:39:04 +02:00
YJIT: Lazily push a frame for specialized C funcs (#10080)
* YJIT: Lazily push a frame for specialized C funcs Co-authored-by: Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com> * Fix a comment on pc_to_cfunc * Rename rb_yjit_check_pc to rb_yjit_lazy_push_frame * Rename it to jit_prepare_lazy_frame_call * Fix a typo * Optimize String#getbyte as well * Optimize String#byteslice as well --------- Co-authored-by: Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
This commit is contained in:
parent
50ace992c7
commit
8a6740c70e
12 changed files with 206 additions and 10 deletions
2
yjit.h
2
yjit.h
|
@ -45,6 +45,7 @@ void rb_yjit_before_ractor_spawn(void);
|
|||
void rb_yjit_constant_ic_update(const rb_iseq_t *const iseq, IC ic, unsigned insn_idx);
|
||||
void rb_yjit_tracing_invalidate_all(void);
|
||||
void rb_yjit_show_usage(int help, int highlight, unsigned int width, int columns);
|
||||
void rb_yjit_lazy_push_frame(const VALUE *pc);
|
||||
|
||||
#else
|
||||
// !USE_YJIT
|
||||
|
@ -66,6 +67,7 @@ static inline void rb_yjit_iseq_free(void *payload) {}
|
|||
static inline void rb_yjit_before_ractor_spawn(void) {}
|
||||
static inline void rb_yjit_constant_ic_update(const rb_iseq_t *const iseq, IC ic, unsigned insn_idx) {}
|
||||
static inline void rb_yjit_tracing_invalidate_all(void) {}
|
||||
static inline void rb_yjit_lazy_push_frame(const VALUE *pc) {}
|
||||
|
||||
#endif // #if USE_YJIT
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue