9# define ZJIT_STATS (USE_ZJIT && RUBY_DEBUG)
13extern void *rb_zjit_entry;
14extern uint64_t rb_zjit_call_threshold;
15extern uint64_t rb_zjit_profile_threshold;
16void rb_zjit_compile_iseq(
const rb_iseq_t *iseq,
bool jit_exception);
17void rb_zjit_profile_insn(uint32_t insn, rb_execution_context_t *ec);
18void rb_zjit_profile_enable(
const rb_iseq_t *iseq);
19void rb_zjit_bop_redefined(
int redefined_flag,
enum ruby_basic_operators bop);
20void rb_zjit_cme_invalidate(
const rb_callable_method_entry_t *cme);
21void rb_zjit_cme_free(
const rb_callable_method_entry_t *cme);
22void rb_zjit_klass_free(
VALUE klass);
23void rb_zjit_invalidate_no_ep_escape(
const rb_iseq_t *iseq);
24void rb_zjit_constant_state_changed(
ID id);
25void rb_zjit_iseq_mark(
void *payload);
26void rb_zjit_iseq_update_references(
void *payload);
27void rb_zjit_iseq_free(
const rb_iseq_t *iseq);
28void rb_zjit_before_ractor_spawn(
void);
29void rb_zjit_tracing_invalidate_all(
void);
30void rb_zjit_invalidate_no_singleton_class(
VALUE klass);
32#define rb_zjit_entry 0
33static inline void rb_zjit_compile_iseq(
const rb_iseq_t *iseq,
bool jit_exception) {}
34static inline void rb_zjit_profile_insn(uint32_t insn, rb_execution_context_t *ec) {}
35static inline void rb_zjit_profile_enable(
const rb_iseq_t *iseq) {}
36static inline void rb_zjit_bop_redefined(
int redefined_flag,
enum ruby_basic_operators bop) {}
37static inline void rb_zjit_cme_invalidate(
const rb_callable_method_entry_t *cme) {}
38static inline void rb_zjit_invalidate_no_ep_escape(
const rb_iseq_t *iseq) {}
39static inline void rb_zjit_constant_state_changed(
ID id) {}
40static inline void rb_zjit_before_ractor_spawn(
void) {}
41static inline void rb_zjit_tracing_invalidate_all(
void) {}
42static inline void rb_zjit_invalidate_no_singleton_class(
VALUE klass) {}
45#define rb_zjit_enabled_p (rb_zjit_entry != 0)
uintptr_t ID
Type that represents a Ruby identifier such as a variable name.
uintptr_t VALUE
Type that represents a Ruby object.