| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2021-10-20 | Check for null | Alan Wu | |
| Sometimes you bop before you init, you know? | |||
| 2021-10-20 | Fix trailing spaces | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Update yjit.md | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Make Blocks depend on BOPS | Aaron Patterson | |
| When a BOP is redefined, the BOP redefinition callback will invalidate any blocks that depend on BOPS. This allows us to eliminate runtime checks for BOP redefinition. | |||
| 2021-10-20 | Update yjit.md | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Update yjit.md | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Yet Another Ruby JIT! | Jose Narvaez | |
| Renaming uJIT to YJIT. AKA s/ujit/yjit/g. | |||
| 2021-10-20 | YJIT: handle when all counters are zero in printout code | Alan Wu | |
| Also filter with not equal to zero instead of greater than zero, in case there is memory corruption and counters are negative. Fixes Shopify/ruby#70 | |||
| 2021-10-20 | Update ujit_core.h | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Update ujit_core.h | Maxime Chevalier-Boisvert | |
| Co-authored-by: Alan Wu <XrXr@users.noreply.github.com> | |||
| 2021-10-20 | Machinery to implement deferred compilation | Maxime Chevalier-Boisvert | |
| 2021-10-20 | YJIT: fix leak, remove unused field on block_t | Alan Wu | |
| This field was never used and is now covered by jit_mov_gc_ptr. | |||
| 2021-10-20 | YJIT: Use 2D array to group block versions | Alan Wu | |
| For deferred compilation, we sometimes want to care about the order of the block versions. Use an array instead of a linked list to do that. | |||
| 2021-10-20 | Rename test files | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Update yjit.md | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Update yjit.md | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Update yjit.md | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Update and rename ujit.md to yjit.md | Maxime Chevalier-Boisvert | |
| 2021-10-20 | WIP refactor block lists to use darray | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Update ujit.md | Maxime Chevalier-Boisvert | |
| 2021-10-20 | uJIT: support 64 bit operands for TEST. Use it to check for zero | Alan Wu | |
| It's one byte shorter than `cmp reg64, 0`. To illustrate: ``` 48 83 f9 00 cmp rcx, 0x0 48 85 c9 test rcx, rcx ``` | |||
| 2021-10-20 | Add UJIT.reset_stats! | Alan Wu | |
| To allow analyzing sections of the application. | |||
| 2021-10-20 | uJIT: Add exit counters for leave and refactor stats printout code | Alan Wu | |
| Filter out counters that are zero and make it easier to have multiple printout groups. On `railsbench`: ``` opt_send_without_block exit reasons: se_finish_frame 184809 (100.0%) ``` | |||
| 2021-10-20 | uJIT: add guards for protected opt_send_without_block calls | Alan Wu | |
| These account for about 12% of the time when we were bailing from calls in railsbench. `ratio_in_ujit` went up 0.1% with this change. | |||
| 2021-10-20 | At jit_at_current_insn, jit_peek_at_stack functions | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Runtime counters for bailing from opt_send_without_block | Alan Wu | |
| This allows counting things in generated code such as side exits or different reasons for failing to compile. Runtime counters are exposed to Ruby as `UJIT.runtime_stats` for ease of reporting and analysis. | |||
| 2021-10-20 | Update ec->cfp->pc when hitting a stub. | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Thread EC through jit state. Add codegen status enum. | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Support memory operands to pop | Max Bernstein | |
| 2021-10-20 | Update ujit.md | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Update ujit.md | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Update ujit.md | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Support memory operands to push | Max Bernstein | |
| 2021-10-20 | Fix jmp encoding. Rename conditional jumps jxx() to jxx_label() | Maxime Chevalier-Boisvert | |
| 2021-10-20 | uJIT: Implement opt_getinlinecache | Alan 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-20 | Implement support for variadic C functions | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Update ujit.md | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Update ujit.md | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Update ujit.md | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Update ujit.md | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Update ujit_iface.c | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Update ujit_iface.c | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Implement --ujit-call-threshold | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Remove dead code | Alan Wu | |
| 2021-10-20 | darray: fix strict aliasing issue | Alan Wu | |
| 2021-10-20 | Use rb_darray_make in ujit | Alan Wu | |
| 2021-10-20 | Add rb_darray_make | Alan Wu | |
| 2021-10-20 | darray: fix buffer size calculation for element with strict alignment | Alan Wu | |
| 2021-10-20 | Added ujit_save_regs() and ujit_load_regs() helper functions | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Use darray for incoming branches | Maxime Chevalier-Boisvert | |
