summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-10-20Update ujit.mdMaxime Chevalier-Boisvert
2021-10-20Update ujit.mdMaxime Chevalier-Boisvert
2021-10-20Update ujit_iface.cMaxime Chevalier-Boisvert
2021-10-20Update ujit_iface.cMaxime Chevalier-Boisvert
2021-10-20Implement --ujit-call-thresholdMaxime Chevalier-Boisvert
2021-10-20Remove dead codeAlan Wu
2021-10-20darray: fix strict aliasing issueAlan Wu
2021-10-20Use rb_darray_make in ujitAlan Wu
2021-10-20Add rb_darray_makeAlan Wu
2021-10-20darray: fix buffer size calculation for element with strict alignmentAlan Wu
2021-10-20Added ujit_save_regs() and ujit_load_regs() helper functionsMaxime Chevalier-Boisvert
2021-10-20Use darray for incoming branchesMaxime Chevalier-Boisvert
2021-10-20Free your memories!Alan Wu
2021-10-20Stop using UJIT.install_entry in btestAlan Wu
CI runs on some platforms uJIT doesn't support. They don't have UJIT.install_entry. Maybe we want something like `install_entry_if_possible`.
2021-10-20Mark and update object references in generated codeAlan Wu
Co-authored-by: Maxime Chevalier-Boisvert <maximechevalierb@gmail.com>
2021-10-20Check for ::Array, not T_ARRAY in opt_arefAlan Wu
2021-10-20Update ujit.mdMaxime Chevalier-Boisvert
2021-10-20Update ujit.mdMaxime Chevalier-Boisvert
2021-10-20Update ujit.mdMaxime Chevalier-Boisvert
2021-10-20Create ujit.mdMaxime Chevalier-Boisvert
2021-10-20Fix opt_aref SNAFUMaxime Chevalier-Boisvert
2021-10-20Ujit bug fixesAlan Wu
* uJIT: don't compile tailcalls * Don't compile calls to protected methods We need to generate extra code to check whether the call goes through if we want to support these. * Fix copy pasta * Update blockids in branches * Update dependencies
2021-10-20ujit.h instead in the rest of RubyAlan Wu
ujit_iface.h is meant for uJIT internal use only.
2021-10-20Should fix builds without mjit supportAlan Wu
2021-10-20Stop printing when invalidating uJIT blocksAlan Wu
2021-10-20Fix empty structAlan Wu
2021-10-20Fix build on MSVCAlan Wu
Use compiler protable way of delcaring function as maybe unused.
2021-10-20Add regression test for extended table bounds checkAlan Wu
2021-10-20fix: ujit getinstancevariable code checks ivar extended table sizeMike Dalessio
Co-authored-by: Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com> Co-authored-by: Alan Wu <XrXr@users.noreply.github.com>
2021-10-20Add op-not-redefined check to opt_arefMaxime Chevalier-Boisvert
2021-10-20Fix compiled iseq count statMaxime Chevalier-Boisvert
2021-10-20Tie lifetime of uJIT blocks to iseqsAlan Wu
* Tie lifetime of uJIT blocks to iseqs Blocks weren't being freed when iseqs are collected. * Add rb_dary. Use it for method dependency table * Keep track of blocks per iseq Remove global version_tbl * Block version bookkeeping fix * dary -> darray * free ujit_blocks * comment about size of ujit_blocks
2021-10-20oopsAlan Wu
2021-10-20Fix pedantic returning voidAlan Wu
2021-10-20Added more tests to `make btest`Maxime Chevalier-Boisvert
2021-10-20Add another torture test to `make btest`Maxime Chevalier-Boisvert
2021-10-20Copy right number of bytes in add_incomingAlan Wu
2021-10-20Free block->incoming in invalidate_block_version()Maxime Chevalier-Boisvert
2021-10-20Add missing VM_CHECK_INTS() for correctnessMaxime Chevalier-Boisvert
2021-10-20Add jit_print_loc() for debugging, based on Alan Wu's snippetMaxime Chevalier-Boisvert
2021-10-20ujit_asm: if mmap() fails with the address hint, try withoutMike Dalessio
valgrind doesn't seem to support the address hint, and so the fallback to using NULL will allow valgrind to run.
2021-10-20Fix bug in putobject found by @tenderloveMaxime Chevalier-Boisvert
2021-10-20Optimize gen_dupMaxime Chevalier-Boisvert
2021-10-20Add failing test identified by Aaron PattersonMaxime Chevalier-Boisvert
2021-10-20Remove superfluous instruction in opt_send_without_blockMaxime Chevalier-Boisvert
2021-10-20Fix jit_return bug, return address on wrong frameMaxime Chevalier-Boisvert
2021-10-20Fix REG_SP writeback bug in gen_exitMaxime Chevalier-Boisvert
2021-10-20Fix context push/pop in Ruby-to-Ruby callsMaxime Chevalier-Boisvert
2021-10-20fix: allow make to complete when DEBUG_RUBY is not setMike Dalessio
2021-10-20fix: ensure add_incoming allocates the proper length memoryMike Dalessio
Without this fix, valgrind reports for zero-length blocks: ==149294== Invalid write of size 4 ==149294== at 0x408121: add_incoming (ujit_core.c:173) ==149294== by 0x408121: gen_block_version (ujit_core.c:286) ==149294== by 0x40873C: gen_entry_point (ujit_core.c:303) ==149294== by 0x3609DF: rb_ujit_compile_iseq (ujit_iface.c:319) ==149294== by 0x33BD2F: mjit_exec (mjit.h:158) ==149294== by 0x33BD2F: rb_vm_exec (vm.c:2167) ... ==149294== Address 0x11278850 is 0 bytes inside a block of size 1 alloc'd ==149294== at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so) ==149294== by 0x40811B: add_incoming (ujit_core.c:171) ==149294== by 0x40811B: gen_block_version (ujit_core.c:286) ==149294== by 0x40873C: gen_entry_point (ujit_core.c:303) ==149294== by 0x3609DF: rb_ujit_compile_iseq (ujit_iface.c:319) ==149294== by 0x33BD2F: mjit_exec (mjit.h:158) ==149294== by 0x33BD2F: rb_vm_exec (vm.c:2167)