| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2021-10-20 | Fix counter names | Noah Gibbs | |
| 2021-10-20 | Fix typo in comment | Noah Gibbs | |
| 2021-10-20 | Break up callsite_not_simple into multiple cases. | Noah Gibbs | |
| 2021-10-20 | Remove a few more uses of the global cb/ocb | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Add a slowpath for opt_getinlinecache | Alan Wu | |
| Before this change, when we encounter a constant cache that is specific to a lexical scope, we unconditionally exit. This change falls back to the interpreter's cache in this situation. This should help constant expressions in `class << self`, which is popular at Shopify due to the style guide. This change relies on the cache being warm while compiling to detect the need for checking the lexical scope for simplicity. | |||
| 2021-10-20 | Step 2 to remove the global cb/ocb objects. | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Pass the global cb through codegen functions | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Try to break the code page refactoring into smaller steps | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Fix excessive invalidation for opt_getinlinecache | Alan Wu | |
| YJIT expects the VM to invalidate opt_getinlinecache when updating the constant cache, and the invalidation used to happen even when YJIT can't use the cached value. Once the first invalidation happens, the block for opt_getinlinecache becomes a stub. When the stub is hit, YJIT fails to compile the instruction as the cache is not usable. The stub becomes a block that exits for opt_getinlinecache which can be invalidated again. Some workloads that bust the interpreter's constant cache can create an invalidation loop with this behavior. Check if the cache is usable become doing invalidation to fix this problem. In the test harness, evaluate the test script in a lambda instead of a proc so `return` doesn't return out of the harness. | |||
| 2021-10-20 | Correct margin for stack overflow test | Alan Wu | |
| In vm_push_frame(), the stack overflow test is done against a decremented cfp. YJIT wasn't accounting for that in its stack overflow tests. | |||
| 2021-10-20 | Add jit_obj_info_dump | John Hawthorn | |
| 2021-10-20 | Add comment explaining argc + 2 | John Hawthorn | |
| 2021-10-20 | Implement invokebuiltin | John Hawthorn | |
| 2021-10-20 | Update README.md | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Update README.md | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Add test for setlocal | John Hawthorn | |
| 2021-10-20 | Implement generic setlocal | John Hawthorn | |
| 2021-10-20 | Extract gen_get_ep | John Hawthorn | |
| 2021-10-20 | Fix opt_aset comptime_key check | John Hawthorn | |
| 2021-10-20 | Rearrange stats printout for consistency | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Add counters for tracking invalidations | Alan Wu | |
| 2021-10-20 | Expand tabs | Alan Wu | |
| 2021-10-20 | Update yjit_codegen.c | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Remove vm_opt_aset | John Hawthorn | |
| 2021-10-20 | Specialize based on types of opt_aset | John Hawthorn | |
| 2021-10-20 | Compile out declaration for runtime stats on non stats builds | Alan Wu | |
| Checked on default build, RUBY_DEBUG build, and YJIT_STATS build. | |||
| 2021-10-20 | Don't store cfp->pc when doing iseq calls | Alan Wu | |
| We set it before calling routines and when we are exiting. | |||
| 2021-10-20 | No need to do ec->cfp = reg_cfp on exits | Alan Wu | |
| It's already up to date. We set it when we do iseq calls and it's set properly on entry. If it's not set properly exceptions wouldn't work. | |||
| 2021-10-20 | Update suggested ./configure in README | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Fix warnings about redefining YJIT_STATS | Alan Wu | |
| Follow up for ecb5b383a0c17550b9b27663005049ddac871edb. Now that YJIT_STATS is defined in yjit.h, it shoudl be the only place that defines it. | |||
| 2021-10-20 | Add missing percent sign in printout | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Add tests against side exits for non-fixnum | John Hawthorn | |
| 2021-10-20 | Check for comptime fixnum in gen_fixnum_cmp | John Hawthorn | |
| 2021-10-20 | Check for comptime fixnums in opt_and and opt_or | John Hawthorn | |
| 2021-10-20 | Check for comptime integers in opt_plus and opt_minus | John Hawthorn | |
| 2021-10-20 | Move forward declaration up | John Hawthorn | |
| 2021-10-20 | Fix misplaced ivar_set_method exit counter | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Include errno message in mmap failure output | Jean Boussier | |
| It might help figure out why it is failing. | |||
| 2021-10-20 | Skip opt_case_dispatch | John Hawthorn | |
| 2021-10-20 | Add comments to getspecial | John Hawthorn | |
| 2021-10-20 | Add comments for new function | Aaron Patterson | |
| 2021-10-20 | only compile for T_OBJECT types | Aaron Patterson | |
| 2021-10-20 | Refactor attrset to use a function | Aaron Patterson | |
| This new function will do the write barrier / resize the object / check frozen for us | |||
| 2021-10-20 | Fix opt_eq for overridden equality | John Hawthorn | |
| 2021-10-20 | Revert "disable yjit when testing mjit" | Aaron Patterson | |
| This reverts commit e8622ce5c0a09c7213e4d536ddd0ef3ea68377ef. | |||
| 2021-10-20 | is this right? | Aaron Patterson | |
| 2021-10-20 | Don't check MJIT if it's not enabled | Aaron Patterson | |
| 2021-10-20 | Disable YJIT by default if MJIT_FORCE_ENABLE is on | Aaron Patterson | |
| Compile time flag seems pretty forceful, so let MJIT turn on by default if it is used. | |||
| 2021-10-20 | disable MJIT when --enable-all is set | Aaron Patterson | |
| 2021-10-20 | Implement getspecial | John Hawthorn | |
