[前][次][番号順一覧][スレッド一覧]

ruby-changes:73690

From: Takashi <ko1@a...>
Date: Fri, 23 Sep 2022 06:44:56 +0900 (JST)
Subject: [ruby-changes:73690] f2bea691cd (master): Builtin RubyVM::MJIT::C

https://git.ruby-lang.org/ruby.git/commit/?id=f2bea691cd

From f2bea691cd12150a526ddc4be95c5396f07920ba Mon Sep 17 00:00:00 2001
From: Takashi Kokubun <takashikkbn@g...>
Date: Sun, 18 Sep 2022 21:45:58 +0900
Subject: Builtin RubyVM::MJIT::C

---
 .gitignore                                     |  5 +++--
 common.mk                                      | 12 +++++++++++-
 inits.c                                        |  1 +
 lib/mjit/c_32.rb                               |  2 --
 lib/mjit/c_64.rb                               |  2 --
 mjit_compiler.c                                |  1 +
 tool/mjit/bindgen.rb                           |  2 --
 tool/ruby_vm/views/lib/mjit/instruction.rb.erb |  2 +-
 tool/ruby_vm/views/mjit_c.rb.erb               |  3 +++
 9 files changed, 20 insertions(+), 10 deletions(-)
 create mode 100644 tool/ruby_vm/views/mjit_c.rb.erb

diff --git a/.gitignore b/.gitignore
index c15b68f676..b7779c0ef2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -233,10 +233,11 @@ lcov*.info https://github.com/ruby/ruby/blob/trunk/.gitignore#L233
 /win32/*.ico
 
 # MJIT
-/rb_mjit_header.h
-/mjit_config.h
 /include/ruby-*/*/rb_mjit_min_header-*.h
 /lib/mjit/instruction.rb
+/mjit_c.rb
+/mjit_config.h
+/rb_mjit_header.h
 
 # YJIT
 /yjit-bench
diff --git a/common.mk b/common.mk
index bef00d191f..ff0a2ca17f 100644
--- a/common.mk
+++ b/common.mk
@@ -235,7 +235,12 @@ main: $(SHOWFLAGS) exts $(ENCSTATIC:static=lib)encs https://github.com/ruby/ruby/blob/trunk/common.mk#L235
 
 main: $(srcdir)/lib/mjit/instruction.rb
 srcs: $(srcdir)/lib/mjit/instruction.rb
-$(srcdir)/lib/mjit/instruction.rb: $(tooldir)/ruby_vm/views/lib/mjit/instruction.rb.erb $(srcdir)/insns.def
+$(srcdir)/lib/mjit/instruction.rb: $(tooldir)/insns2vm.rb $(tooldir)/ruby_vm/views/lib/mjit/instruction.rb.erb $(srcdir)/insns.def
+	$(ECHO) generating $@
+	$(Q) $(BASERUBY) -Ku $(tooldir)/insns2vm.rb --basedir="$(srcdir)" $(INSNS2VMOPT) $@
+
+srcs: $(srcdir)/mjit_c.rb
+$(srcdir)/mjit_c.rb: $(tooldir)/insns2vm.rb $(tooldir)/ruby_vm/views/mjit_c.rb.erb
 	$(ECHO) generating $@
 	$(Q) $(BASERUBY) -Ku $(tooldir)/insns2vm.rb --basedir="$(srcdir)" $(INSNS2VMOPT) $@
 
@@ -1094,6 +1099,7 @@ BUILTIN_RB_SRCS = \ https://github.com/ruby/ruby/blob/trunk/common.mk#L1099
 		$(srcdir)/io.rb \
 		$(srcdir)/marshal.rb \
 		$(srcdir)/mjit.rb \
+		$(srcdir)/mjit_c.rb \
 		$(srcdir)/mjit_compiler.rb \
 		$(srcdir)/pack.rb \
 		$(srcdir)/trace_point.rb \
@@ -9310,6 +9316,7 @@ miniinit.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h https://github.com/ruby/ruby/blob/trunk/common.mk#L9316
 miniinit.$(OBJEXT): $(CCAN_DIR)/list/list.h
 miniinit.$(OBJEXT): $(CCAN_DIR)/str/str.h
 miniinit.$(OBJEXT): $(hdrdir)/ruby/ruby.h
+miniinit.$(OBJEXT): $(srcdir)/mjit_c.rb
 miniinit.$(OBJEXT): $(top_srcdir)/internal/array.h
 miniinit.$(OBJEXT): $(top_srcdir)/internal/compilers.h
 miniinit.$(OBJEXT): $(top_srcdir)/internal/gc.h
@@ -9500,6 +9507,7 @@ miniinit.$(OBJEXT): {$(VPATH)}miniinit.c https://github.com/ruby/ruby/blob/trunk/common.mk#L9507
 miniinit.$(OBJEXT): {$(VPATH)}miniprelude.c
 miniinit.$(OBJEXT): {$(VPATH)}missing.h
 miniinit.$(OBJEXT): {$(VPATH)}mjit.rb
+miniinit.$(OBJEXT): {$(VPATH)}mjit_c.rb
 miniinit.$(OBJEXT): {$(VPATH)}mjit_compiler.rb
 miniinit.$(OBJEXT): {$(VPATH)}nilclass.rb
 miniinit.$(OBJEXT): {$(VPATH)}node.h
@@ -9754,6 +9762,7 @@ mjit_compiler.$(OBJEXT): $(CCAN_DIR)/list/list.h https://github.com/ruby/ruby/blob/trunk/common.mk#L9762
 mjit_compiler.$(OBJEXT): $(CCAN_DIR)/str/str.h
 mjit_compiler.$(OBJEXT): $(hdrdir)/ruby.h
 mjit_compiler.$(OBJEXT): $(hdrdir)/ruby/ruby.h
