From 9d59d093bd99ca7f4266dec1e9b4cd8b5efbd2d4 Mon Sep 17 00:00:00 2001 From: Takashi Kokubun Date: Sat, 10 Dec 2022 22:21:06 -0800 Subject: MJIT: Compile methods in batches (#6900) * MJIT: Compile methods in batches * MJIT: make mjit-bindgen * MJIT: Fix RubyVM::MJIT tests --- mjit_c.rb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'mjit_c.rb') diff --git a/mjit_c.rb b/mjit_c.rb index 91374a3599..5cedd460fe 100644 --- a/mjit_c.rb +++ b/mjit_c.rb @@ -620,13 +620,14 @@ module RubyVM::MJIT "rb_mjit_unit", Primitive.cexpr!("SIZEOF(struct rb_mjit_unit)"), unode: [self.ccan_list_node, Primitive.cexpr!("OFFSETOF((*((struct rb_mjit_unit *)NULL)), unode)")], id: [CType::Immediate.parse("int"), Primitive.cexpr!("OFFSETOF((*((struct rb_mjit_unit *)NULL)), id)")], - handle: [CType::Pointer.new { CType::Immediate.parse("void") }, Primitive.cexpr!("OFFSETOF((*((struct rb_mjit_unit *)NULL)), handle)")], type: [self.rb_mjit_unit_type, Primitive.cexpr!("OFFSETOF((*((struct rb_mjit_unit *)NULL)), type)")], iseq: [CType::Pointer.new { self.rb_iseq_t }, Primitive.cexpr!("OFFSETOF((*((struct rb_mjit_unit *)NULL)), iseq)")], used_code_p: [self._Bool, Primitive.cexpr!("OFFSETOF((*((struct rb_mjit_unit *)NULL)), used_code_p)")], compile_info: [self.rb_mjit_compile_info, Primitive.cexpr!("OFFSETOF((*((struct rb_mjit_unit *)NULL)), compile_info)")], cc_entries: [CType::Pointer.new { CType::Pointer.new { self.rb_callcache } }, Primitive.cexpr!("OFFSETOF((*((struct rb_mjit_unit *)NULL)), cc_entries)")], cc_entries_size: [CType::Immediate.parse("unsigned int"), Primitive.cexpr!("OFFSETOF((*((struct rb_mjit_unit *)NULL)), cc_entries_size)")], + handle: [CType::Pointer.new { CType::Immediate.parse("void") }, Primitive.cexpr!("OFFSETOF((*((struct rb_mjit_unit *)NULL)), handle)")], + units: [self.rb_mjit_unit_list, Primitive.cexpr!("OFFSETOF((*((struct rb_mjit_unit *)NULL)), units)")], ) end @@ -787,5 +788,9 @@ module RubyVM::MJIT CType::Stub.new(:rb_mjit_unit_type) end + def C.rb_mjit_unit_list + CType::Stub.new(:rb_mjit_unit_list) + end + ### MJIT bindgen end ### end if RubyVM::MJIT.enabled? && RubyVM::MJIT.const_defined?(:C) # not defined for miniruby -- cgit v1.2.3