ruby-changes:68835
From: Jose <ko1@a...>
Date: Thu, 21 Oct 2021 08:14:11 +0900 (JST)
Subject: [ruby-changes:68835] 4e2eb7695e (master): Yet Another Ruby JIT!
https://git.ruby-lang.org/ruby.git/commit/?id=4e2eb7695e From 4e2eb7695e9b45cb5d2ae757bdb5c2043d78be78 Mon Sep 17 00:00:00 2001 From: Jose Narvaez <goyox86@g...> Date: Sat, 6 Mar 2021 23:46:56 +0000 Subject: Yet Another Ruby JIT! Renaming uJIT to YJIT. AKA s/ujit/yjit/g. --- .gitignore | 4 +- common.mk | 1644 +++++++++--------- inits.c | 2 +- iseq.c | 12 +- iseq.h | 2 +- mjit.h | 9 +- ractor.c | 4 +- ruby.c | 28 +- template/Makefile.in | 2 +- test_asm.sh | 2 +- tool/ruby_vm/models/micro_jit.rb | 6 +- .../models/micro_jit/example_instructions.rb | 2 +- tool/ruby_vm/views/ujit_hooks.inc.erb | 24 - tool/ruby_vm/views/vm.inc.erb | 8 +- tool/ruby_vm/views/yjit_hooks.inc.erb | 24 + tool/runruby.rb | 8 +- ujit.h | 61 - ujit.rb | 89 - ujit_asm.c | 1646 ------------------ ujit_asm.h | 384 ----- ujit_asm_tests.c | 353 ---- ujit_codegen.c | 1792 -------------------- ujit_codegen.h | 47 - ujit_core.c | 767 --------- ujit_core.h | 178 -- ujit_iface.c | 818 --------- ujit_iface.h | 91 - ujit_utils.c | 103 -- ujit_utils.h | 15 - version.c | 4 +- vm.c | 12 +- vm_core.h | 8 +- vm_exec.h | 2 +- vm_insnhelper.h | 4 +- vm_method.c | 8 +- win32/Makefile.sub | 2 +- yjit.h | 61 + yjit.rb | 89 + yjit_asm.c | 1646 ++++++++++++++++++ yjit_asm.h | 384 +++++ yjit_asm_tests.c | 353 ++++ yjit_codegen.c | 1783 +++++++++++++++++++ yjit_codegen.h | 47 + yjit_core.c | 767 +++++++++ yjit_core.h | 178 ++ yjit_iface.c | 818 +++++++++ yjit_iface.h | 91 + yjit_utils.c | 103 ++ yjit_utils.h | 15 + 49 files changed, 7246 insertions(+), 7254 deletions(-) delete mode 100644 tool/ruby_vm/views/ujit_hooks.inc.erb create mode 100644 tool/ruby_vm/views/yjit_hooks.inc.erb delete mode 100644 ujit.h delete mode 100644 ujit.rb delete mode 100644 ujit_asm.c delete mode 100644 ujit_asm.h delete mode 100644 ujit_asm_tests.c delete mode 100644 ujit_codegen.c delete mode 100644 ujit_codegen.h delete mode 100644 ujit_core.c delete mode 100644 ujit_core.h delete mode 100644 ujit_iface.c delete mode 100644 ujit_iface.h delete mode 100644 ujit_utils.c delete mode 100644 ujit_utils.h create mode 100644 yjit.h create mode 100644 yjit.rb create mode 100644 yjit_asm.c create mode 100644 yjit_asm.h create mode 100644 yjit_asm_tests.c create mode 100644 yjit_codegen.c create mode 100644 yjit_codegen.h create mode 100644 yjit_core.c create mode 100644 yjit_core.h create mode 100644 yjit_iface.c create mode 100644 yjit_iface.h create mode 100644 yjit_utils.c create mode 100644 yjit_utils.h diff --git a/.gitignore b/.gitignore index 4fa89e9dfa..84a924930e 100644 --- a/.gitignore +++ b/.gitignore @@ -229,5 +229,5 @@ lcov*.info https://github.com/ruby/ruby/blob/trunk/.gitignore#L229 /mjit_config.h /include/ruby-*/*/rb_mjit_min_header-*.h -# UJIT -/ujit_hooks.inc +# YJIT +/yjit_hooks.inc diff --git a/common.mk b/common.mk index cdbbbf3c4f..2d2264e6e4 100644 --- a/common.mk +++ b/common.mk @@ -150,11 +150,11 @@ COMMONOBJS = array.$(OBJEXT) \ https://github.com/ruby/ruby/blob/trunk/common.mk#L150 vm_dump.$(OBJEXT) \ vm_sync.$(OBJEXT) \ vm_trace.$(OBJEXT) \ - ujit_asm.$(OBJEXT) \ - ujit_utils.$(OBJEXT) \ - ujit_core.$(OBJEXT) \ - ujit_codegen.$(OBJEXT) \ - ujit_iface.$(OBJEXT) \ + yjit_asm.$(OBJEXT) \ + yjit_utils.$(OBJEXT) \ + yjit_core.$(OBJEXT) \ + yjit_codegen.$(OBJEXT) \ + yjit_iface.$(OBJEXT) \ $(COROUTINE_OBJ) \ $(DTRACE_OBJ) \ $(BUILTIN_ENCOBJS) \ @@ -1063,7 +1063,7 @@ BUILTIN_RB_SRCS = \ https://github.com/ruby/ruby/blob/trunk/common.mk#L1063 $(srcdir)/nilclass.rb \ $(srcdir)/prelude.rb \ $(srcdir)/gem_prelude.rb \ - $(srcdir)/ujit.rb \ + $(srcdir)/yjit.rb \ $(empty) BUILTIN_RB_INCS = $(BUILTIN_RB_SRCS:.rb=.rbinc) @@ -1111,7 +1111,7 @@ incs: $(INSNS) {$(VPATH)}node_name.inc {$(VPATH)}known_errors.inc \ https://github.com/ruby/ruby/blob/trunk/common.mk#L1111 insns: $(INSNS) -ujit_hooks.inc: vm.$(OBJEXT) +yjit_hooks.inc: vm.$(OBJEXT) id.h: $(tooldir)/generic_erb.rb $(srcdir)/template/id.h.tmpl $(srcdir)/defs/id.def $(ECHO) generating $@ @@ -3102,7 +3102,7 @@ compile.$(OBJEXT): {$(VPATH)}st.h https://github.com/ruby/ruby/blob/trunk/common.mk#L3102 compile.$(OBJEXT): {$(VPATH)}subst.h compile.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h compile.$(OBJEXT): {$(VPATH)}thread_native.h -compile.$(OBJEXT): {$(VPATH)}ujit.h +compile.$(OBJEXT): {$(VPATH)}yjit.h compile.$(OBJEXT): {$(VPATH)}util.h compile.$(OBJEXT): {$(VPATH)}vm_callinfo.h compile.$(OBJEXT): {$(VPATH)}vm_core.h @@ -3483,7 +3483,7 @@ cont.$(OBJEXT): {$(VPATH)}st.h https://github.com/ruby/ruby/blob/trunk/common.mk#L3483 cont.$(OBJEXT): {$(VPATH)}subst.h cont.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h cont.$(OBJEXT): {$(VPATH)}thread_native.h -cont.$(OBJEXT): {$(VPATH)}ujit.h +cont.$(OBJEXT): {$(VPATH)}yjit.h cont.$(OBJEXT): {$(VPATH)}vm_core.h cont.$(OBJEXT): {$(VPATH)}vm_debug.h cont.$(OBJEXT): {$(VPATH)}vm_opts.h @@ -5577,7 +5577,7 @@ eval.$(OBJEXT): {$(VPATH)}st.h https://github.com/ruby/ruby/blob/trunk/common.mk#L5577 eval.$(OBJEXT): {$(VPATH)}subst.h eval.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h eval.$(OBJEXT): {$(VPATH)}thread_native.h -eval.$(OBJEXT): {$(VPATH)}ujit.h +eval.$(OBJEXT): {$(VPATH)}yjit.h eval.$(OBJEXT): {$(VPATH)}vm.h eval.$(OBJEXT): {$(VPATH)}vm_core.h eval.$(OBJEXT): {$(VPATH)}vm_debug.h @@ -6027,7 +6027,7 @@ gc.$(OBJEXT): {$(VPATH)}thread.h https://github.com/ruby/ruby/blob/trunk/common.mk#L6027 gc.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h gc.$(OBJEXT): {$(VPATH)}thread_native.h gc.$(OBJEXT): {$(VPATH)}transient_heap.h -gc.$(OBJEXT): {$(VPATH)}ujit.h +gc.$(OBJEXT): {$(VPATH)}yjit.h gc.$(OBJEXT): {$(VPATH)}util.h gc.$(OBJEXT): {$(VPATH)}vm_callinfo.h gc.$(OBJEXT): {$(VPATH)}vm_core.h @@ -7020,8 +7020,8 @@ iseq.$(OBJEXT): {$(VPATH)}st.h https://github.com/ruby/ruby/blob/trunk/common.mk#L7020 iseq.$(OBJEXT): {$(VPATH)}subst.h iseq.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h iseq.$(OBJEXT): {$(VPATH)}thread_native.h -iseq.$(OBJEXT): {$(VPATH)}ujit.h -iseq.$(OBJEXT): {$(VPATH)}ujit_asm.h +iseq.$(OBJEXT): {$(VPATH)}yjit.h +iseq.$(OBJEXT): {$(VPATH)}yjit_asm.h iseq.$(OBJEXT): {$(VPATH)}util.h iseq.$(OBJEXT): {$(VPATH)}vm_callinfo.h iseq.$(OBJEXT): {$(VPATH)}vm_core.h @@ -8474,7 +8474,7 @@ miniinit.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h https://github.com/ruby/ruby/blob/trunk/common.mk#L8474 miniinit.$(OBJEXT): {$(VPATH)}thread_native.h miniinit.$(OBJEXT): {$(VPATH)}timev.rb miniinit.$(OBJEXT): {$(VPATH)}trace_point.rb -miniinit.$(OBJEXT): {$(VPATH)}ujit.rb +miniinit.$(OBJEXT): {$(VPATH)}yjit.rb miniinit.$(OBJEXT): {$(VPATH)}vm_core.h miniinit.$(OBJEXT): {$(VPATH)}vm_opts.h miniinit.$(OBJEXT): {$(VPATH)}warning.rb @@ -8723,7 +8723,7 @@ mjit.$(OBJEXT): {$(VPATH)}subst.h https://github.com/ruby/ruby/blob/trunk/common.mk#L8723 mjit.$(OBJEXT): {$(VPATH)}thread.h mjit.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h mjit.$(OBJEXT): {$(VPATH)}thread_native.h -mjit.$(OBJEXT): {$(VPATH)}ujit.h +mjit.$(OBJEXT): {$(VPATH)}yjit.h mjit.$(OBJEXT): {$(VPATH)}util.h mjit.$(OBJEXT): {$(VPATH)}vm_callinfo.h mjit.$(OBJEXT): {$(VPATH)}vm_core.h @@ -8937,7 +8937,7 @@ mjit_compile.$(OBJEXT): {$(VPATH)}st.h https://github.com/ruby/ruby/blob/trunk/common.mk#L8937 mjit_compile.$(OBJEXT): {$(VPATH)}subst.h mjit_compile.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h mjit_compile.$(OBJEXT): {$(VPATH)}thread_native.h -mjit_compile.$(OBJEXT): {$(VPATH)}ujit.h +mjit_compile.$(OBJEXT): {$(VPATH)}yjit.h mjit_compile.$(OBJEXT): {$(VPATH)}vm_callinfo.h mjit_compile.$(OBJEXT): {$(VPATH)}vm_core.h mjit_compile.$(OBJEXT): {$(VPATH)}vm_exec.h @@ -10372,7 +10372,7 @@ process.$(OBJEXT): {$(VPATH)}subst.h https://github.com/ruby/ruby/blob/trunk/common.mk#L10372 process.$(OBJEXT): {$(VPATH)}thread.h process.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h process.$(OBJEXT): {$(VPATH)}thread_native.h -process.$(OBJEXT): {$(VPATH)}ujit.h +process.$(OBJEXT): {$(VPATH)}yjit.h process.$(OBJEXT): {$(VPATH)}util.h process.$(OBJEXT): {$(VPATH)}vm_core.h process.$(OBJEXT): {$(VPATH)}vm_opts.h @@ -10590,7 +10590,7 @@ ractor.$(OBJEXT): {$(VPATH)}th (... truncated) -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/