summaryrefslogtreecommitdiff
path: root/zjit/src/lib.rs
AgeCommit message (Collapse)Author
6 daysZJIT: Restore most x64 backend testsAlan Wu
Notes: Merged: https://github.com/ruby/ruby/pull/13576
2025-04-18Strength reduce to `CCall` for sends landing in simple C methodsAlan Wu
A new optimization pass. Also: - Printing for `Insn::CCall` - Wrap `ID` and add convenience method for printing, replacing calls to rb_id2name() Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18Move lib.rs functions to appropriate modules ↵Takashi Kokubun
(https://github.com/Shopify/zjit/pull/43) 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-18Load Param off of cfp->ep (https://github.com/Shopify/zjit/pull/31)Takashi Kokubun
* Load Param off of cfp->ep * Test with --zjit-call-threshold=1 as well * Fix get_opnd's debug output * Return Mem operand from gen_param * Test both first and second calls * Spell out the namespace for Opnd returns * Update a comment about gen_param * Explain why we take a lock * Fix a typo Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18Implement FixnumAdd and stub PatchPoint/GuardType ↵Takashi Kokubun
(https://github.com/Shopify/zjit/pull/30) * Implement FixnumAdd and stub PatchPoint/GuardType Co-authored-by: Max Bernstein <[email protected]> Co-authored-by: Maxime Chevalier-Boisvert <[email protected]> * Clone Target for arm64 * Use $create instead of use create Co-authored-by: Alan Wu <[email protected]> * Fix misindentation from suggested changes * Drop an unneeded variable for mut * Load operand into a register only if necessary --------- Co-authored-by: Max Bernstein <[email protected]> Co-authored-by: Maxime Chevalier-Boisvert <[email protected]> Co-authored-by: Alan Wu <[email protected]> Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18Add std docs to crate docsMax Bernstein
This makes it easier to work offline. Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18Add compact Type latticeMax Bernstein
This will be used for local type inference and potentially SCCP. 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-18Rename --zjit-dump-ssa to --zjit-dump-hir ↵Takashi Kokubun
(https://github.com/Shopify/zjit/pull/17) * Rename --zjit-dump-ssa to --zjit-dump-hir * Update comments * Add a comment on iseq_to_hir Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18Avoid setting RUST_BACKTRACE environment while panickingAlan Wu
The 2024 edition pointed out that setting env vars in multiple threaded programs is unsafe, due to it being thread unsafe in glibc. Sure don't want to crash while already crashing! Always grab a backtrace with force_backtrace(). Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18Fix 2024 edition errorsAlan Wu
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-18Add minor commentsMaxime Chevalier-Boisvert
Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18Rename ir.rs to hir.rs to avoid namespace ambiguity with backendMaxime Chevalier-Boisvert
Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18Add --zjit-debug and debug! macroTakashi Kokubun
to print debug messages Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18Allow dumping SSA in multiple waysTakashi Kokubun
Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18Rename utils.rs to cast.rsTakashi Kokubun
to avoid making it a place to put anything. Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18Let tests share the same ZJITState::init()Takashi Kokubun
to share the initialization of other globals in the future as well Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18Initialize dummy globals for testsTakashi Kokubun
Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18Start compiling the actual IRTakashi Kokubun
Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18Add a comment to dump the actual structsTakashi Kokubun
Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18Add --zjit-dump-ssa optionTakashi Kokubun
Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18Disable stub code execution for nowTakashi Kokubun
Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18Generate working putnil-leave using the backendTakashi Kokubun
Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18Rename codegen.rs to state.rsTakashi Kokubun
since it's only about ZJITState at the moment. Because it's no longer called "CodegenGlobals", we don't have any reason to keep it in codegen.rs. Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18Fix cargo testTakashi Kokubun
Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18Stub YJIT-specific implementations in the backendTakashi Kokubun
Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18Check dump_disasm option before running disasmTakashi Kokubun
Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18Support --zjit-dump-disasmTakashi Kokubun
Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18Implement Options as part of ZJITStateTakashi Kokubun
Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18Don't panic; errMax Bernstein
Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18Implement the disassemblerTakashi Kokubun
Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18Try to use libcapstoneTakashi Kokubun
Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18Fix warnings on MacTakashi Kokubun
Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18Return null on ArmTakashi Kokubun
Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18Generate intructions to be executedTakashi Kokubun
Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18Get CodeBlockTakashi Kokubun
Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18Move RubyOpcodeMaxime Chevalier-Boisvert
Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18Add BranchEdgeMaxime Chevalier-Boisvert
Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18Put mod in the right placeTakashi Kokubun
Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18Set up the panic handlerTakashi Kokubun
Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18Add (gutted) asmMaxime Chevalier-Boisvert
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-18Hook zjit_initTakashi Kokubun
Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18Call libzjit from CRubyTakashi Kokubun
Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18Move IR to its own fileMax Bernstein
Notes: Merged: https://github.com/ruby/ruby/pull/13131
2025-04-18Add putobjectMax Bernstein
Notes: Merged: https://github.com/ruby/ruby/pull/13131