| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2021-10-20 | Yet Another Ruby JIT! | Jose Narvaez | |
| Renaming uJIT to YJIT. AKA s/ujit/yjit/g. | |||
| 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 | WIP refactor block lists to use darray | Maxime Chevalier-Boisvert | |
| 2021-10-20 | At jit_at_current_insn, jit_peek_at_stack functions | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Thread EC through jit state. Add codegen status enum. | 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 | Use darray for incoming branches | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Mark and update object references in generated code | Alan Wu | |
| Co-authored-by: Maxime Chevalier-Boisvert <maximechevalierb@gmail.com> | |||
| 2021-10-20 | Ujit bug fixes | Alan 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-20 | Tie lifetime of uJIT blocks to iseqs | Alan 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-20 | WIP JIT-to-JIT returns | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Alan & Max at Tanagra | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Implement block version limit | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Reduce size of ctx_t | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Write ctx_diff() function to compate ctx_t objects | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Add support for multiple versions per block | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Added comments. Fixed compiler warning. | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Prototype type-specialization for temp values | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Take VM lock in branch_stub_hit(), fix ractor deadlock. | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Added gen_direct_jump() for unary branches | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Complete refactoring to eliminate recursion in ujit's compilation | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Added block end index | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Sketch code to invalidate basic blocks. Rename version_t to block_t. | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Keep track of incoming branches in ujit | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Refactor ujit logic for generating iseq entry points | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Progress on code invalidation | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Introduce version_t struct. Will be needed for code invalidation. | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Refactorings in ujit. Implement Ruby jump instruction. | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Use a versioning context when compiling blocks | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Split out context object into jitstate_t and ctx_t | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Split out compile_entry() from compile_block() | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Stub logic working for fib test, but still crashing in other cases | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Implement branch stub logic | Maxime Chevalier-Boisvert | |
| 2021-10-20 | WIP branch generation code | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Thread insn_idx through context object | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Start implementing BBV primitives | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Start refactoring JIT engine | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Refactor uJIT code into more files for readability | Maxime Chevalier-Boisvert | |
