summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-10-20If --yjit-stats is given without RUBY_DEBUG, that should be an error.Noah Gibbs
2021-10-20Fix compiler warningMaxime Chevalier-Boisvert
2021-10-20Allow to enable `--yjit-stats` via a env variableJean Boussier
2021-10-20Implement topn instructionAaron Patterson
This commit implements the topn instruction Co-Authored-By: Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com> Co-Authored-By: Noah Gibbs <noah.gibbs@shopify.com>
2021-10-20Better commentsJohn Hawthorn
2021-10-20Avoid looping on invokesuper on module included multiple timesJohn Hawthorn
2021-10-20Check for refinements in gen_invokesuperJohn Hawthorn
2021-10-20Guard against implicitly forwarded blockJohn Hawthorn
2021-10-20Remove #define MAX_VERSIONS, now using command-line optionMaxime Chevalier-Boisvert
2021-10-20Add invokesuperJohn Hawthorn
2021-10-20Fix issue in yjit_free_block causing segfaultMaxime Chevalier-Boisvert
This addresses issue #55
2021-10-20Implement gen_getlocalJohn Hawthorn
This extracts the generation code from getlocal_wc1, since this is the same just with more loops inside vm_get_ep.
2021-10-20Can't add comments to the outlined code blockMaxime Chevalier-Boisvert
2021-10-20Add duparray to YJIT codegenJohn Hawthorn
2021-10-20Fix check for leaf invokebuiltinJohn Hawthorn
Also added a comment when inlining a leaf builtin
2021-10-20Update README.mdMaxime Chevalier-Boisvert
2021-10-20Update README.mdMaxime Chevalier-Boisvert
2021-10-20Stylize macOS correctlyAlan Wu
Yes, it's all very confusing.
2021-10-20Update README.mdMaxime Chevalier-Boisvert
2021-10-20Update README.mdMaxime Chevalier-Boisvert
2021-10-20Use builtin_inline_p to avoid pushing a frame for primitive C methods (#63)Maxime Chevalier-Boisvert
* Use builtin_inline_p to skip a frame of C methods * Fix bugs in primitive cfunc call code * Remove if (push_frame) {} * Remove if (push_frame) {} * Push Aaron's fix to avoid hardcoding insn lengths Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com>
2021-10-20Disable YJIT while running MJIT tests (#62)Aaron Patterson
Two JITs running at once may result in strange interactions. Lets disable YJIT while running the MJIT tests.
2021-10-20Add concatstrings to yjit codegen (#58)John Hawthorn
* Add ETYPE_TRUE and ETYPE_FALSE * Implement checktype * Implement concatstrings * Update deps
2021-10-20Add newhash and newarray instructions to yjit codegen (#48)John Hawthorn
* Implement gen_newarray * Implement newhash for n=0 * Add yjit tests for newhash/newarray * Fix integer size warning on clang * Save PC and SP in newhash and newarray Co-authored-by: Maxime Chevalier-Boisvert <maximechevalierb@gmail.com>
2021-10-20Disable extra T_OBJECT check added because of NokogiriMaxime Chevalier-Boisvert
2021-10-20Guard for T_OBJECT at compile time (#53)John Hawthorn
Previously this could crash on Nokogiri when JITing the getivar instruction because we would attempt to treat Nokogiri::XML::Document's T_DATA as a T_OBJECT in calling rb_iv_index_tbl_lookup. This commit also checks for T_OBJECT at compile time and emits the rb_ivar_get fallback in that case. Co-authored-by: HParker <HParker@github.com> Co-authored-by: Dinah Shi <dinahshi@github.com> Co-authored-by: HParker <HParker@github.com> Co-authored-by: Dinah Shi <dinahshi@github.com>
2021-10-20Implement opt_freeze and opt_uminus (#49)John Hawthorn
2021-10-20Increase default YJIT call threshold to 10. Add exec mem size arg. (#52)Maxime Chevalier-Boisvert
2021-10-20Merge pull request #50 from jhawthorn/detect_typeJohn Hawthorn
Detect types from putobject and getinlinecache
2021-10-20Update README.mdMaxime Chevalier-Boisvert
2021-10-20Recommend installing libcapstoneJohn Hawthorn
2021-10-20Add commentMaxime Chevalier-Boisvert
2021-10-20Add T_OBJECT check to getivarMaxime Chevalier-Boisvert
2021-10-20Implement opt_not with deferred compilation (#44)Maxime Chevalier-Boisvert
2021-10-20Try to fix MJIT symbol clash with cargo cultMaxime Chevalier-Boisvert
2021-10-20Avoid interrupt checks for forward branches (#41)Maxime Chevalier-Boisvert
2021-10-20Implement basic encodings for xchgMaxime Chevalier-Boisvert
2021-10-20Fix encoding of test x86 instructionMaxime Chevalier-Boisvert
2021-10-20Implement defined bytecode (#39)Maxime Chevalier-Boisvert
2021-10-20Update README.mdMaxime Chevalier-Boisvert
2021-10-20Implement opt_nil_p and opt_empty_b by delegating to send (#35)Maxime Chevalier-Boisvert
2021-10-20Implement setivar with a plain old function call (#34)Maxime Chevalier-Boisvert
* Implement setivar with a plain old function call * Remove return
2021-10-20Implement getblockparamproxyAlan Wu
* Implement getblockparamproxy * Parallel runner: wait for timeout thread to terminate after killing Or else the leak cheaker could sees the thread as running and cause test failures in test-tool. * Add a comment, use jne * Comment about where 0x3 comes from
2021-10-20Deletate to opt_send_without_block for opt_ltlt (#33)Maxime Chevalier-Boisvert
2021-10-20Implement opt_aset as interpreter handler callMaxime Chevalier-Boisvert
2021-10-20Implement opt_mod as call to interpreter function (#29)Maxime Chevalier-Boisvert
2021-10-20Implement opt_eq by calling interpreter function (#28)Maxime Chevalier-Boisvert
2021-10-20Implement branchnil bytecode (#26)Maxime Chevalier-Boisvert
2021-10-20Update README.mdMaxime Chevalier-Boisvert
2021-10-20Update README.mdMaxime Chevalier-Boisvert