+mjit_compiler.$(OBJEXT): $(srcdir)/mjit_c.rb
 mjit_compiler.$(OBJEXT): $(top_srcdir)/internal/array.h
 mjit_compiler.$(OBJEXT): $(top_srcdir)/internal/class.h
 mjit_compiler.$(OBJEXT): $(top_srcdir)/internal/compile.h
@@ -9939,6 +9948,7 @@ mjit_compiler.$(OBJEXT): {$(VPATH)}mjit_compiler.c https://github.com/ruby/ruby/blob/trunk/common.mk#L9948
 mjit_compiler.$(OBJEXT): {$(VPATH)}mjit_compiler.h
 mjit_compiler.$(OBJEXT): {$(VPATH)}mjit_compiler.rb
 mjit_compiler.$(OBJEXT): {$(VPATH)}mjit_compiler.rbinc
+mjit_compiler.$(OBJEXT): {$(VPATH)}mjit_c.rbinc
 mjit_compiler.$(OBJEXT): {$(VPATH)}mjit_unit.h
 mjit_compiler.$(OBJEXT): {$(VPATH)}node.h
 mjit_compiler.$(OBJEXT): {$(VPATH)}ruby_assert.h
diff --git a/inits.c b/inits.c
index 65a54d8f29..9decba3c11 100644
--- a/inits.c
+++ b/inits.c
@@ -104,6 +104,7 @@ rb_call_builtin_inits(void) https://github.com/ruby/ruby/blob/trunk/inits.c#L104
     BUILTIN(marshal);
 #if USE_MJIT
     BUILTIN(mjit);
+    BUILTIN(mjit_c);
     BUILTIN(mjit_compiler);
 #endif
     Init_builtin_prelude();
diff --git a/lib/mjit/c_32.rb b/lib/mjit/c_32.rb
index 9931088271..7d70595ba2 100644
--- a/lib/mjit/c_32.rb
+++ b/lib/mjit/c_32.rb
@@ -1,8 +1,6 @@ https://github.com/ruby/ruby/blob/trunk/lib/mjit/c_32.rb#L1
 require_relative 'c_type'
 
 module RubyVM::MJIT
-  C = Object.new
-
   def C.NOT_COMPILED_STACK_SIZE = -1
 
   def C.USE_LAZY_LOAD = false
diff --git a/lib/mjit/c_64.rb b/lib/mjit/c_64.rb
index 2746ed13a0..33fb8475d6 100644
--- a/lib/mjit/c_64.rb
+++ b/lib/mjit/c_64.rb
@@ -1,8 +1,6 @@ https://github.com/ruby/ruby/blob/trunk/lib/mjit/c_64.rb#L1
 require_relative 'c_type'
 
 module RubyVM::MJIT
-  C = Object.new
-
   def C.NOT_COMPILED_STACK_SIZE = -1
 
   def C.USE_LAZY_LOAD = false
diff --git a/mjit_compiler.c b/mjit_compiler.c
index 2594678f77..f04f7b0c03 100644
--- a/mjit_compiler.c
+++ b/mjit_compiler.c
@@ -164,6 +164,7 @@ has_cache_for_send(rb_execution_context_t *ec, VALUE self, VALUE cc_addr, VALUE https://github.com/ruby/ruby/blob/trunk/mjit_compiler.c#L164
 
 extern bool rb_splat_or_kwargs_p(const struct rb_callinfo *restrict ci);
 
+#include "mjit_c.rbinc"
 #include "mjit_compiler.rbinc"
 
 #endif // USE_MJIT
diff --git a/tool/mjit/bindgen.rb b/tool/mjit/bindgen.rb
index 80bdd36c6f..8bc537f0d1 100755
--- a/tool/mjit/bindgen.rb
+++ b/tool/mjit/bindgen.rb
@@ -343,8 +343,6 @@ class BindingGenerator https://github.com/ruby/ruby/blob/trunk/tool/mjit/bindgen.rb#L343
     println "require_relative 'c_type'"
     println
     println "module RubyVM::MJIT"
-    println "  C = Object.new"
-    println
 
     # Define macros
     @macros.each do |macro|
diff --git a/tool/ruby_vm/views/lib/mjit/instruction.rb.erb b/tool/ruby_vm/views/lib/mjit/instruction.rb.erb
index 1c462de53a..dac53668a0 100644
--- a/tool/ruby_vm/views/lib/mjit/instruction.rb.erb
+++ b/tool/ruby_vm/views/lib/mjit/instruction.rb.erb
@@ -37,4 +37,4 @@ module RubyVM::MJIT https://github.com/ruby/ruby/blob/trunk/tool/ruby_vm/views/lib/mjit/instruction.rb.erb#L37
   }
 
   private_constant(*constants)
-end if RubyVM::MJIT.enabled?
+end
diff --git a/tool/ruby_vm/views/mjit_c.rb.erb b/tool/ruby_vm/views/mjit_c.rb.erb
new file mode 100644
index 0000000000..06cc88c072
--- /dev/null
+++ b/tool/ruby_vm/views/mjit_c.rb.erb
@@ -0,0 +1,3 @@ https://github.com/ruby/ruby/blob/trunk/tool/ruby_vm/views/mjit_c.rb.erb#L1
+module RubyVM::MJIT
+  C = Object.new
+end if RubyVM::MJIT.enabled?
-- 
cgit v1.2.1


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]