summaryrefslogtreecommitdiff
path: root/mjit_compiler.c
diff options
context:
space:
mode:
authorTakashi Kokubun <takashikkbn@gmail.com>2022-11-29 00:12:29 -0800
committerTakashi Kokubun <takashikkbn@gmail.com>2022-11-29 00:12:33 -0800
commit8a0acbea4cf7be4bfaf329d077b2b4c9a2ad425b (patch)
tree76558f7cf4269219bc29b9d020c90cfa0c637e9a /mjit_compiler.c
parent44165df121f13ef7b148b8ba4aa08386a24c4df5 (diff)
MJIT: Refactor CDHASH handling
Converting a CDHASH into a safe Hash is a lot of work, but retrieving just values is much easier.
Diffstat (limited to 'mjit_compiler.c')
-rw-r--r--mjit_compiler.c45
1 files changed, 0 insertions, 45 deletions
diff --git a/mjit_compiler.c b/mjit_compiler.c
index ebef0a80cd..549973e057 100644
--- a/mjit_compiler.c
+++ b/mjit_compiler.c
@@ -27,12 +27,6 @@
#include "insns.inc"
#include "insns_info.inc"
-struct case_dispatch_var {
- FILE *f;
- unsigned int base_pos;
- VALUE last_value;
-};
-
// Returns true if call cache is still not obsoleted and vm_cc_cme(cc)->def->type is available.
static bool
has_valid_method_type(CALL_CACHE cc)
@@ -52,37 +46,6 @@ fastpath_applied_iseq_p(const CALL_INFO ci, const CALL_CACHE cc, const rb_iseq_t
&& vm_call_iseq_optimizable_p(ci, cc); // CC_SET_FASTPATH condition
}
-#define hidden_obj_p(obj) (!SPECIAL_CONST_P(obj) && !RBASIC(obj)->klass)
-
-// TODO: Share this with iseq.c
-static inline VALUE
-obj_resurrect(VALUE obj)
-{
- if (hidden_obj_p(obj)) {
- switch (BUILTIN_TYPE(obj)) {
- case T_STRING:
- obj = rb_str_resurrect(obj);
- break;
- case T_ARRAY:
- obj = rb_ary_resurrect(obj);
- break;
- case T_HASH:
- obj = rb_hash_resurrect(obj);
- break;
- default:
- break;
- }
- }
- return obj;
-}
-
-static int
-cdhash_each(VALUE key, VALUE value, VALUE hash)
-{
- rb_hash_aset(hash, obj_resurrect(key), value);
- return ST_CONTINUE;
-}
-
#include "mjit_compile_attr.inc"
#if SIZEOF_LONG == SIZEOF_VOIDP
@@ -121,14 +84,6 @@ mjit_compile(FILE *f, const rb_iseq_t *iseq, const char *funcname, int id)
//
static VALUE
-cdhash_to_hash(rb_execution_context_t *ec, VALUE self, VALUE cdhash_addr)
-{
- VALUE hash = rb_hash_new();
- rb_hash_foreach((VALUE)NUM2PTR(cdhash_addr), cdhash_each, hash);
- return hash;
-}
-
-static VALUE
builtin_compile(rb_execution_context_t *ec, VALUE self, VALUE buf, VALUE bf_addr, VALUE index, VALUE stack_size, VALUE builtin_inline_p)
{
// Call "mjit_compile_invokebuiltin_for_#{func}" in mk_builtin_loader.rb