summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-10-20Fix counter namesNoah Gibbs
2021-10-20Fix typo in commentNoah Gibbs
2021-10-20Break up callsite_not_simple into multiple cases.Noah Gibbs
2021-10-20Remove a few more uses of the global cb/ocbMaxime Chevalier-Boisvert
2021-10-20Add a slowpath for opt_getinlinecacheAlan 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-20Step 2 to remove the global cb/ocb objects.Maxime Chevalier-Boisvert
2021-10-20Pass the global cb through codegen functionsMaxime Chevalier-Boisvert
2021-10-20Try to break the code page refactoring into smaller stepsMaxime Chevalier-Boisvert
2021-10-20Fix excessive invalidation for opt_getinlinecacheAlan 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-20Correct margin for stack overflow testAlan 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-20Add jit_obj_info_dumpJohn Hawthorn
2021-10-20Add comment explaining argc + 2John Hawthorn
2021-10-20Implement invokebuiltinJohn Hawthorn
2021-10-20Update README.mdMaxime Chevalier-Boisvert
2021-10-20Update README.mdMaxime Chevalier-Boisvert
2021-10-20Add test for setlocalJohn Hawthorn
2021-10-20Implement generic setlocalJohn Hawthorn
2021-10-20Extract gen_get_epJohn Hawthorn
2021-10-20Fix opt_aset comptime_key checkJohn Hawthorn
2021-10-20Rearrange stats printout for consistencyMaxime Chevalier-Boisvert
2021-10-20Add counters for tracking invalidationsAlan Wu
2021-10-20Expand tabsAlan Wu
2021-10-20Update yjit_codegen.cMaxime Chevalier-Boisvert
2021-10-20Remove vm_opt_asetJohn Hawthorn
2021-10-20Specialize based on types of opt_asetJohn Hawthorn
2021-10-20Compile out declaration for runtime stats on non stats buildsAlan Wu
Checked on default build, RUBY_DEBUG build, and YJIT_STATS build.
2021-10-20Don't store cfp->pc when doing iseq callsAlan Wu
We set it before calling routines and when we are exiting.
2021-10-20No need to do ec->cfp = reg_cfp on exitsAlan 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-20Update suggested ./configure in READMEMaxime Chevalier-Boisvert
2021-10-20Fix warnings about redefining YJIT_STATSAlan 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-20Add missing percent sign in printoutMaxime Chevalier-Boisvert
2021-10-20Add tests against side exits for non-fixnumJohn Hawthorn
2021-10-20Check for comptime fixnum in gen_fixnum_cmpJohn Hawthorn
2021-10-20Check for comptime fixnums in opt_and and opt_orJohn Hawthorn
2021-10-20Check for comptime integers in opt_plus and opt_minusJohn Hawthorn
2021-10-20Move forward declaration upJohn Hawthorn
2021-10-20Fix misplaced ivar_set_method exit counterMaxime Chevalier-Boisvert
2021-10-20Include errno message in mmap failure outputJean Boussier
It might help figure out why it is failing.
2021-10-20Skip opt_case_dispatchJohn Hawthorn
2021-10-20Add comments to getspecialJohn Hawthorn
2021-10-20Add comments for new functionAaron Patterson
2021-10-20only compile for T_OBJECT typesAaron Patterson
2021-10-20Refactor attrset to use a functionAaron Patterson
This new function will do the write barrier / resize the object / check frozen for us
2021-10-20Fix opt_eq for overridden equalityJohn Hawthorn
2021-10-20Revert "disable yjit when testing mjit"Aaron Patterson
This reverts commit e8622ce5c0a09c7213e4d536ddd0ef3ea68377ef.
2021-10-20is this right?Aaron Patterson
2021-10-20Don't check MJIT if it's not enabledAaron Patterson
2021-10-20Disable YJIT by default if MJIT_FORCE_ENABLE is onAaron Patterson
Compile time flag seems pretty forceful, so let MJIT turn on by default if it is used.
2021-10-20disable MJIT when --enable-all is setAaron Patterson
2021-10-20Implement getspecialJohn Hawthorn