7#include "ruby/internal/config.h"
8#include "ruby_assert.h"
15# define YJIT_STATS RUBY_DEBUG
21#if defined(_WIN32) ? defined(_M_AMD64) : (defined(__x86_64__) || defined(__aarch64__))
24# error YJIT unsupported platform
28extern uint64_t rb_yjit_call_threshold;
29extern uint64_t rb_yjit_cold_threshold;
30extern uint64_t rb_yjit_live_iseq_count;
31extern bool rb_yjit_enabled_p;
32void rb_yjit_incr_counter(
const char *counter_name);
33void rb_yjit_invalidate_all_method_lookup_assumptions(
void);
35void rb_yjit_collect_binding_alloc(
void);
36void rb_yjit_collect_binding_set(
void);
38void rb_yjit_init(
bool yjit_enabled);
39void rb_yjit_bop_redefined(
int redefined_flag,
enum ruby_basic_operators bop);
40void rb_yjit_constant_state_changed(
ID id);
41void rb_yjit_iseq_mark(
void *payload);
42void rb_yjit_iseq_update_references(
void *payload);
43void rb_yjit_iseq_free(
void *payload);
44void rb_yjit_before_ractor_spawn(
void);
45void rb_yjit_constant_ic_update(
const rb_iseq_t *
const iseq,
IC ic,
unsigned insn_idx);
46void rb_yjit_tracing_invalidate_all(
void);
47void rb_yjit_show_usage(
int help,
int highlight,
unsigned int width,
int columns);
53#define rb_yjit_enabled_p false
54static inline void rb_yjit_incr_counter(
const char *counter_name) {}
55static inline void rb_yjit_invalidate_all_method_lookup_assumptions(
void) {}
57static inline void rb_yjit_collect_binding_alloc(
void) {}
58static inline void rb_yjit_collect_binding_set(
void) {}
60static inline void rb_yjit_init(
bool yjit_enabled) {}
61static inline void rb_yjit_bop_redefined(
int redefined_flag,
enum ruby_basic_operators bop) {}
62static inline void rb_yjit_constant_state_changed(
ID id) {}
63static inline void rb_yjit_iseq_mark(
void *payload) {}
64static inline void rb_yjit_iseq_update_references(
void *payload) {}
65static inline void rb_yjit_iseq_free(
void *payload) {}
66static inline void rb_yjit_before_ractor_spawn(
void) {}
67static inline void rb_yjit_constant_ic_update(
const rb_iseq_t *
const iseq,
IC ic,
unsigned insn_idx) {}
68static inline void rb_yjit_tracing_invalidate_all(
void) {}
uintptr_t ID
Type that represents a Ruby identifier such as a variable name.