diff options
author | Takashi Kokubun <[email protected]> | 2024-04-25 07:04:53 -0700 |
---|---|---|
committer | GitHub <[email protected]> | 2024-04-25 10:04:53 -0400 |
commit | 7ab1a608e7413cdb0f93243eb3e6e20a32cec44e (patch) | |
tree | 29836bd248b0e5bce497ae6969a6b6e7c2055152 /yjit.h | |
parent | f248e1008a8f79cca801b27d512a587f65a0dd36 (diff) |
YJIT: Optimize local variables when EP == BP (take 2) (#10607)
* Revert "Revert "YJIT: Optimize local variables when EP == BP" (#10584)"
This reverts commit c8783441952217c18e523749c821f82cd7e5d222.
* YJIT: Take care of GC references in ISEQ invariants
Co-authored-by: Alan Wu <[email protected]>
---------
Co-authored-by: Alan Wu <[email protected]>
Diffstat (limited to 'yjit.h')
-rw-r--r-- | yjit.h | 10 |
1 files changed, 6 insertions, 4 deletions
@@ -40,14 +40,15 @@ void rb_yjit_init(bool yjit_enabled); void rb_yjit_bop_redefined(int redefined_flag, enum ruby_basic_operators bop); void rb_yjit_constant_state_changed(ID id); void rb_yjit_iseq_mark(void *payload); -void rb_yjit_iseq_update_references(void *payload); -void rb_yjit_iseq_free(void *payload); +void rb_yjit_iseq_update_references(const rb_iseq_t *iseq); +void rb_yjit_iseq_free(const rb_iseq_t *iseq); 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); void rb_yjit_invalidate_no_singleton_class(VALUE klass); +void rb_yjit_invalidate_ep_is_bp(const rb_iseq_t *iseq); #else // !USE_YJIT @@ -64,13 +65,14 @@ static inline void rb_yjit_init(bool yjit_enabled) {} static inline void rb_yjit_bop_redefined(int redefined_flag, enum ruby_basic_operators bop) {} static inline void rb_yjit_constant_state_changed(ID id) {} static inline void rb_yjit_iseq_mark(void *payload) {} -static inline void rb_yjit_iseq_update_references(void *payload) {} -static inline void rb_yjit_iseq_free(void *payload) {} +static inline void rb_yjit_iseq_update_references(const rb_iseq_t *iseq) {} +static inline void rb_yjit_iseq_free(const rb_iseq_t *iseq) {} 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) {} static inline void rb_yjit_invalidate_no_singleton_class(VALUE klass) {} +static inline void rb_yjit_invalidate_ep_is_bp(const rb_iseq_t *iseq) {} #endif // #if USE_YJIT |