ruby/rjit_c.h

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

164 lines
3.9 KiB
C
Raw Normal View History

2023-03-06 23:17:25 -08:00
// This file is parsed by tool/rjit/generate.rb to generate rjit_c.rb
2023-03-06 23:15:30 -08:00
#ifndef RJIT_C_H
#define RJIT_C_H
2022-09-04 21:53:46 -07:00
#include "ruby/internal/config.h"
2023-02-13 23:57:40 -08:00
#include "internal/string.h"
2023-03-04 23:20:54 -08:00
#include "internal/struct.h"
2023-03-02 23:44:57 -08:00
#include "internal/variable.h"
2022-09-04 21:53:46 -07:00
#include "vm_core.h"
#include "vm_callinfo.h"
#include "builtin.h"
#include "ccan/list/list.h"
2023-03-06 23:17:25 -08:00
#include "rjit.h"
#include "shape.h"
2022-09-04 21:53:46 -07:00
2023-03-06 23:17:25 -08:00
extern uint8_t *rb_rjit_mem_block;
2022-12-11 21:42:25 -08:00
2023-03-06 23:17:25 -08:00
#define RJIT_RUNTIME_COUNTERS(...) struct rb_rjit_runtime_counters { size_t __VA_ARGS__; };
2023-03-06 23:15:30 -08:00
RJIT_RUNTIME_COUNTERS(
2022-12-26 22:46:40 -08:00
vm_insns_count,
2023-03-06 23:17:25 -08:00
rjit_insns_count,
2023-02-06 15:07:58 -08:00
send_args_splat_kw_splat,
2023-02-08 01:48:32 -08:00
send_args_splat,
2023-03-21 22:55:23 -07:00
send_args_splat_not_array,
send_args_splat_length_not_equal,
send_args_splat_cfunc_var_args,
2023-03-21 22:55:23 -07:00
send_args_splat_arity_error,
send_args_splat_ruby2_hash,
2023-02-06 15:07:58 -08:00
send_kw_splat,
2023-02-08 01:48:32 -08:00
send_kwarg,
send_klass_megamorphic,
2023-02-06 15:07:58 -08:00
send_missing_cme,
send_private,
2023-03-03 21:50:49 -08:00
send_protected_check_failed,
2023-02-06 15:07:58 -08:00
send_tailcall,
2023-02-15 23:43:53 -08:00
send_notimplemented,
send_missing,
2023-02-08 14:24:10 -08:00
send_bmethod,
send_alias,
2023-02-15 23:43:53 -08:00
send_undef,
2023-02-08 14:24:10 -08:00
send_zsuper,
send_refined,
2023-02-09 14:38:41 -08:00
send_stackoverflow,
2023-02-09 21:49:35 -08:00
send_arity,
send_c_tracing,
2023-03-18 22:57:31 -07:00
send_is_a_class_mismatch,
2023-03-18 23:13:25 -07:00
send_instance_of_class_mismatch,
2023-02-06 15:07:58 -08:00
2023-03-04 21:13:01 -08:00
send_blockarg_not_nil_or_proxy,
2023-02-24 14:48:02 -08:00
send_blockiseq,
send_block_handler,
2023-02-28 22:50:04 -08:00
send_block_setup,
2023-03-04 13:39:04 -08:00
send_block_not_nil,
2023-03-04 21:13:01 -08:00
send_block_not_proxy,
2023-02-24 14:48:02 -08:00
2023-03-04 21:35:45 -08:00
send_iseq_kwparam,
send_iseq_complex_kwarg,
send_iseq_complex_kw_splat,
send_iseq_complex_accepts_no_kwarg,
send_iseq_complex_arg_setup_block,
send_iseq_complex_arity,
send_iseq_complex_has_lead,
send_iseq_complex_has_rest,
send_iseq_complex_has_post,
send_iseq_complex_has_opt,
send_iseq_complex_has_kw,
send_iseq_complex_has_kwrest,
send_iseq_complex_has_block,
send_iseq_ruby2_keywords,
send_iseq_has_rest_and_captured,
send_iseq_has_rest_and_kw,
send_iseq_has_no_kw,
send_iseq_zsuper,
send_iseq_materialized_block,
send_iseq_splat_with_kw,
send_iseq_has_rest,
send_iseq_block_arg0_splat,
send_iseq_kw_call,
send_iseq_splat,
send_iseq_has_rest_and_optional,
send_iseq_arity_error,
send_iseq_missing_optional_kw,
2023-02-09 16:25:06 -08:00
send_cfunc_variadic,
send_cfunc_too_many_args,
2023-02-14 23:44:44 -08:00
send_cfunc_ruby_array_varg,
2023-02-09 16:25:06 -08:00
2023-03-26 17:41:05 -07:00
send_attrset_splat,
send_attrset_kwarg,
send_attrset_method,
send_attrset_blockarg,
2023-02-08 14:36:55 -08:00
send_ivar_splat,
send_ivar_opt_send,
send_ivar_blockarg,
2023-02-16 22:29:58 -08:00
send_optimized_send_no_args,
send_optimized_send_not_sym_or_str,
2023-03-01 23:29:32 -08:00
send_optimized_send_mid_class_changed,
send_optimized_send_mid_id_changed,
2023-02-16 22:29:58 -08:00
send_optimized_send_null_mid,
send_optimized_send_send,
2023-03-04 21:35:45 -08:00
send_optimized_call_block,
send_optimized_call_kwarg,
send_optimized_call_splat,
2023-03-04 23:20:54 -08:00
send_optimized_struct_aref_error,
2023-02-16 22:29:58 -08:00
2023-03-04 23:20:54 -08:00
send_optimized_blockarg,
2023-03-04 22:42:03 -08:00
send_optimized_block_call,
send_optimized_struct_aset,
2023-03-04 23:20:54 -08:00
send_bmethod_not_iseq,
send_bmethod_blockarg,
2023-03-04 22:42:03 -08:00
2023-02-24 14:48:02 -08:00
invokesuper_me_changed,
2023-03-12 22:27:43 -07:00
invokeblock_none,
invokeblock_symbol,
invokeblock_proc,
2023-03-12 22:27:43 -07:00
invokeblock_tag_changed,
invokeblock_iseq_block_changed,
2023-03-19 21:49:51 -07:00
invokeblock_iseq_arity,
invokeblock_iseq_arg0_splat,
2023-03-19 23:19:58 -07:00
invokeblock_ifunc_args_splat,
invokeblock_ifunc_kw_splat,
2023-03-12 22:27:43 -07:00
2023-02-08 00:47:01 -08:00
getivar_megamorphic,
2023-02-07 23:32:13 -08:00
getivar_not_heap,
2023-02-07 14:42:58 -08:00
getivar_special_const,
getivar_too_complex,
2023-02-13 22:23:22 -08:00
optaref_arg_not_fixnum,
2023-02-08 11:10:04 -08:00
optaref_argc_not_one,
2023-02-13 22:23:22 -08:00
optaref_recv_not_array,
optaref_recv_not_hash,
2023-02-08 11:10:04 -08:00
optaref_send,
optgetconst_not_cached,
optgetconst_cref,
2023-03-03 22:14:15 -08:00
optgetconst_cache_miss,
2023-03-02 21:14:26 -08:00
setivar_frozen,
setivar_not_heap,
setivar_megamorphic,
2023-03-02 23:44:57 -08:00
setivar_too_complex,
2023-03-02 21:14:26 -08:00
2023-02-15 21:26:04 -08:00
expandarray_splat,
expandarray_postarg,
expandarray_not_array,
expandarray_rhs_too_small,
2023-03-03 21:29:20 -08:00
getblockpp_block_param_modified,
getblockpp_block_handler_none,
getblockpp_not_gc_guarded,
getblockpp_not_iseq_block,
2023-02-07 00:00:09 -08:00
compiled_block_count
2022-12-26 22:46:40 -08:00
)
2023-03-06 23:15:30 -08:00
#undef RJIT_RUNTIME_COUNTERS
2023-03-06 23:17:25 -08:00
extern struct rb_rjit_runtime_counters rb_rjit_counters;
2022-12-26 22:46:40 -08:00
2023-03-06 23:15:30 -08:00
#endif /* RJIT_C_H */