文件名称:llrb:基于LLVM的Ruby JIT编译器
文件大小:72KB
文件格式:ZIP
更新时间:2024-05-13 01:08:44
C
LLRB LLRB是用于Ruby的基于LLVM的JIT编译器。 项目状态 我目前正在研究另一种JIT方法: 。 什么是LLRB? 这是一个实验项目,用于实现在提出的想法: 方法JIT编译器使用LLVM内联CRuby核心功能。 它是如何工作的? 在构建时,一些核心功能会通过LLVM IR编译为LLVM位码(LLVM IR的二进制形式)文件。 ________ _________ ______________ | | | | | | | CRuby | | CRuby | | CRuby | | C code |-->| LLVM IR |-->| LLVM bitcode | |________| |_________| |______________| 这些文件按功
【文件预览】:
llrb-master
----.gitmodules(111B)
----LICENSE.txt(2KB)
----lib()
--------llrb()
--------llrb.rb(42B)
----Gemfile(89B)
----llrb.gemspec(2KB)
----spec()
--------llrb()
--------spec_helper.rb(360B)
----Rakefile(766B)
----.travis.yml(88B)
----README.md(12KB)
----.rspec(30B)
----ext()
--------llrb_self_from_cfp.c(206B)
--------llrb_insn_opt_gt.c(1002B)
--------llrb_insn_trace.c(1KB)
--------llrb_insn_setinstancevariable.c(1KB)
--------llrb_insn_opt_str_freeze.c(228B)
--------llrb_insn_opt_div.c(1015B)
--------llrb_push_result.c(188B)
--------llrb_insn_getlocal_level0.c(167B)
--------llrb_insn_concatstrings.c(466B)
--------llrb_insn_opt_ge.c(625B)
--------llrb()
--------llrb_insn_getlocal.c(288B)
--------llrb_insn_setlocal_level0.c(253B)
--------llrb_insn_setclassvariable.c(603B)
--------llrb_insn_opt_send_without_block.c(885B)
--------llrb_insn_checkmatch.c(775B)
--------llrb_insn_invokesuper.c(1KB)
--------llrb_insn_opt_neq.c(3KB)
--------llrb_insn_invokeblock.c(1KB)
--------llrb_insn_setlocal_level1.c(267B)
--------llrb_set_pc.c(150B)
--------llrb_insn_getspecial.c(341B)
--------llrb_insn_getinstancevariable.c(1KB)
--------llrb_insn_concatarray.c(501B)
--------llrb_insn_checkkeyword.c(554B)
--------llrb_insn_opt_mod.c(1KB)
--------llrb_insn_throw.c(406B)
--------llrb_insn_getclassvariable.c(325B)
--------llrb_insn_splatarray.c(330B)
--------llrb_insn_setspecial.c(322B)
--------llrb_insn_putspecialobject.c(650B)
--------llrb_insn_opt_minus.c(980B)
--------llrb_insn_opt_le.c(641B)
--------llrb_insn_setconstant.c(690B)
--------llrb_insn_opt_aset.c(764B)
--------llrb_insn_opt_mult.c(893B)
--------llrb_insn_defined.c(312B)
--------llrb_insn_send.c(1KB)
--------llrb_insn_getlocal_level1.c(180B)
--------llrb_insn_opt_plus.c(2KB)
--------llrb_insn_setlocal.c(375B)
--------llrb_insn_opt_lt.c(1006B)
--------llrb_insn_opt_aref.c(718B)
--------llrb_insn_opt_ltlt.c(709B)
--------llrb_insn_opt_eq.c(1KB)
----.gitignore(186B)
----bin()
--------console(339B)
--------setup(131B)
--------bm_app_fib(835B)
--------loop_while.rb(58B)
--------bm_ivar_while(799B)
--------bm_plus(741B)
--------bm_empty_method(709B)
--------bm_loop_while(874B)