summaryrefslogtreecommitdiff
path: root/zjit.c
AgeCommit message (Collapse)Author
14 daysGet rid of TOO_COMPLEX shape typeJean Boussier
Instead it's now a `shape_id` flag. This allows to check if an object is complex without having to chase the `rb_shape_t` pointer. Notes: Merged: https://github.com/ruby/ruby/pull/13511
2025-05-26* remove trailing spaces. [ci skip]git
2025-05-25Use RB_VM_LOCKINGNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/13439
2025-05-15YJIT: ZJIT: Allow both JITs in the same buildAlan Wu
This commit allows building YJIT and ZJIT simultaneously, a "combo build". Previously, `./configure --enable-yjit --enable-zjit` failed. At runtime, though, only one of the two can be enabled at a time. Add a root Cargo workspace that contains both the yjit and zjit crate. The common Rust build integration mechanisms are factored out into defs/jit.mk. Combo YJIT+ZJIT dev builds are supported; if either JIT uses `--enable-*=dev`, both of them are built in dev mode. The combo build requires Cargo, but building one JIT at a time with only rustc in release build remains supported. Notes: Merged: https://github.com/ruby/ruby/pull/13262
2025-05-02YJIT: ZJIT: Share identical glue functionsAlan Wu
Working towards having YJIT and ZJIT in the same build, we need to deduplicate some glue code that would otherwise cause name collision. Add jit.c for this and build it for YJIT and ZJIT builds. Update bindgen to look at jit.c; some shuffling of functions in the output, but the set of functions shouldn't have changed. Notes: Merged: https://github.com/ruby/ruby/pull/13229
2025-04-28ZJIT: Replace GetConstantPath with Const if the IC is not empty (#13183)Max Bernstein
* Add rb_zjit_constcache_shareable * Add rb_zjit_multi_ractor_p * Replace GetConstantPath with Const if the IC is not empty Notes: Merged-By: k0kubun <[email protected]>
2025-04-28ZJIT: Drop trace_zjit_* instructions (#13189)Takashi Kokubun
Notes: Merged-By: k0kubun <[email protected]>
2025-04-18Disable ZJIT profiling at call-threshold ↵Takashi Kokubun
(https://github.com/Shopify/zjit/pull/99) * Disable ZJIT profiling at call-threshold * Stop referencing ZJIT instructions in codegen Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18Resurrect icache invalidation for arm64 ↵Takashi Kokubun
(https://github.com/Shopify/zjit/pull/68) * Resurrect icache invalidation for arm64 * Get rid of cfg(not(test)) Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18Stop sharing yjit/bindgen with ZJIT (https://github.com/Shopify/zjit/pull/64)Takashi Kokubun
* cp -r yjit/bindgen zjit/ * Rename YJIT variables * Stop mentioning YJIT in zjit.c Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18Print Ruby exception in test utilsMax Bernstein
Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18Assert everything is compiled in test_zjit ↵Takashi Kokubun
(https://github.com/Shopify/zjit/pull/40) * Assert everything is compiled in test_zjit * Update a comment on rb_zjit_assert_compiles Co-authored-by: Maxime Chevalier-Boisvert <[email protected]> * Add a comment about assert_compiles * Actually use pipe_fd --------- Co-authored-by: Maxime Chevalier-Boisvert <[email protected]> Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18Add zjit_* instructions to profile the interpreter ↵Takashi Kokubun
(https://github.com/Shopify/zjit/pull/16) * Add zjit_* instructions to profile the interpreter * Rename FixnumPlus to FixnumAdd * Update a comment about Invalidate * Rename Guard to GuardType * Rename Invalidate to PatchPoint * Drop unneeded debug!() * Plan on profiling the types * Use the output of GuardType as type refined outputs Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18Resurrect asm comment supportTakashi Kokubun
Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18Port align_ptr for x86Takashi Kokubun
Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18bindgen works in --enable-zjit=dev mode.Alan Wu
Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18Add rb_insn_name to zjitMax Bernstein
Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18Initialize VirtualMemTakashi Kokubun
Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18`miniruby --zjit -e nil` runs through iseq_to_ssaAlan Wu
Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18Copy VirtualMem and mmapTakashi Kokubun
Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18Hook ZJIT compilationTakashi Kokubun
Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18Fix template/Makefile.inTakashi Kokubun
Notes: Merged: https://github.com/ruby/ruby/pull/13131