summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-10-20Update ujit.mdMaxime Chevalier-Boisvert
2021-10-20Update ujit.mdMaxime Chevalier-Boisvert
2021-10-20Update ujit.mdMaxime Chevalier-Boisvert
2021-10-20Support memory operands to pushMax Bernstein
2021-10-20Fix jmp encoding. Rename conditional jumps jxx() to jxx_label()Maxime Chevalier-Boisvert
2021-10-20uJIT: Implement opt_getinlinecacheAlan Wu
* ujit: implement opt_getinlinecache Aggressively bet that writes to constants don't happen and invalidate all opt_getinlinecache blocks on any and all constant writes. Use alignment padding on block_t to track this assumption. No change to sizeof(block_t). * Fix compile warnings when not RUBY_DEBUG * Fix reversed condition * Switch to st_table to keep track of assumptions Co-authored-by: Aaron Patterson <aaron.patterson@gmail.com> Co-authored-by: Maxime Chevalier-Boisvert <maximechevalierb@gmail.com>
2021-10-20Implement support for variadic C functionsMaxime Chevalier-Boisvert
2021-10-20Update ujit.mdMaxime Chevalier-Boisvert
2021-10-20Update ujit.mdMaxime Chevalier-Boisvert
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.