Age | Commit message (Collapse) | Author |
|
|
|
|
|
Make sure `opt_getinlinecache` is in a block all on its own, and
invalidate it from the interpreter when `opt_setinlinecache`.
It will recompile with a filled cache the second time around.
This lets YJIT runs well when the IC for constant is cold.
|
|
Introduce a new macro `ADD_COMMENT(cb, comment)` that records a comment
for the current write position in the code block.
Co-authored-by: Maxime Chevalier-Boisvert <[email protected]>
Co-authored-by: Aaron Patterson <[email protected]>
|
|
Don't count instructions that take exit to the interpreter.
|
|
|
|
|
|
|
|
|
|
|
|
Mostly unused and uninitialized warnings here and there
|
|
|
|
|
|
|
|
We didn't need the private check before because we were lifting from the
interpreter's cache, and the interpreter only caches when visibility
checks go through.
|
|
|
|
|
|
|
|
|
|
Make it lazy and add a hash specialization in addition to the array
specialization.
|
|
|
|
Simpler and faster.
|
|
* YJIT: unify exits. Patch iseqs only when necessary
This fixes the gotcha that returning YJIT_CANT_COPMILE for an
instruction at entry position leading to infinite loop.
Also, iseq patching is only done only when necessary, which should make
most exits faster.
* Now that exits are the same, return YJIT_CANT_COMPILE
|
|
Lazily compile out a chain of checks for different known classes and
whether `self` embeds its ivars or not.
* Remove trailing whitespaces
* Get proper addresss in Capstone disassembly
* Lowercase address in Capstone disassembly
Capstone uses lowercase for jump targets in generated listings. Let's
match it.
* Use the same successor in getivar guard chains
Cuts down on duplication
* Address reviews
* Fix copypasta error
* Add a comment
|
|
|
|
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.
|
|
Renaming uJIT to YJIT. AKA s/ujit/yjit/g.
|