summaryrefslogtreecommitdiff
path: root/yjit_iface.h
diff options
context:
space:
mode:
Diffstat (limited to 'yjit_iface.h')
-rw-r--r--yjit_iface.h123
1 files changed, 6 insertions, 117 deletions
diff --git a/yjit_iface.h b/yjit_iface.h
index 319e877560..5f070fc19f 100644
--- a/yjit_iface.h
+++ b/yjit_iface.h
@@ -16,128 +16,17 @@
# define YJIT_DEFAULT_CALL_THRESHOLD 10
#endif
-#if YJIT_STATS
-struct yjit_comment {
- uint32_t offset;
- const char *comment;
-};
-
-typedef rb_darray(struct yjit_comment) yjit_comment_array_t;
-
-extern yjit_comment_array_t yjit_code_comments;
-#endif // if YJIT_STATS
-
-
-#if YJIT_STATS
-
-#define YJIT_DECLARE_COUNTERS(...) struct rb_yjit_runtime_counters { \
- int64_t __VA_ARGS__; \
-}; \
-static char yjit_counter_names[] = #__VA_ARGS__;
-
-YJIT_DECLARE_COUNTERS(
- exec_instruction,
-
- send_keywords,
- send_kw_splat,
- send_args_splat,
- send_block_arg,
- send_ivar_set_method,
- send_zsuper_method,
- send_undef_method,
- send_optimized_method,
- send_missing_method,
- send_bmethod,
- send_refined_method,
- send_cfunc_ruby_array_varg,
- send_cfunc_argc_mismatch,
- send_cfunc_toomany_args,
- send_cfunc_tracing,
- send_iseq_tailcall,
- send_iseq_arity_error,
- send_iseq_only_keywords,
- send_iseq_complex_callee,
- send_not_implemented_method,
- send_getter_arity,
- send_se_cf_overflow,
- send_se_protected_check_failed,
-
- traced_cfunc_return,
-
- invokesuper_me_changed,
- invokesuper_block,
-
- leave_se_interrupt,
- leave_interp_return,
- leave_start_pc_non_zero,
-
- getivar_se_self_not_heap,
- getivar_idx_out_of_range,
-
- setivar_se_self_not_heap,
- setivar_idx_out_of_range,
- setivar_val_heapobject,
- setivar_name_not_mapped,
- setivar_not_object,
- setivar_frozen,
-
- oaref_argc_not_one,
- oaref_arg_not_fixnum,
-
- opt_getinlinecache_miss,
-
- binding_allocations,
- binding_set,
-
- vm_insns_count,
- compiled_iseq_count,
- compiled_block_count,
-
- invalidation_count,
- invalidate_method_lookup,
- invalidate_bop_redefined,
- invalidate_ractor_spawn,
- invalidate_constant_state_bump,
- invalidate_constant_ic_fill,
-
- constant_state_bumps,
-
- expandarray_splat,
- expandarray_postarg,
- expandarray_not_array,
- expandarray_rhs_too_small,
-
- gbpp_block_param_modified,
- gbpp_block_handler_not_iseq,
-
- // Member with known name for iterating over counters
- last_member
-)
-
-#undef YJIT_DECLARE_COUNTERS
-
-RUBY_EXTERN struct rb_yjit_runtime_counters yjit_runtime_counters;
-
-#endif // YJIT_STATS
-
RUBY_EXTERN struct rb_yjit_options rb_yjit_opts;
-VALUE *yjit_iseq_pc_at_idx(const rb_iseq_t *iseq, uint32_t insn_idx);
-int yjit_opcode_at_pc(const rb_iseq_t *iseq, const VALUE *pc);
-void yjit_print_iseq(const rb_iseq_t *iseq);
-
-void check_cfunc_dispatch(VALUE receiver, struct rb_callinfo *ci, void *callee, rb_callable_method_entry_t *compile_time_cme);
-
-RBIMPL_ATTR_NODISCARD() bool assume_bop_not_redefined(block_t *block, int redefined_flag, enum ruby_basic_operators bop);
-void assume_method_lookup_stable(VALUE receiver_klass, const rb_callable_method_entry_t *cme, block_t *block);
-RBIMPL_ATTR_NODISCARD() bool assume_single_ractor_mode(block_t *block);
-void assume_stable_global_constant_state(block_t *block);
+static VALUE *yjit_iseq_pc_at_idx(const rb_iseq_t *iseq, uint32_t insn_idx);
+static int yjit_opcode_at_pc(const rb_iseq_t *iseq, const VALUE *pc);
+static void yjit_print_iseq(const rb_iseq_t *iseq);
// this function *must* return passed exit_pc
-const VALUE *rb_yjit_count_side_exit_op(const VALUE *exit_pc);
+static const VALUE *yjit_count_side_exit_op(const VALUE *exit_pc);
-void yjit_unlink_method_lookup_dependency(block_t *block);
-void yjit_block_assumptions_free(block_t *block);
+static void yjit_unlink_method_lookup_dependency(block_t *block);
+static void yjit_block_assumptions_free(block_t *block);
VALUE rb_yjit_code_page_alloc(void);
code_page_t *rb_yjit_code_page_unwrap(VALUE cp_obj);