| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2025-09-04 | ZJIT: Fix Rust compilation warning (#14443) | Stan Lo | |
| This fixes: ``` warning: unused import: `ParseError` --> zjit/src/codegen.rs:20:61 | 20 | use crate::hir::{Const, FrameState, Function, Insn, InsnId, ParseError}; | ^^^^^^^^^^ | = note: `#[warn(unused_imports)]` on by default ``` | |||
| 2025-09-04 | ZJIT: Add patchpoint for TracePoint (#14420) | Stan Lo | |
| ZJIT: Add patchpoint for TracePoint activation Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com> Co-authored-by: Alan Wu <XrXr@users.noreply.github.com> | |||
| 2025-09-04 | ZJIT: Support compiling ISEQs for opt_pc = 0 (#14441) | Takashi Kokubun | |
| * ZJIT: Support compiling ISEQs for opt_pc = 0 * Test send with optional arguments | |||
| 2025-09-03 | ZJIT: Ensure `clippy` passes and silence unnecessary warnings (#14439) | Aiden Fox Ivey | |
| 2025-09-03 | ZJIT: Add missing module doc comments | Aiden Fox Ivey | |
| 2025-09-03 | ZJIT: Fix documentation build warnings | Aiden Fox Ivey | |
| 2025-09-03 | ZJIT: Count exits coming from jit_exception (#14428) | Takashi Kokubun | |
| 2025-09-03 | ZJIT: Handle `opt_case_dispatch` insn (#14433) | Stan Lo | |
| ZJIT: Handle opt_case_dispatch insn | |||
| 2025-09-02 | ZJIT: Use Copy instead of Clone | Aiden Fox Ivey | |
| 2025-09-02 | ZJIT: Remove unnecessary return statements | Aiden Fox Ivey | |
| 2025-09-02 | ZJIT: Remove unnecessary .into calls | Aiden Fox Ivey | |
| 2025-09-02 | ZJIT: Use copied over map(|x| *x) | Aiden Fox Ivey | |
| 2025-09-02 | ZJIT: Use .is_some_and | Aiden Fox Ivey | |
| 2025-09-02 | ZJIT: Use is_empty over compare with "" | Aiden Fox Ivey | |
| 2025-09-02 | ZJIT: Use inspect_err on Result values (#14431) | Takashi Kokubun | |
| 2025-09-02 | ZJIT: Clear jit entry from iseqs after TracePoint activation (#14407) | Stan Lo | |
| ZJIT: Remove JITed code after TracePoint is enabled | |||
| 2025-09-02 | ZJIT: Rename gen_save_pc to gen_prepare_call_with_gc (#14427) | Takashi Kokubun | |
| 2025-09-02 | ZJIT: Propagate and count CompileError on exits (#14408) | Takashi Kokubun | |
| 2025-09-02 | ZJIT: NewRangeFixnum instruction (#14409) | André Luiz Tiago Soares | |
| * Failing optimization tests for NewRangeFixnum * NewRangeFixnum general idea * Use gen_prepare_call_with_gc on gen_new_range_fixnum; add additional hir tests * Remove unused NewRange rewrite trigger when neither range is Fixnum literal * Remove misleading 'profiled' name in range optimization tests * Adjustments as per review comments * Include new_range_fixnum tests * remove non-ASCII character from comments as per PR review * remove non-ASCII character from comments as per PR review | |||
| 2025-09-02 | ZJIT: Bump default --zjit-call-threshold to 30 (#14410) | Takashi Kokubun | |
| 2025-08-29 | Add rb_jit_vm_unlock and share it in ZJIT and YJIT | Stan Lo | |
| 2025-08-29 | Add rb_jit_vm_lock_then_barrier and share it in ZJIT and YJIT | Stan Lo | |
| 2025-08-29 | Add rb_jit_multi_ractor_p and share it in ZJIT and YJIT | Stan Lo | |
| 2025-08-29 | ZJIT: Report stats for unhandled call types | Max Bernstein | |
| 2025-08-29 | ZJIT: Increment dynamic_send_count for Send too | Max Bernstein | |
| 2025-08-29 | ZJIT: Specialize monomorphic GetIvar (#14388) | Max Bernstein | |
| Specialize monomorphic `GetIvar` into: * `GuardType(HeapObject)` * `GuardShape` * `LoadIvarEmbedded` or `LoadIvarExtended` This requires profiling self for `getinstancevariable` (it's not on the operand stack). This also optimizes `GetIvar`s that happen as a result of inlining `attr_reader` and `attr_accessor`. Also move some (newly) shared JIT helpers into jit.c. | |||
| 2025-08-29 | ZJIT: Remove special case for defined?(method call) (#14401) | Max Bernstein | |
| This was fixed in https://github.com/ruby/ruby/pull/14308 Thanks, Stan, for noticing. Fixes https://github.com/Shopify/ruby/issues/703 | |||
| 2025-08-29 | ZJIT: Repurpose ExitCounters for unhandled YARV insns (#14392) | Takashi Kokubun | |
| 2025-08-28 | ZJIT: Compile Insn::Send | Takashi Kokubun | |
| 2025-08-28 | ZJIT: Add code_region_bytes stat (#14389) | Takashi Kokubun | |
| * ZJIT: Add code_region_bytes stat * Share more logic among --zjit and --zjit-stats | |||
| 2025-08-28 | ZJIT: Prepare getglobal for non-leaf call (#14387) | Stan Lo | |
| Depending on the user's warning level, getting certain global variables may lead to calling `Warning#warn`, which can be redefined by the user. This fixes another `bootstraptest/test_yjit.rb` failure. | |||
| 2025-08-28 | ZJIT: Fix a flipped stat | Takashi Kokubun | |
| I'm sorry. Another follow-up on https://github.com/ruby/ruby/pull/14378 | |||
| 2025-08-28 | ZJIT: Fix a typo | Takashi Kokubun | |
| follow-up on https://github.com/ruby/ruby/pull/14378 | |||
| 2025-08-28 | ZJIT: Disable profiling in compile_iseq (#14385) | Max Bernstein | |
| This catches both the interpreter-JIT and JIT-JIT cases. Fixes https://github.com/Shopify/ruby/issues/719 | |||
| 2025-08-28 | ZJIT: Generate code for ArrayExtend | Max Bernstein | |
| 2025-08-28 | ZJIT: Generate code for DefinedIvar | Max Bernstein | |
| 2025-08-28 | ZJIT: Generate code for ToArray, ToNewArray | Max Bernstein | |
| 2025-08-28 | ZJIT: Generate code for ArrayPush | Max Bernstein | |
| 2025-08-28 | ZJIT: Generate code for HashDup | Max Bernstein | |
| 2025-08-28 | ZJIT: Track if object is a T_OBJECT | Max Bernstein | |
| We will (for now) only cache ivar reads from T_OBJECTs. | |||
| 2025-08-28 | ZJIT: Track object embedded bit | Max Bernstein | |
| This lets us know where to look for an ivar: in the object or indirect elsewhere in the heap. | |||
| 2025-08-28 | ZJIT: Add Ractor mode PatchPoint for ivar get/set (#14375) | Stan Lo | |
| * ZJIT: Add Ractor mode PatchPoint for ivar get/set * ZJIT: Only add single ractor patchpoint to class/module receivers * ZJIT: Improve Ractor mode patch point comments Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com> --------- Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com> | |||
| 2025-08-28 | ZJIT: Refactor stats implementations (#14378) | Takashi Kokubun | |
| * ZJIT: Refactor stats implementations * s/num_send_dynamic/dynamic_send_count/ | |||
| 2025-08-28 | ZJIT: Enable no-fail-fast on zjit-test | Stan Lo | |
| 2025-08-28 | ZJIT: Add zjit-test-update for updating insta snapshot | Stan Lo | |
| 2025-08-27 | ZJIT: Pessimize locals in the presence of send (with block) (#14374) | Max Bernstein | |
| We can refine this later by some kind of analysis of the block we're sending to: maybe it doesn't write to our locals, or at least doesn't write to all of them. | |||
| 2025-08-27 | ZJIT: Count dynamic dispatch (SendWithoutBlock) | Max Bernstein | |
| 2025-08-27 | ZJIT: Increment specific counter on side-exit | Max Bernstein | |
| 2025-08-27 | ZJIT: Specialize some Sends (#14363) | Max Bernstein | |
| * ZJIT: Profile and specialize Array#empty? * ZJIT: Specialize BasicObject#== * ZJIT: Specialize Hash#empty? * ZJIT: Specialize BasicObject#! Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com> | |||
| 2025-08-27 | ZJIT: Implement side exit stats (#14357) | Takashi Kokubun | |
