Maxime Chevalier-Boisvert

Hash Date Message
0a5dcc056e22bab849d8d7877928d300201af823 2020-09-04 Progress on porting x86 assembler for MicroJIT
5cf7ccd24a9303b2a591bc0289159517cee6e851 2020-09-04 Started porting instruction encoding
8f40a62647cd7b961faac6b810053b87502d3994 2020-09-08 Progress on x86 assembler. Encode a few simple instructions.
a3b411b9c82010d480ce3bf203dcc8b8600722ce 2020-09-09 add and mov instruction encoding ported and tested
1392a6f2a499f7400320b87d0bf53d3ef0e26d93 2020-09-09 Added jmp R/M instruction
efcaa49a7be1ea016a57bed5080c02df3f88f884 2020-09-10 Added sub instruction, 32-bit registers, more tests
251531bdf06b03a6531ca6863d19c693fc62631a 2020-09-10 Reimplement Alan's pop instruction with the new assembler
fe1cd076da74be8077509fab5a401060ce1c17a4 2020-09-10 Added test for lea
566d4abee5e8e59ce6e080f28a25b7c3431c5b3b 2020-09-10 Added shift instructions
1c8fb90f6bde0c630f5dc532dfe198218bc9f910 2020-09-10 Add new files, ujit_compile.c, ujit_compile.h
6a12fb2067e1d0a9ce610b0affd6a3113d13ff1c 2020-09-11 Ported label linking and conditional jumps
26fecc723699a56e27fefb6fef2b3a13d8a95e51 2020-09-11 Removed native_pop_code, ported call with label
7d0df31d7ab834526a0b5450128602c04fddb2b0 2020-09-11 Ported inc/dec instructions
1879a123caeb9caced2eeb2bb7a7a91a4a8e1930 2020-09-14 Added cmp, not. Generate code for nop instruction.
ca47899ccf9547223f4c64fc4b0837796bee09af 2020-09-14 Small refactorings in ujit_compile.c
3739588811a621ccfd00aa7f8ad804cd1c60f92d 2020-09-14 Remove PC argument from ujit instructions
090255456aa137f28cc254c609ff95fb7fd3d71b 2020-09-14 Ported neg, and, or instructions
2e319492254e529a2f5673038ec6c3ea44087199 2020-09-15 Ported xor and cmovcc instructions
2811792f91d9651a40d1e41de8c85a9b347e6377 2020-09-15 Compiling getlocal_WC_0
b0b7d0a87e3d9f6dce2eded0f45c95b125f569c3 2020-09-15 Refactor MicroJIT codegen to use hash table of codegen functions
16ddb422eb83cc8223a8e93297aef4d6ab273238 2020-09-16 Complete refactoring to codegen functions
7eb192d644996cb2c79663d34e3364adb7dface5 2020-09-16 Testing lea instruction properly
8a5ced8eb5ed96ba3d806b2a30790c87c453a9a0 2020-09-16 Chain compilation of adjacent instructions
132f7e11fd6715a9e2e09b06441de8d399728049 2020-09-16 Compile putnil
038f5d964ffdfcce7c1acbeb4c6ae4ad01a09014 2020-09-17 Avoid recompiling overlapping instruction sequences in ujit
77cfdb24d4d7445a6e8f4a110d4e2159360f3c2b 2020-09-17 Implemented delayed stack pointer adjustment optimization
b8a3f2ed6177c753a35feaa4239a47de0a97ee77 2020-09-17 Add function to print strings from generated code
d1c9ca86c191ef92d9bcd1242aeb7eaa35381e6c 2020-09-18 Port print_int, movsx. Implement putself.
30c4237b06573d068624739f6f6d5aaf59a675e1 2020-09-18 Fixed bug with ctx_stack_pop. Implemented dup bytecode.
c20066b24cf1c1c235d1f9402b7986b5085cad53 2020-09-20 Added method to align code block write position
304adba717b30df17b4db3c76993a649c3efec0e 2020-09-21 Add location hint to code block mmap call
38601da27dde73c75ec052d2d6ca555da71ee00e 2020-09-22 Added 8-bit and 16-bit general-purpose registers, more tests.
4d72b9a2f7890a36f221f256b62250df4baebc1a 2020-09-24 Start implementing setlocal_wc0
e0c5d4ecd9e864fa531ecceb29ed0e195bf08644 2020-09-28 Implemented side-exits to interpreter. setlocal_WC_0
2c866ce8f0ff45e8d6d2941df174a2effe12a2dc 2020-09-28 Check if outlined code block has enough space too
e99e3daace542cbfd045ae76c435a4f6e163f1d5 2020-09-30 Added jmp_ptr() to ujit_asm.h
851ea463512529390133e656540bb3e287ca6fdd 2020-09-30 Added member_opnd() convenience macro
e3cd43e2bc44fdd358f8ea1c373125ce4320f972 2020-10-02 Implemented opt_minus in MicroJIT
12283c58dab63eb9f8e916a8647758260a3e699b 2020-10-04 Removed inc/dec instructions because usage not recommended.
e5751768baeb7c1e0a48c466c98014667058d2c3 2020-10-14 Added int3() to x86 asm
6f81bd2c76c9eec7a95db92f552405cc68367e4d 2020-10-14 Added print_ptr() util function for debugging
32a66b99f657f872924ae16d64316af4a3533ef0 2020-10-15 Add system to implement codegen preconditions in JIT
2cb376a53f2f165415f36fba4b2230bcbd1e3848 2020-10-15 Started refactoring opt_send_without_block with codegen-time checks
ef9eb83cbecb3d7add699c41f713a42c296fe65a 2020-10-16 Commit before merge
7c9fdb5dc9cb1431f16e67d206971db3e27f9e82 2020-10-16 Check receiver type and klass in MicroJIT
e677ca4af08070a73a30816dfe6e80c776f91d25 2020-10-16 Fixed is-object check in opt_send_without_block
770f3929b31da37c06e015b292c3b7ec3dfc969c 2020-10-19 Remove comment. Commit before rebase.
a88d6207dd87b53f54debb1a3cf044da60b82fb3 2020-10-19 Updated C function call sketch
008551decb7481c8d8a7c870a43e0ea450041aa5 2020-10-20 Commit before merge.
ff73762bda4f2c5c7aa2a04b39282c3755d69841 2020-10-20 Refactor ujit, define named register constants, code cleanup
35c0768473d18a83c50cf7f175d301a614987527 2020-10-20 First pass at CFUNC calls complete. Not yet functional.
37e4350e80c0b9dfeee7e7ea461bcb65fe385bdd 2020-10-20 Fixed two issues with MicroJIT CFUNC calls
d49edada2eeb0e2fa25c2f36c06e9836e9288f56 2020-10-21 Fix MicroJIT argument copying for CFUNC calls
809ecfb1266fac21019f0264f060f408c2946fdd 2020-10-22 Fixed two CFUNC call bugs thanks to Alan & Aaron!
b761f5c96ff1635aeeb26bb7ba6cb2b30adcddaf 2020-10-23 Implemented mechanism for rel32 call
5b6a963b710db6bacb64d17c32666f3db935b0ac 2020-10-23 Fix compiler warnings
8b8470d098607548ff33792b831a2290c12248ed 2020-10-27 Added RUBY_VM_CHECK_INTS to CFUNC calls
81e7091862d76ef660363f3463820b5ecd214c87 2020-10-27 Added stack overflow check to MicroJIT CFUNC calls
5413d0918b89ee46f8500ba2731ff3a7a22c6276 2020-10-27 Fix GCC warning
0c52371c47d8b65f91ed5d2a7e2c14c96d286f57 2020-10-27 Don't create a stack frame for Hash#key?
ba92d40d9bc48ab57bec7afbf7e900c1f211b4b6 2020-11-02 Fix warning
6a9a516dc5c253c5609386ae70e2ac5c53423e2a 2020-11-05 Print to stderr in ujit_utils.c
64072dd3a6a321b674255f44632f2c34ac196507 2020-11-09 Rename variables for clarity
1cd4c8b294acd2b4d34c2c830ee2b541a87a0e6f 2020-11-09 Deoptimize on side-exit
e17053c72090dd8d732742386303f9964b6326ce 2020-11-10 Basic implementation of getivar for MicroJIT
e2e70f69f3af939b0ba687424b6a30043de2ea9e 2020-11-12 Add comment wrt getivar and allocators
4d964e25823fdbaae28cea7b0416902f7afd7cdc 2020-11-17 Implemented setinstancevariable
ec42378196db02936cd521305dc5940f598370d0 2020-11-20 Rename function and variable
7be67a6c080dd7d0d571c50d01bb0195e0d3262d 2020-11-20 Implemented opt_plus in MicroJIT
e4c65ec49c5e2cba537f2d9ee00888c5dfbcac34 2020-12-08 Refactor uJIT code into more files for readability
f761e9ee641cb4bf9250fa97d119a444d239e7b7 2020-12-08 Move code into ujit_iface.c
f7717b1d463548414e607498e84815ac641ce3dc 2020-12-10 Start refactoring JIT engine
20f5b7426e839c90819f223c1a30992fd8d4023c 2020-12-10 Start implementing BBV primitives
8ae354e9bedbe5995e97206b170f3e406fc5b617 2020-12-11 Implemented opt_lt. Prelude to branch instructions.
868a6809e7d15b95f14bff822268e2962747fb06 2020-12-14 Add sign-extended mode for test() instruction
bd7cc9ed98056d01dbdd592156e07ae6c6eff516 2020-12-14 Thread insn_idx through context object
40b70ef7c762701d26539e5a401449d7f3733b5a 2020-12-16 WIP branch generation code
7d7e58d3521c797d772fdb5f974061c8a3758594 2020-12-17 Implement branch stub logic
e9344ae4089503341b8546beb4f53e654b3e3f4f 2020-12-17 Stub logic working for fib test, but still crashing in other cases
4592ef9d76c5ef1bf7f99119a126a1b700c88f1f 2020-12-17 Fixed one bug in compile_block.
5e39d83fbd560a5151facba10e95889aff84c93e 2020-12-18 Split out compile_entry() from compile_block()
df16bf97ece9c3f943750954c19d1caace089215 2020-12-18 Split out context object into jitstate_t and ctx_t
542f2ba09e1904fb7f43af34bc1527073daae964 2020-12-18 Use a versioning context when compiling blocks
97cffcf79a5586765d0046d3dc0d004a101f73ad 2021-01-07 Fix sneaky ujit side-exit bug. Reduce ujit call threshold to 1.
1744c15578cf1955dfdaf5bc02db13a05a8d6970 2021-01-07 Avoid generating redundant interpreter exit code after branches
2cc0db12fee25b23d689a9a9936db470d0fa0433 2021-01-08 Refactorings in ujit. Implement Ruby jump instruction.
7e60ce357b7061ea6e638cab2ff656df031f7d90 2021-01-11 Fix uint cast bug caught by Alan
a251059070a4d42ac1a70fb3ce747cd791bfbe92 2021-01-12 Fix hash map key issue
3a74011ff8e5b9b4bf07ef72d249d08b8c13c57e 2021-01-12 Introduce version_t struct. Will be needed for code invalidation.
ef08af93769982047e59356d76c7e72a67970335 2021-01-12 Progress on code invalidation
2cf32e5505d8da85f31df3a0bff7b0fd38054503 2021-01-13 Refactor ujit logic for generating iseq entry points
92e9b2458665617d6d05b968a4f8bd08afdb65a4 2021-01-13 Keep track of incoming branches in ujit
4a5710769609c35a32a071cc4cd3bcebdc3ec908 2021-01-14 Sketch code to invalidate basic blocks. Rename version_t to block_t.
59eb98fbaa4762a935ef57a6777042068b186278 2021-01-14 Fix ujit cc/cme invalidation code for opt_send_without_block
79331368b94b297a0653152cb568a9b998af7fee 2021-01-15 Added block end index
02a97004751eae471e00b2b6c3ce86c9dd6ae259 2021-01-15 End current block after opt_send_without_block
187435c11757748af37c59ced54d4ee04f442ffe 2021-01-18 Complete refactoring to eliminate recursion in ujit's compilation
37ad374607ae69637bc87bedd809466a6a71d4f4 2021-01-19 Added gen_direct_jump() for unary branches
136bf983beaf46bebd13026890eda8dafff279ce 2021-01-19 Fix bug with ujit code invalidation
dde69ab5c63a01c20c9bc19b7a11d9c64f6dab2a 2021-01-19 Fix ujit block hash table bug
cf4021ca780d460dc351b30260532c158a5c8a5e 2021-01-20 Take VM lock in branch_stub_hit(), fix ractor deadlock.
0a6e824ad2cc22315b32d1a11dc094c528b32acb 2021-01-20 Prototype type-specialization for temp values
0a42428098e4dd4c348dd09a8566d643efb59e1c 2021-01-21 Implement branchif in ujit
d528cf4fd5551c323484c2ffb79b56af0c6f50c4 2021-01-22 Added comments. Fixed compiler warning.
dea4db16c03b3befc14a0de9b51489d9382258a3 2021-01-22 Add support for multiple versions per block
738160db0a7fb32d609133fb68fbdff02ff315f2 2021-01-22 Write ctx_diff() function to compate ctx_t objects
8a61e848c09779312dab159e8a625872de034272 2021-01-22 Minor changes to disasm output. Fix GCC warning.
79d6e9618d8215f936a3c938d192753906412c02 2021-01-22 Make find_block_version() do list search
9def269b470f74d8ea4bb7919f927d16efb35cfa 2021-01-24 Fix issue with block address accessor. Print absolute addresses.
4f47181be689e9cfc2cbce332aa4d538afd35da1 2021-01-25 Keep track of multiple versions per blockid
b0b1bc1684a845ae07df474f6a7e86ada501dadf 2021-01-25 Tweak ujit disasm output
63e85de33a6b3cf4dbb2f7873c968576e201f0b6 2021-01-25 Fix bug, block added with wrong blockid.
e7909467df181641b1753512cba3f49c0f0f6583 2021-01-25 Eliminate type checks in opt_lt
c61238a2761ca8d9bbe56dc3b06aa07da5784c96 2021-01-25 Optimize putobject codegen
36232a48a63923e6d3bd3ccad30a12a02b20e89b 2021-01-25 Set T_FIXNUM type tags in opt_plus, opt_minus
a14015e9b5594bde3ee802eb8c39d08d5b8e8249 2021-01-26 Report unknown --ujit-* options
81c57ab9b8a55c3572facd1fa62c4b5c38a160e0 2021-01-26 Reduce size of ctx_t
09479c33f54423910674780d1fcb7834e98ef561 2021-01-27 Implement block version limit
2e561ff255ea69e50f2d53240332cfd96463ef06 2021-01-28 Restore interpreter regs in ujit hook. Implement leave bytecode.
a6d0c61c3c4a9bb117e5c1bf4da02662f58a50a2 2021-01-29 Add percentages to exit op counts in --ujit-stats
05c72d40b7ee907f62701948e1249891a1d008b0 2021-01-29 Alan & Max at Tanagra
53bd13edf3b41b965297d4ed425a96b9b57dd053 2021-02-01 Implement opt_and in ujit
27a44436433a0072f62aaae6e8d6f12a1f0a1bf8 2021-02-01 Add total exit count to stats
6a29131439b88f696b54d4d732f5bffae9a56aac 2021-02-01 Implement Ruby-to-Ruby calls in ujit (opt_send_without_block)
020f745041d8555ccd287553a098402c04f9e248 2021-02-02 Fix overflow check in ujit
439e1089b72ebb11314b3f548c8bb5bdf02a91a1 2021-02-03 Implement opt_le, opt_ge in ujit
e85e0e2fa98d7835163e3470ca322b11a0f67c67 2021-02-03 Commit WIP setlocal_WC_1 implementation
d2d564be1db247f21e15c847584b0ec2cae4428d 2021-02-03 Moved ujit code invalidation test into bootstraptest
0f53c216d2e46049d30eb82b66c9ab4c946911ed 2021-02-04 Pop stack operands in opt_aref
8357e8e5142b97c452929aade0c24f59c7a34833 2021-02-05 Fixed two bugs in JIT-to-JIT calls (thanks Alan!)
d2ad0a1175a83392710a4248dc541492ba151e61 2021-02-05 Added synthetic torture test with 30K tiny methods
21c4dd037d3f9c20dda281883b8d43fc2226d550 2021-02-05 Fix bug unnecessarily causing version limit hit
6341fc21b2e15dca82253da41047ce37409508fc 2021-02-08 Don't increment instr/exit counters if stats not requested
9d8cc01b758f9385bd4c806f3daff9719e07faa0 2021-02-09 WIP JIT-to-JIT returns
a8827e5c5fb1e3218e7f0d5ac792482c0d65f8f3 2021-02-09 Added failing test to `make btest`
f9e16b0e078b6b6c876c4dbfea868bb0199d5382 2021-02-10 Fix context push/pop in Ruby-to-Ruby calls
c1c5fd5a8dbfce64067961a4051646ed62a50f89 2021-02-10 Fix REG_SP writeback bug in gen_exit
75b623776b920b0711c0c458997467d19a32ef8e 2021-02-10 Fix jit_return bug, return address on wrong frame
a267f45502358114fa37b0390f894eb480624b67 2021-02-11 Remove superfluous instruction in opt_send_without_block
3d026adb613f2e27a5c84f3db8f5ddc6896ba5a3 2021-02-11 Add failing test identified by Aaron Patterson
2eac297f9f9edc3ec61d087924b30ce40c84b772 2021-02-11 Optimize gen_dup
05d36f31ca919a2cc1c2db210dd70639457dca35 2021-02-11 Fix bug in putobject found by @tenderlove
faafe716af5ea2d31eb175885032a6fe46b92834 2021-02-11 Add jit_print_loc() for debugging, based on Alan Wu's snippet
a7c1bc61d2becac74743d8ab6efd6d5649b92311 2021-02-11 Add missing VM_CHECK_INTS() for correctness
e7d20e6616546c9b26ce3c8eb9663e6805d0d0bf 2021-02-11 Free block->incoming in invalidate_block_version()
8ed77f96fc7df4ff0a1a91507cd7bf11e1f6788e 2021-02-12 Add another torture test to `make btest`
d192b149ba5b6f0bb8222519793a59b60c637f78 2021-02-12 Added more tests to `make btest`
48736599ace66fe6bd205e3df2979563f04e0a30 2021-02-16 Fix compiled iseq count stat
ddd1a5ce790717d8606d3aba17cd1aaae266819f 2021-02-16 Add op-not-redefined check to opt_aref
1279236ff8880c5aea428751446493b8e4f0e711 2021-02-18 Fix opt_aref SNAFU
701a802a4278ea7393d7a63b465e610eb6b47d3f 2021-02-18 Create ujit.md
2babfeb858894cbcb28ce763dcad12ffab67a222 2021-02-19 Update ujit.md
7fbbd0c67cfbae1a690a176395768d5eeaebc362 2021-02-19 Update ujit.md
9d62ab303c118eb4f21f8147fac33e187902e339 2021-02-19 Update ujit.md
1a937dd1964cf8f1f02093d5d2a53f00792668f3 2021-02-19 Use darray for incoming branches
fff6d642b3fb0ef551dd67dafe896a0b18670144 2021-02-22 Added ujit_save_regs() and ujit_load_regs() helper functions
0710bec01e405af596fa3e8e29ba38bb8176e39d 2021-02-23 Implement --ujit-call-threshold
2a99743056aaecbb77cd1b17bf9f7e9e7460ab8b 2021-02-23 Update ujit_iface.c
0d6ed3128a748705c6e2ed933125aaba8b062851 2021-02-23 Update ujit_iface.c
6100b52ecfdcb63de51bf52657259c2ab81ee440 2021-02-24 Update ujit.md
47900e10e3a7e9f7fd25248c30ad9897d1071641 2021-02-25 Update ujit.md
028e017e955692bb508ea3b2661906429df3422c 2021-02-25 Update ujit.md
8e5222c887e05685f34b819e913de5ab5d7a0c39 2021-02-25 Update ujit.md
f93f3d6aa164ea5bc01e596c84b7c525c41bb852 2021-02-25 Implement support for variadic C functions
799d248e314d98b28837b921c9e0fc97ae93b574 2021-02-25 Fix jmp encoding. Rename conditional jumps jxx() to jxx_label()
0888d9c9d52c7021ac39f712b0111fe43dce81b0 2021-02-26 Update ujit.md
6f437d5b30355070f15921a421c5c4ea7a3147d8 2021-02-26 Update ujit.md
831ac473faae9cfb184752e5db2bc9b309a78eeb 2021-02-26 Update ujit.md
824fea684f8346386db0391fb8575ced07ae01d6 2021-03-02 Thread EC through jit state. Add codegen status enum.
2e8db8c35e5bb00a2a27657e2d091edf9e27cacd 2021-03-02 Update ec->cfp->pc when hitting a stub.
b3b3a8c62020caca849e4b3a1325eb53811e6f7a 2021-03-03 At jit_at_current_insn, jit_peek_at_stack functions
5c497dfd7f86c88c9730dda397fecb3aa943e84d 2021-03-04 Update ujit.md
abc016ad2c85a15ad6a512be57f47d893bc81e27 2021-03-04 WIP refactor block lists to use darray
f2b170b01d36f3cab2671cc575e75c916bc95bfa 2021-03-04 Update and rename ujit.md to yjit.md
7b38bf189ef208039df84324e6df72479a0af878 2021-03-04 Update yjit.md
e4e453c7d0bd93e3d76879285a29f0bbb7edfab4 2021-03-04 Update yjit.md
4a99990b36e29f24f2e0cb12531fa4de65cce071 2021-03-04 Update yjit.md
d6d58795a90d338ac8fb308c8a79044172778485 2021-03-04 Rename test files
7f4000b1f430c22fd35c50201271d0abd4fff358 2021-03-05 Machinery to implement deferred compilation
0a160407dad305d18a28bb34f72fec8dcd6bfc6b 2021-03-05 Update ujit_core.h
eaab6605b75a2510f5cf0ae781817de3b7d6e39f 2021-03-05 Update ujit_core.h
c56243dab4a2e07d3ba4942fdd8ec72a3b56218a 2021-03-08 Update yjit.md
46874b8fb979d0bf46d5d3b6e1523293201441e8 2021-03-08 Update yjit.md
4ccfbfe6fa9676f4c177fdbd217cecc361c9aa0f 2021-03-09 Update yjit.md
c6156e511338450db2f39abc45e1ee1b5508bd6b 2021-03-10 Fix trailing spaces
fe3bd570072b35e47e03ea23e2bc42a4d8a7681d 2021-03-11 Remove trailing whitespaces
439db7b81b588a1ee12475568cab7b8dab4e2cd3 2021-03-12 Add metric for average # of insns spent in yjit before exiting
98e93d6a8fbf1070e1b334dd1b1cf313c221bb17 2021-03-26 Update yjit.md
0e5c3d66b8e6c3d1d828ce76a4c2caab3d1b71c1 2021-03-29 Implement opt_gt
fe784d1449ac6a9c2280ce1b29b19fa86d108fe9 2021-03-29 Track interpreter return as an exit reason for leave instr
5ec94e0d4ad49cd249312c29cbbe9369637b9b48 2021-03-30 Fix issue with version matching logic
cb46a17ca16935c61bdc82e44cad0c6450e8a4ad 2021-04-01 Log code size in bytes instead of MiB
ac1aa84c1a866ee58c1f75874ceb226b297d676d 2021-03-30 First sketch at temp type mapping
c5f31264287a1c587448e9a437603da1b8497e67 2021-03-30 Commit WIP
e47dd8bb88a10eb20afb8dc37f19ae6ee8e56f4b 2021-03-30 WIP
aee44e4f2bcd795b5a81c72cb75d742103bb070b 2021-03-31 Part 1 of improved type tracking logic
215a2f401068fe0afc18a22377082d0d3d8644fd 2021-04-01 Fix type_diff logic after Alan pointed out errors
c299112fd7eb4432f3fdc83a9f5716e8e79249f4 2021-04-01 use ctx_stack_push_self()
e56bd95ca05fa8ff07455e62143b260bcda74926 2021-04-05 Rename first call => threshold one
2b522ad9f5a5a3baa1fc16b1b45d5d28773d5f67 2021-04-06 Update yjit_core.c
5b613938eb63d3dd82feb32b4eefbe345beaf199 2021-04-06 Fix branch rewrite issue
131fc9c074d464c6baa548ab89a1d1d1dcc5c571 2021-04-06 Readd const arguments
3d53ee17616d9c028d2b537989c4cd2e1d08261b 2021-04-06 Fill uninitialized memory with int3
d1e9e4566f93e219314f361b88b4a0e003a25241 2021-04-06 Update yjit_asm.c
0881e018b567362ba6405eeb788d76d770653978 2021-04-06 Add comments and asserts for clarity
e98d2c5ec818abe9a274055c2308bf3488358529 2021-04-06 Add ctcx_stack_push_local()
cbbae12a96e1857c414b4592376886fc8bb5da1a 2021-04-06 Keep track of local types in the context
54312d777cc22a52cfafcce0a0a20ed48375b82e 2021-04-06 Disable local type tracking for now
42af04efee38de4435a04ea0487fce483db10dee 2021-04-07 Add flag bits to avoid compiling stubs multiple times.
543bdde6c21f071e673aa8090086e1045ee4f2d9 2021-04-07 Update yjit_iface.c
04243533fc3f9b1ac71160dbe235da9995a994ea 2021-04-08 Update yjit.md
7108da16e9ec39d682572c47ac3e99035c0683f0 2021-04-08 Fix two stats bugs, refactor stats code, add total_insn_count print
032b2ecf4b026d2945659d8de325ad3ef6ad4734 2021-04-08 Compute percentage of exits for top-10 exit ops
f6e3f75c2b7503eb89f517c57ac4ea97dc2752b4 2021-04-08 Introduce concept of YJIT instruction operands
7ee3636f61631429fe39d2d213efe1b711babbab 2021-04-09 Remove unnamed enums because MSVC sux
2404ff691d81183dc7d1bdc844fd7d556edf6837 2021-04-09 Factor our guard_two_fixnums(). Implement opt_or.
0805cba73572a5150975a0dfdc4461ae0872e90c 2021-04-09 Update yjit_codegen.c
6164274c76d31bc447a92c59c8d277670a93f229 2021-04-09 Re-enable local type tracking, until first call
53ff2d791d5e2c303a61d5873bcd03007366be88 2021-04-09 Fix bug in ctx_set_local_type()
dac830553ef486a97beb57d1531ccc9a0a4bdd9b 2021-04-13 Diff the local types in ctx_diff()
646c7b3ff69af10d5155263d80b0ed21852a1dab 2021-04-13 Temporarily increase MAX_BRANCHES until we have a better solution
791f20af6e9a5db37e69ed33c6b91fc15d9fe824 2021-04-15 WIP
edaf12def626a2b06fc2cf9bf53db9b0f45b88ac 2021-04-15 Fix local type tracking in getlocal, setlocal. Add test.
6250506de2f11bc45d1d7a0cfb2a4d15390c16ca 2021-04-15 Remove debug prints
f2530f884eff1910fb69201cb0a009332fa1b150 2021-04-15 Improve codegen and type tracking in putobject
23f88957e691cbc11375627bbc26a35cd3a3465c 2021-04-19 Switch to 2-comparison heap object check
33c975b813a2be9fb02e526b7a63096dff385614 2021-04-19 Merge pull request #114 from Shopify/yjit-dup-comments
0cc73ca2a9a2aa5276cd022be9891475a15ecee3 2021-04-19 Malloc branch entries (#112)
51e46eac5f225227460bd203104886d77828cd34 2021-04-20 Rename Ruby README to README_ruby.md
10217d147c17bcf3c092ff192911fdb254cef236 2021-04-20 Rename YJIT readme to README.md
852ffe2627076fcac0b8d50731637c59ba8e259a 2021-04-20 Create codeql-analysis-2.yml
ef5cfcae0dd8de244333b52ff3cc80afb8ddbcb4 2021-04-20 Delete codeql-analysis-2.yml
60496b6666765ab8cb63816ca1d525fcfbcf7abc 2021-04-20 Pass self type through method calls
035b5ac3bb3e1e9414aee3c285414c739c9c54d2 2021-04-21 Remove token_paste.h dep from common.mk
38e67ccd157497e228b22cd4cd1f9416b61cf0b4 2021-04-21 Add setivar exit reasons to --yjit-stats
adbd7ff332a34e674d7e6281134248b1292fe60f 2021-04-21 Fix frozen check (use jnz) and move heap object check.
e66c9f8c621eb710085b45a4274e2a2135de57d5 2021-04-22 Remove redundant mov
9bd779cbf96fc6abc6135502d8580a4765d4b28d 2021-04-22 Don't check if value is immediate if context has type info
3e80104024b8663ab99d2571f2cf1cdf054a89f6 2021-04-22 Aesthetic changes and add missing counter
eaf039af982b19a854ad705cd441144ae648b791 2021-04-22 Create GitHub workflow to run ASM tests (#8)
96f4f918b04fad1401d4f41cd11d97d9d4d28c7d 2021-04-24 Implement greedy versioning. Refactor versioning logic. (#10)
8bd3e5015b52713753b06879155615e101a1e467 2021-04-26 Update README.md
31ab35309b12db2d7d4c0b387dc6fbb531068e70 2021-04-26 Update common.mk
34dcd0b3e642778b34c354cee503826f1fc373fc 2021-04-27 Update README.md
cf2b508375c0b1d3c67f108861afb454a5110790 2021-04-27 Try to alloc executable memory within rel32 range on Linux machines (#12)
cfaf6013036bf1294d4dead83155daeb5a95308e 2021-04-27 Update README.md
bce6dea72d0081e4777b80e1de3b76fbfcde9f0a 2021-04-27 Fix assertions in `invalidate_block_version()`, add small repro (#14)
62c1297e246966bd3b309d3a3ce3cd0dc78c389d 2021-04-28 Implement setn bytecode (#15)
8249f6ef57df76d2789b728f0646a34dbf207c94 2021-04-29 Print top-20 common exit reasons instead of just top-10 (#19)
59e5f6b83b3d55fb4a2e4d9669c31d5f31b1fda0 2021-04-29 Implement dupn for n==2 (only case used in RDoc/railsbench) (#20)
e5f8b417862cf7a7d03c82067b9870151cd6ce28 2021-05-05 Implement send with alias method (#23)
ad601cef8af4bc93a53c8437be4fe8749191f621 2021-05-05 Update README.md
4f24f3afc7baed2294614357486e10e1f055c661 2021-05-06 Update README.md
6c793a2fed4592d2196d9e43df58fba9274faafb 2021-05-06 Update README.md
e22657b88708d594720b40f7d9a350b4bace42ff 2021-05-06 Implement branchnil bytecode (#26)
e2c1d69331a037b7c26508d69d6e1ed0f6e70961 2021-05-07 Implement opt_eq by calling interpreter function (#28)
c9feb72b650a2e8f2ab0eab164e1ffd52f739396 2021-05-07 Implement opt_mod as call to interpreter function (#29)
0c3842d154185d498f468b068c5702ceb5ddb216 2021-05-10 Implement opt_aset as interpreter handler call
ce928473d054b3fcbe2b05a1432b770dccd54bef 2021-05-10 Deletate to opt_send_without_block for opt_ltlt (#33)
d6412126bcafb4a123aebe4f614e45d5d1064948 2021-05-10 Implement setivar with a plain old function call (#34)
3677b233ddc5c0410b71590e709bb9e940e58fa3 2021-05-11 Implement opt_nil_p and opt_empty_b by delegating to send (#35)
7ce6d1f0c2683b5d70b2c8055d893fd3052a266a 2021-05-11 Update README.md
54fe43b45ce65f0e2cde4d4e950303893a721ebd 2021-05-11 Implement defined bytecode (#39)
5c2f74fc32951fc038dca465985a4859c517ef47 2021-05-11 Fix encoding of test x86 instruction
6b5d26dc788bfcf1d39db0bfe25645173507299c 2021-05-12 Implement basic encodings for xchg
0db85218aa6d398222ffeb25a0b6858c378fd59e 2021-05-12 Avoid interrupt checks for forward branches (#41)
da30f21ab5122b55f69fb41290f587aadd4fb8f7 2021-05-13 Try to fix MJIT symbol clash with cargo cult
a66dce146a1ea2c38a8f4133f598d4316c39c910 2021-05-14 Implement opt_not with deferred compilation (#44)
03da234eb019902176f8d456fceaefee11858a59 2021-05-18 Add T_OBJECT check to getivar
1aace65dc045909b6c33491fe3f5218c33117e0a 2021-05-18 Add comment
844067f7ee40a406314c6b570df82fc43d519131 2021-05-21 Update README.md
b415ceb92e464011a9326c9cb5e15a84c39da330 2021-05-26 Increase default YJIT call threshold to 10. Add exec mem size arg. (#52)
d01204a15da9afcd4ddcc48ec022f9bf92db0a70 2021-05-27 Disable extra T_OBJECT check added because of Nokogiri
860589c7fa63faa837e0922f581ef8b1af7837d4 2021-06-03 Use builtin_inline_p to avoid pushing a frame for primitive C methods (#63)
b1fab663eb21fdab23bd15131a3021e2011a1e6f 2021-06-03 Update README.md
7dc497e15874beab7f6b495303a19dd62b65b340 2021-06-03 Update README.md
43acb9d7f0d96caec6c517d3e9097b956bc91dd9 2021-06-03 Update README.md
9a55fd37c926f7297e2039a0436aae755a06ce78 2021-06-03 Update README.md
5432f46f6a7a35a8d2a924eae7b1e29289a58292 2021-06-07 Can't add comments to the outlined code block
99341d4a18805db6426c833da0a1d7e1e1f05bd4 2021-06-08 Fix issue in yjit_free_block causing segfault
ecd4487a48eb125515ab3e1e739803f7a1895e6a 2021-06-09 Remove #define MAX_VERSIONS, now using command-line option
364cdda0f1b63ac0e541ed73a3185a26d309e4da 2021-06-11 Fix compiler warning
f54e6e131099b5502f7d9be57f29bab11c70d841 2021-06-22 Update comment
7030cae969085f2849bc265047397fadff8b97e3 2021-06-23 Try running with more YJIT options in CI to surface more bugs
6cb4edd73ff23809887a72293b670d9c9de2a8fe 2021-06-30 Implement swap instruction
4bea8af69f153b78ccac2d7b2bb7248fbd8d1c38 2021-07-06 Update deps
51c84f003391a45460d188be155a3e85057234fd 2021-07-07 Code page allocation code
350b686a2c6cc8f27466222cf8520a8fda931ea2 2021-07-13 First pass at code page GC object.
d5f18f7845f0f0fb3024ada63a552deac9c11ad7 2021-07-14 Add (void) for no arg functions
27681f269463b65b566eb857c36a504db9190618 2021-07-15 It's RUN_OPTS, not RUNOPTS!!! via @tenderlove
84920fe8eeab41d44dbe3c6b8ca076471694c3be 2021-07-15 Update yjit.rb
1943b27fe9f7ad237a1c5119550d2d71958cf4cd 2021-07-15 Update yjit.rb
1891dcaa9faee3684d6c8abfc34cab5b01a63632 2021-07-20 Add flag so we can easily tell if all stats avail. Comment out broken test.
c4b99d6a427060cadde7f5561c5a3db626bc26ba 2021-08-23 Add ASM comment
dd5082d7ca31adc66f885aed1af789adaf262a64 2021-08-23 Use cmov to handle Qundef case in getivar instead of side-exit
7f2828d1c86c5508a49260bcecbfc2e78c00e49f 2021-08-24 Update README
b3e993a64bb10e20280a7a5c604f9f0fe3939a4b 2021-08-25 Make sure that there is always an index table entry for getivars
0562459473f44c270784074a09a33ea30d68e457 2021-08-25 Redo the ivtable lookp once the ivar is set
9d5b3e1d0f3d44a52dffb6ec1f09c361c3b419c7 2021-08-31 Add a small test for the code GC
013a4a31d65810c9c1b8d34d12a7b766261440a3 2021-09-07 Prevent stats being enabled late at run-time
a1d42c37f4d849db71561e2ca60eb279719f6172 2021-09-07 Update ruby.c
9bd6ce47454a03ad1cec422f36017bcae56790dd 2021-09-08 Update README.md
11599e5e1ebed485089a994753a9c3c79416c037 2021-09-09 Add rb_darray_clear() for Kevin. Fix some warnings.
bd8cfb351b8a286af947d0a7c0431026751756cf 2021-09-14 Fix misplaced ivar_set_method exit counter
0ee8c606626cd3f92a07a4b1ae7ab546e22031ab 2021-09-14 Add missing percent sign in printout
9fff8fdb59fe79e52bf0985db3edc4d8e1ce54fb 2021-09-14 Update suggested ./configure in README
0ad9d1fa48e4ced310ae70c53f9cf82ebea586b6 2021-09-15 Update yjit_codegen.c
a6cf515e6acdc4c308e8fe8f284fd381b0a0285c 2021-09-16 Rearrange stats printout for consistency
e04c3af52253948139c250b25263c992a9b2f23c 2021-09-17 Update README.md
6055078b24ce9878aafad406fe72711311f9744f 2021-09-17 Update README.md
0385ca2e97ba29653251dba96ab8cf0f21765bb4 2021-09-21 Try to break the code page refactoring into smaller steps
c55d4cafc241706d1255d8609d3d7c6f04d0706a 2021-09-21 Pass the global cb through codegen functions
f1eb48cb23c949ce8163c6b6d2042cecd0d79ea9 2021-09-21 Step 2 to remove the global cb/ocb objects.
0c1aa17556357ca3cb5802d7a23965ed820973e4 2021-09-22 Remove a few more uses of the global cb/ocb
79015926eb81ac93700146d42c343f568d3ddfbb 2021-09-24 Try to get getblockparamproxy to support level > 0
70c5bbf84b569d293c0162c084c99d2ca609d9be 2021-10-04 Fix counter names for getblockparamproxy. Print in --yjit-stats.
201721b713d2cb8b7f7374c9c5ba037c3b8f540d 2021-10-07 Update yjit_codegen.c
35b37c5873d49b7e2ac2d406532635b0871c8dcf 2021-10-07 Update yjit_codegen.c
d11ea2520e24fdc7114a6400f00c96d241665bff 2021-10-15 Update yjit.md
2e2430564aa32b68f9e2d99e1f1e273bee3defda 2021-10-18 Update yjit.md
8684946b211db5edd113e1ae6df1bc77d045b4a8 2021-10-20 Add bit about YJIT to NEWS.md
32a8cb965c28455ea8bce8d7d84efab456db773f 2021-10-21 Add link to YJIT blog post to NEWS.md
cf52a2c9ba0e2add78f50c32dfadda8e7808d2e9 2021-10-25 Add code owners for YJIT sources
722d43ad5e2685c4ca6edf090755eeca1a8cc8ce 2021-10-25 Test PR
10fe8495cd9568be79b4c254742eb0f667e84988 2021-10-25 Update YJIT code owners. Revert accidental commit.
2e14fb7df752573da98be84a686d8bbd210b13d8 2021-10-29 Add comments about send method types (#5059)
2421527d6e4737c371bca0cf7e694f8a2a0f923d 2021-11-04 YJIT code pages refactoring for code GC (#5073)
0fecf1b37e2030def285a031f2e5aa374e00cc90 2021-11-15 Add Aaron Patterson (@tenderlove) to YJIT code owners (#5119)
cdebf57ec670f35cf07460778e40f6801050ffb5 2021-11-18 Add --yjit-no-type-prop so we can test YJIT without type propagation (#5135)
e1536a1e56cd879d296101554ec526a64cb71fd0 2022-04-27 Update yjit.md
0eb237d99ccd0e89188446418358b56418ab7835 2022-04-28 YJIT: replace BLOCKID_NULL with Option<BlockId>, more idiomatic (#5858)
35e111fd3e38ee6f44cd67b255815ef301ac5211 2022-05-02 Fix bug identified by @noahgibbs. (#5876)
cf71e5f62a28eda22d67e3b4bad30fdff766fedc 2022-05-03 Add a regression test for opt_plus with unknown type (#5878)
3c61e1e77f9e501dd5ef19d6c661ceba6b84cac8 2022-07-06 YJIT: add a counter for gc object refs in the machine code (#6089)
60c900f452327b9b5c82b1e2a8d1d9f88ce8a9b7 2022-08-22 Add @k0kubun to CODEOWNERS for YJIT
2ffaa377c212279e4a8bf1da8ac65a00dcdadd53 2022-05-11 WIP backend IR sketch
909d214708d87e1dab618a04b4780dd926c721ca 2022-05-11 Progress on IR sketch
96e5f9def0121a7ee4f1557b25dade7bdb558df8 2022-05-12 Add macro to define ops
92e9d1e66186d41a01f6116d1993fbfd66fdf1a6 2022-05-12 Switch IR to use Option<Target>
884cbaabd9c15cdc85809cf713c1be755ea70cf7 2022-05-12 Change push insn macros
5021f26b4ba270b2fc36a6fce7b4d54bb65b7062 2022-05-12 Complete sketch for guard_object_is_heap
7753b6b8b6a011d048a6b3aaf912d1dad7995b7b 2022-05-13 Removed String opnd so that we can derive Copy for Opnd
e9cc17dcc9a365d59330b8c37baeafed5d75a519 2022-05-17 Start work on platform-specific codegen
a2aa289594352db98b893aae716cebae0556a20e 2022-05-18 Function to map from Opnd => X86Opnd
369911d31de0446dbee805a5e4ddd5691518e6ff 2022-05-18 Add dbg!() for Assembler. Fix regalloc issue.
75c995b0d10515568ccfe8f67be1bd3bbcbb4b69 2022-05-18 Bias register allocator to reuse first operand
99cfbdca6b7c2dd167137e7256cc861961969ffd 2022-05-19 Fix bug with asm.comment()
564f9503603ae261561193f69f1fbdef6a140aa1 2022-05-19 Make assembler methods public, sketch gen_dup with new backend
1b2ee62149d5fa8d8cbe2097f9fd7a3af31989c2 2022-05-19 Implement target-specific insn splitting with Kevin. Add tests.
151cc55baa8d73969a57228d3a18458e5fe663ed 2022-05-19 Fix issue with load, gen_dup
872940e215dd571c45e9c30d96fa7b9f61dc0442 2022-05-19 Add test with register reuse
0032b02045af081df30f35b508b6b790e44fcdc2 2022-05-24 Add gen_dupn
a88fc48b3a61b63aa1c2f4b05981e0d8726e2b9e 2022-05-24 Add CCall IR insn, implement gen_swap()
efb45acb2932dd8ebd60853584370ca75653cdf8 2022-05-24 Load GC Value operands into registers
7c83a904a49a8ba3a1b78474a6d51a7a32178a4a 2022-05-25 Implement gc offset logic
04e2ccede4e992a6e0d18ed506d76625ee7da8a3 2022-06-06 Change codegen.rs to use backend Assembler directly
39dd8b2dfbb50aab7731466b57c39eaf96e66996 2022-06-06 Add test for lea and ret. Fix codegen for lea and ret.
a1b8c947380716a5ffca2b1888a6310e8132b00c 2022-06-15 * Arm64 Beginnings (https://github.com/Shopify/ruby/pull/291)
3133540be79a511c79c3876df40ad25c912ecc79 2022-06-07 Progress on codegen.rs port
e22134277b81124ba2ce4cf3e08ad0983c0432c9 2022-06-07 Remove x86_64 dependency in core.rs
03ed50310d772e555f819a4b321e4d6593161233 2022-06-07 Have Assembler::compile() return a list of GC offsets
c2fdec93a9d533e9e9eaabd96b6bf5210b211abf 2022-06-07 First pass at porting gen_entry_prologue()
71770ceee5c515d97dad1a0088008561106d141d 2022-06-08 Map comments in backend
77383b3958a90c3e6c257e3c4431fed54a9de10b 2022-06-08 Add conditional jumps
ea9abe547da383f30bd0afe73c6693ed1ff68765 2022-06-08 Add cpush and cpop IR instructions
d75c346c1cb5d67fd4c6582274a3ff4f1450af15 2022-06-09 Port gen_leave_exit(), add support for labels to backend
0000984fed1be885ad51845477f4e475d1b07fab 2022-06-09 Port over putnil, putobject, and gen_leave()
27fcab995e6dde19deb91dc6e291bdb72100af68 2022-06-14 Get side exits working, get miniruby to boot with threshold=1
e72dab304e423ad8c98656c146d52f6a8fa4a2c2 2022-06-14 Add atomic counter increment instruction
9d18e6c300eacfdf11e166326156677e56fc6392 2022-06-14 Port gen_code_for_exit_from_stub()
4dbc1e1d825b4a50e3847de788da0ab6a8d860ae 2022-06-14 Port bitwise not, gen_check_ints()
e743e3bf20a38d44888383393823b8776c2d1e90 2022-06-14 Remove unused code, add backend asm test
ae9bcfec8c237266e324fc1ae6a7a28390045b7e 2022-06-15 Add assert
401521ca14da1b740be9004cc4a344925dbf5fff 2022-06-15 Rename transform_insns to forward_pass
59b818ec8757348e3f7fa463ace36489c5ec75ac 2022-06-15 Add support for using InsnOut as memory operand base
1923842b3dd97cf00d1511b7962a509dd650f06b 2022-06-15 Move backend tests to their own file
abea8c8983aef411f7e6a2afbfbc25e31b2f5486 2022-06-15 Add stores to one of the tests
40ac79ada89953f5ed9e36bdb5b3d0d3ae8d8f3e 2022-06-15 Add bitwise and to x86 backend
b8fc9909bfa18677d5ad2cb2535ca1f0537216e5 2022-06-15 Get rid of temporary context methods
4932a6ef755ae4cc473666c8757f7c51ac8c2902 2022-06-16 Fix small bug in x86_split
084d4bb19228eed3e89663a2d24ab3accaa1a4ee 2022-06-16 Implement X86Reg::sub_reg() method
67de662c4419d4d115f40f8d3ed0c295b581dcf0 2022-06-16 Add Opnd.rm_num_bits() method
57e64f70c0af7a19b4cf68462ea2467286f4e9cb 2022-06-20 Make sure allocated reg size in bits matches insn out size
c5ae52630f9a362579608f27cfbd7a1f08c4d77f 2022-06-20 Port gen_putself, log what can't be compiled in --yjit-dump-insns
4c7d7080d2fdd07d84de63231618a090fa5addad 2022-06-20 Port over gen_putspecialobject
b89d878ea61d2883838fdd466c6f432134ae1860 2022-06-20 Port getlocal_WC0
00ad14f8c92c7b3e305c015b9d4352f1b0c30d5a 2022-06-20 Port gen_full_cfunc_return
d0204e51e270a1dacdfa3ae775892840b0e7b192 2022-06-20 Port guard_two_fixnums
8bb7421d8e222fdae6b51049993efc46cf494f15 2022-06-20 Port topn, adjuststack, most of opt_plus
24db233fc70799642aad09be9170da61332ff010 2022-06-20 Add jo insn and test for jo
4254174ca76d8e64db29fbcbcfc99a81e2d50211 2022-06-20 Port over setn
2eba6aef724f20162bd650d535be876aa4a19964 2022-06-21 Port over get_branch_target()
4c0a440b1828fd1cc1dba24ae1d0a384e98859aa 2022-06-21 Port over duphash and newarray
f1b188143b0255cef498ce4fb7a331daca64e063 2022-06-21 Fix backend transform bug, add test
aab53e2868f7b1a28915f181e0875b990c07b8c9 2022-07-06 Add test for direct jump to a code pointer
65019ed60c635b34337ea35978e931d09ab0181b 2022-07-07 Get codegen for deferred compilation working
580f26959eb31d523ac21d640e21ddbe70779512 2022-07-07 Get started on branchunless port
ab2fa6ebddc13679452ad9f0fc3a7b630a1cbe3a 2022-07-07 Add a backend test with a load of a GC'd VALUE
0551115912fd6682187dd501275096fdb7570084 2022-07-07 Add #[must_use] annotations to asm instructions
38c2fb8a90172bcaabc153016f0a43b92a921d9c 2022-07-12 Port YJIT New Backend Temp Checks to Cirrus (https://github.com/Shopify/ruby/pull/312)
b45b29fdbf43ea6043c1df041372842a07f5b3a8 2022-07-12 Port gen_getlocal()
86606e01ee984cd9aebdcc68c0b5025604fb5184 2022-07-20 Port over setlocal_wc0
6e5382780f4c6cdb7eef945898448639071969fc 2022-07-12 Port over putstring
8d743e965e6bf95ea1649839fc1fe2429564c2d9 2022-07-12 Fix compile errors on arm on the CI (https://github.com/Shopify/ruby/pull/313)
5e834195fd71652939c54b15952e269a6f172853 2022-07-14 Exclude X0 (C_RET_REG) from allocatable registers on arm (https://github.com/Shopify/ruby/pull/319)
a1ea018fd67c38bf24c0ebfdc75e994953c29644 2022-07-14 Add extra assertion in new_label for Kevin
6c5008959925d2768e9495a5601b5245784bc87f 2022-07-14 Port newhash, add tests for newhash, duphash
34ec89252bf4bf1c841a82be4183a3dc40046355 2022-07-15 Fix comment typo
95e5c5227c0492ed33fa41f31a698bf320d2b437 2022-07-15 Fix bug with LeaLabel on x86, add CI test
7787ef29fedb6d638893434c323db6ea85d85640 2022-07-15 Add --yjit-dump-insns test to Cirrus Arm workflow
bf7277b518d5ab634ee708f54fbb8735a8eafdbc 2022-07-15 Update cirrus workflow
e907aaa3fe87a4aacb808d10042425703c059825 2022-07-18 ADR fixes for LeaLabel and calls
fd97f8ebc7f22df7e3a7bf05c5d9328946cb539e 2022-07-19 Use frame_setup() and frame_teardown()
c9484fe0c1f2897521d08780a66fab89e5e2f5b1 2022-07-19 Fix push/pop and frame setup/teardown with Kevin & Alan
90137f519459764a78ae8eb777e3f396f7cffd98 2022-07-20 Implement PosMarker instruction (https://github.com/Shopify/ruby/pull/328)
f833d75bee13ecb485db1591898cb871b24a2991 2022-07-20 Refactor YJIT branches to use PosMarker (https://github.com/Shopify/ruby/pull/333)
8259813bc30497986974633202f3052353295f95 2022-07-20 Temporarily simplify code for emit_conditional_jump to fix a bug
8d2560f1f533c078ed23d71084129ce13ba33abf 2022-07-20 Port over setlocal and getglobal
85872eecddf0e5a13ba2218bb2068e99d5ce1313 2022-07-20 Port over newrange
8605efdd942d2a6b139abe66503427683e5dcad3 2022-07-21 Fix corrupted X29 causing segfault, thanks Alan!
b1dbc5f1a683e4727f463c0a5a3e0195e5c2cc7f 2022-07-21 Fix crash in newhash ccall
e9a2effd74a3c1a40bd82e75ac24e8570ba57364 2022-07-21 Enable more btests in the CI workflows (https://github.com/Shopify/ruby/pull/334)
477c2df3fad22271958b92bdfafbae7155fbebb4 2022-07-21 Work on opt_lt, fix x86 backend bug in cmp()
e9f9b8f43b2afdc437ab1b8ab883bab0525a3f43 2022-07-22 Fix bug with opt_lt, csel on x86
7e22ec7439211d43aea850a4e849f37e631ed131 2022-07-22 Clear the icache on arm
4024553d131012c313d08b4939f3596b6044c077 2022-07-22 Add ifdef to clear cache
96303342e417cb2e5980d3e3f0909d32bf004431 2022-07-22 Enable more btests
133ad38777db991e20a1feba1acbfe5d97cc2fa0 2022-07-22 Fix CI workflows
e131b217cfa9f29a0677e65cf573494279eda8a5 2022-07-22 Test --yjit-stats in our CI workflows
2d9b98f9bc918b1161d308c5d202fcb3be01de07 2022-07-25 Fix a bug in the x86 backend wrt large integer values, enable more tests
45da6974500070872a2b20fafe2b50bc1dce1052 2022-08-01 Push first pass at SSA IR sketch
a75a6f7d7a1a2f876c76d1c0f3f56781221c3f68 2022-08-02 Remove empty lines
ca68ccdaddb6930f2d6dc9172a8653bcfb340afd 2022-08-02 Fix C call reg alloc bug reported by Noah & Kokubun
9db2ca723cac60c2d65865a4851c13cac58ff6a3 2022-08-02 Add 1 more allocatable reg on arm
c91a44cba49c8164982f241c00dc7c6418a4757b 2022-08-04 Fix forward_pass usage in arm backend following John's PR
d63b3e43bd0a2dac5447855e3fae2c3de3499e53 2022-08-04 Enable test_thread.rb on arm, now working
b024b18f56df7e18bc744905f6d2e3888fc3900f 2022-08-04 Fix block invalidation with new backend. Enable more btests on x86 (https://github.com/Shopify/ruby/pull/359)
e24037267f5912814dff463bccc618deacefd529 2022-08-05 Add Opnd::None error message to x86 backend as well
46822ee13f4fb8d590c3bd6c66aab71566d68dfe 2022-08-05 Enable btests now passing on arm (https://github.com/Shopify/ruby/pull/378)
85d6d76e41b0c2cec64e3726d8218467954f5ee6 2022-08-08 Enable test_insns.rb on arm
32d9eef5626118b5848cdbe9fe8f17da043d781c 2022-08-09 Enable test_literal.rb and test_ractor.rb on arm
cad35fb25c4300a53ad33d833d4595c2bdd30e00 2022-08-09 Try to run make -j in CI backend tests (https://github.com/Shopify/ruby/pull/386)
8c45b8a989fea4c74d68c464a55aa54e9144994a 2022-08-10 Update asm comments for gen_send_iseq
b54643d13ac4194f05151a366e9980350efec829 2022-08-10 Handle out of memory tests (https://github.com/Shopify/ruby/pull/393)
c022a605401ccbc591640720a28c616cbaa19931 2022-08-11 Fix bugs in gen_opt_getinlinecache
95dce1ccacb5e893bbd2bfb100c0778c5be83d47 2022-08-16 Temporarily disable rb_str_concat, add CI tests (https://github.com/Shopify/ruby/pull/407)
1cf9f56c55b1a771217678843c9546e368db0af3 2022-08-17 Fix issue with expandarray, add missing jl, enable tests (https://github.com/Shopify/ruby/pull/409)
5ef048e5b1c3dd61adf782ace570bb0a1f9bb12f 2022-08-24 Update yjit.md
929a6a75eb3e3404eb8f6246a40b2cd73d0d3fed 2022-08-26 Remove ir_ssa.rs as we aren't using it and it's now outdated
4a4daf00afbd5f6041d2b832df10c5c389781f1a 2022-08-30 Update .cirrus.yml
5b5c627d37c1773dd280e0f14d9510f8fa8db04f 2022-09-09 YJIT: eliminate redundant mov in csel/cmov on x86 (#6348)
64a020324dc7453c5678f44b898eb5da47b9abcc 2022-09-15 Add asm comments to make disasm more readable (#6377)
d3733c2ba5207d29ef5b52a93672873ae369b52c 2022-09-20 Guard `--yjit-stats` behind `#[cfg(feature = "stats")]` (#6409)
4e40fdbcee51767de888c81ce4ad2baae639e35f 2022-09-22 YJIT: add chain guards in `guard_two_fixnums` (#6422)
8fcbb79742b27619683f0a5f25497a402eeca56f 2022-09-27 YJIT: reverse configure.ac changes that disable `--yjit-stats` on Graviton1 (#6457)
a58cbddd57152a3a4712c6b37b6efa3c108847e7 2022-09-27 YJIT: add assertion wrt label names (#6459)
2812a57b14de8bfab7feccb7924039edc2611aad 2022-10-27 Update docs wrt YJIT limitations and building YJIT (#6641)
5e6633fcf988e5874d0a9929bdf2cd496289e75d 2022-10-31 YJIT: reduce default `--yjit-exec-mem-size` to 128MiB instead of 256 (#6649)
dd4ae9a475e081f5264c827e8c50b351236a68d2 2022-11-04 Auto-enable YJIT build when rustc >= 1.58.0 present (#6662)
3703a81491a16554674e4b15bac87efa3eb18f3b 2022-11-08 YJIT: improve/fix code to automatically build YJIT when available (#6684)
a1b460bd6e4b53ce41771669d39a4a6f414bf35f 2022-11-13 Update yjit.md
c4e99ac454cbbf731c2fe51fa549bd472ab1dc41 2022-11-22 Update yjit.md
d2fa67de81f66cb42cfeebc81a03c57a4621c09a 2022-11-24 YJIT: rename `InsnOpnd` => `YARVOpnd` (#6801)
07169fd824529c0f7f69ff0c10939b63abecc6ef 2022-11-24 Update YJIT section of `NEWS.md` (#6803)
8a74361b41810b5fda74c573810fa1712c4a7841 2022-11-28 Update yjit.md to mention `RUBY_YJIT_ENABLE`
d98d84b75dab450070ff3dc7154661a9941fb44d 2022-11-30 YJIT: add new counters for deferred compilation and queued blocks (#6837)
e9e624b76e1f1b2c8dd5d4a6eea7e55ab491822e 2022-12-02 YJIT: check that we correctly auto-enable YJIT on Linux (#6854)
606653e43a8207e15d6c3b450754d2a8bd349fc9 2022-12-02 Update yjit/src/codegen.rs
3bb7a401600d37b569a6da6a2be82bcd84eac37f 2022-12-07 Update NEWS.md
9350c2b12f308e8a3676630460e3aa0ae38f8b47 2022-12-07 Update YJIT warning, mention need to install rustc (#6873)
30c76f4d0d1b090a2ac4885f10f31d59d9c243df 2022-12-07 Update yjit.md
b26c9ce5e9b1c80a59f4faeb92be4a302232e12c 2022-12-08 YJIT: implement opt_newarray_min YARV instruction (#6888)
daa893db412c6ae814d0291b4ac6fc62a466d394 2022-12-09 YJIT: implement `getconstant` YARV instruction (#6884)
1004d693b7a3db5db98be59a3d3d468d2ee21ca5 2022-12-12 Make it so YJIT is no longer marked as experimental (#6909)
40bf89872f1b5300040061e200468cac011dd67f 2023-01-09 Update yjit.md
a9bcc058bb4cd954e8406c93debb876983627ca9 2023-01-17 Update yjit.md
cd97976328204263c464cf6846e9bafe6424da15 2023-01-18 Add stats so we can keep track of x86 rel32 vs register calls (#7142)
6bb576fe759e3ef86b2ea484313013c51c39f388 2023-01-18 YJIT: implement codegen for `String#empty?` (#7148)
c221a40201d6c674f168a33bfa1f1952bbfb6891 2023-01-31 Update yjit.md
4ce642620f10ae18171b41e166aaad3944ef482a 2023-01-31 Make sure RUBY_YJIT_ENABLE only enables YJIT for truthy values (#7208)
97740a525ec882a77df192f0d3dd8880fe3e1599 2023-01-31 Update yjit.md
2675f2c864f462dbdee85d2187e0ac3379106eed 2023-02-01 Remove whitespace
73674cac2bbb2616a182305f4719844c59816e21 2023-02-02 YJIT: log the names of methods we call to in disasm (#7231)
810aeb2d91f0e54fdc1d6a4fd9bf1dd51b2d3bde 2023-02-09 YJIT: optimized codegen for `rb_ary_empty_p` (WIP) (#7242)
2c8e4aa2a0ff7aa92b81b4ed6ea890bc03332c0c 2023-02-09 YJIT: format numbers in stats printouts with comma separators (#7281)
a7e8eabeed54392588c7f01afe8be2e72d3c526d 2023-02-10 YJIT: add counters for polymorphic send and send with known class (#7288)
c3bae033eb9f2bb199dede052516ec923bcf10cc 2023-02-17 Add asm comment to YJIT's rb_str_empty_p
de66b60f33106892e714198de6e7432c25a602dd 2023-02-27 YJIT: add defer_empty_count stat
27c2572dbdf171ec0b4a107b573feff38399c018 2023-03-01 YJIT: reject large stacks so we can use i8/u8 stack_size and stack_offset (#7412)
7b9aeaffcb5b3850771a1d7b257a71a750d9359a 2023-03-02 YJIT: shrink stack_size/sp_offet to u8/i8 (#7426)
4d59d01621aff771f669cf82648eeec84e3f720f 2023-03-03 YJIT: fix CI issue reported by Koichi caused by small stack patch (#7442)
65a95b82593683ba2e566fe1d14b086b80874c92 2023-03-09 YJIT: upgrade type in `guard_object_is_string` (#7489)
9a735c776b5413377a921949494f42d1e15851ba 2023-03-15 YJIT: use u16 for insn_idx instead of u32 (#7534)
473009d7cbafc4a94be53694b5934167072068e6 2023-03-16 YJIT: add stats to keep track of when branch direction is known (#7544)
6ba07df4908d4d9d01ece339219e3b9e07ad1bce 2023-03-17 YJIT: make type info more specific in gen_fixnum_cmp and gen_opt_mod (#7555)
44f444478afad954f046d8345cafb3842708a4ca 2023-03-20 YJIT: tag output type as UnknownHeap in `toregexp` (#7562)
27ecf3261ed117fdba1987dbb146e2164ed821e9 2023-03-20 Update yjit.md
39a34694a0e33e18b4ac6e43cb8042e2d818ecd4 2023-03-28 YJIT: Add `--yjit-pause` and `RubyVM::YJIT.resume` (#7609)
d26d3575cab676ade7d0257138a044e22b373e68 2023-04-04 YJIT: add stats for ratio of versions per block (#7653)
277098bde2353e408ff4195d5cad387f0739b83c 2023-04-20 Fix inaccurate comment
2acb44e0440327ee5fea8d324fa6c121214e6b96 2023-07-06 YJIT: add new stats counter for compiled ISEQ entry points (#8032)
e770006486a84008e68d8ab0c01c4625f028a0de 2023-07-11 YJIT: add counter for untracked gbpp exit reason (#8052)
d70484f0eb176a7ef7274972ff92b88905ea0edc 2023-07-17 YJIT: refactoring to allow for fancier call threshold logic (#8078)
5669a28fde3b767953b5a7d6e63cd8e53f0185eb 2023-07-27 YJIT: implement missing `asm.jg` instruction in backend (#8130)
3b88a0bee841aee77bee306d9d34e587561515cf 2023-08-01 YJIT: implement `expandarray_rhs_too_small` case (#8153)
98b4256aa7a558e19739ac1d39ba10179277e1f4 2023-08-03 YJIT: handle expandarray_rhs_too_small case (#8161)
4f99240b2e457608e3a86926df7aa4baf535ef0d 2023-08-03 YJIT: add jb (unsigned less-than) instruction to backend (#8168)
fc0b2a8df2327b40a2f6667c1567b3f8264b58a5 2023-08-04 YJIT: guard for array_len >= num in expandarray (#8169)
8d7861e3daf64e0bd30b2f9fe56f94eadfde5d3f 2023-08-04 YJIT: expand bitwise shift support in x86 assembler (#8174)
c9b30f9d76ec7c726a703a7f8aad95b5998e7d6c 2023-08-09 YJIT: implement imul instruction encoding in x86 assembler (#8191)
b5b34c1f84ffbc87004d4761621040e3ceb3542d 2023-08-10 YJIT: add mul() instruction to backend IR (#8195)
a8cd18f08d3ee7475340dfea5eebe2f6b164b5ec 2023-08-11 YJIT: implement codegen for rb_int_lshift (#8201)
b6c66604d81d53fda9f717831eac4547891601ad 2023-08-11 YJIT: increase max chain depth for expandarray (#8205)
30a5b94517699589f6943163cd6b92f2f6c0023f 2023-08-17 YJIT: implement side chain fallback for setlocal to avoid exiting (#8227)
314eed8a5ec9f1b46624b277dde75f8079026b7b 2023-08-18 YJIT: implement fast path for integer multiplication in opt_mult (#8204)
eee83af34c726e564d6505a81545ddb73e976404 2023-08-21 Update yjit.md, document `--yjit-stats=quiet`
c23e2e19b7a5e4b919a8b87de0269c128bbb9a5e 2023-08-22 YJIT: add code_region_overhead stat output (#8262)
e58fed128b737119e7e0f44292e8b0f0c8e691fb 2023-08-30 YJIT: shrink Context from 29 to 21 bytes by reducing space used by TempMapping (#8321)
ea491802fa4a6ce7070b318ffcad30cbeaf42635 2023-10-03 YJIT: add heuristic to avoid compiling cold ISEQs (#8522)
13bde94a9f017e04f01f090b27b98d0f4eb69b84 2023-10-05 YJIT: shink local types from 8 to 4 bytes (#8597)
a6d190fa4d33a848f063c3eec035035e34e55998 2023-10-10 Update yjit.md
b2e1ddffa55463f1180af7f9b269a2d89140b131 2023-10-12 YJIT: port call threshold logic from Rust to C for performance (#8628)
3e65115cef8dec7d280784fdd7324ede529051be 2023-10-19 YJIT: remove unused `--yjit-greedy-versioning` command-line option (#8713)
6e38076b1689af98ab1164af9119b9304e54829a 2023-11-03 YJIT: implement two-step call threshold (#8839)
d9d09381169dabc3ff954b7f307fbb06f9d928f5 2023-11-07 YJIT: update yjit.md, add MPLR 2023 paper and bibtex (#8861)
c552a5f7b0d2ace0760499e88ad58e3b7711a267 2023-11-13 YJIT: shrink `Context` down to 15 bytes (#8911)
f9628fb4be1c5eb5a652a6c3d3d97530bdcc76a5 2023-11-20 YJIT: make --yjit-max-versions=N option undocumented (#8962)
7a93bee4f845f496742b03a0e575ed13631971b7 2023-11-22 YJIT: add an extra btest for shape too complex (#9013)
f05d586cc99ceed0666459603bfe2aa77a2291ab 2023-11-23 YJIT: record `num_send_cfunc` stat (#9022)
7f50c705742dd92509ae9fc3003eb7561baa7e8a 2023-11-27 YJIT: add top C function call counts to `--yjit-stats` (#9047)
6310522a9a33c19e963e56a8f87388d802525937 2023-11-28 YJIT: reduce default exec-mem-size to 64MiB (#9054)
ea3e17e430b74b4e58535a707319025e008cc123 2023-11-28 YJIT: fix bug in top cfunc logging in `--yjit-stats` (#9056)
8d1138c1cf087f28510f4532c746e70c54d0f81e 2023-11-29 YJIT: edit `yjit.md` and bring it up to date (#9068)
73e6d8a0d0a05bdf778502af639de32869dd41b3 2023-11-30 YJIT: optimized codegen for `rb_ary_length()` (#9085)
3f25c08fa598ba48da8bb504aabe93a4a4c2d486 2023-12-11 YJIT: implement call fuzzer script (#9129)
6a1bf4cf1b069de0aaa55bc327f0b9b1ee1f5ed0 2024-01-15 YJIT: optimized codegen for String#length (#9543)
afba09d30f4c2ce6d0d77e06d5250967411cd74a 2024-01-17 YJIT: specialized codegen for integer right shift (#9564)
23d46829264e21ec542c099d61922efa58cac916 2024-01-24 YJIT: fix small bug causing jit_rb_int_rshift to side-exit (#9684)
1702528258c2b2a87dcf5673a80d999de35d0b71 2024-01-24 YJIT: reduce default exec mem size to 48MiB (#9685)
adf29c9a986cb3510b9ddd55e0738b18076f41ad 2024-01-29 YJIT: add asm comment when we clear local types (#9713)
bc10b958d2cc45b61e23c41d0aa892cbb82efafd 2024-01-29 YJIT: print warning when disasm options used without a dev build (#9744)
fe5590e46465ce1bcdec73a9029f71be611880d9 2024-01-30 YJIT: add specialized codegen for fixnum XOR (#9763)
5a87e9e2b56c00f7b4abb8f90e02c7601be1e82a 2024-02-02 YJIT: add missing jge comparison instruction (#9819)
38a4b5c1fad4790c8170112e9a97bf165b48cdbd 2024-03-06 YJIT: String#getbyte codegen (#10188)
bb3cbdfe2fcbfc2b6c7ee8699d35fde838615c26 2024-03-28 YJIT: add iseq_alloc_count to stats (#10398)
571bfc7402bb05becb00a7ea1b8971ac6ad92d8a 2024-04-03 YJIT: update code optimization tips in yjit.md (#10445)
ade22339e3056710dbe27eaa624c2e76fa15567b 2024-04-30 YJIT: print msg to stderr when RubyVM::YJIT.disasm not available (#10688)
1eff5a98f1c83f37ca2daac1c52f3eb84f395acd 2024-05-28 YJIT: limit size of call count stats dict (#10858)
425e630ce73cf79fa5529df199dde47fc109a5de 2024-06-07 YJIT: implement variable-length context encoding scheme (#10888)
0d91887c6aa740d3226407cafa1f27c62fd119f4 2024-06-07 YJIT: implement cache for recently encoded/decoded contexts (#10938)
39019b6a63b935d8bd75e46ff82a31e174b1bf85 2024-06-11 YJIT: add context cache size stat, lazily allocate cache
ce06924a17176d18816d968867858f97401d7c82 2024-06-12 YJIT: add context cache hits stat (#10979)
48e7112baaf338fa350f68f0386e05085d26606c 2024-07-10 YJIT: increase context cache size to 1024 (#10983)
c0ad0c3e43816688c72dbb93a7a49e39c87082f5 2024-07-11 Update yjit.md, explain how to run a single test with test-all (#11151)
3fbf9df39ad9c9338a2f9b94b4dd87c1c446ec95 2024-07-11 YJIT: increase context cache size to 1024 redux (#11140)
a58e3305ce62b229f62fb67ab56a67d5def3f67b 2024-07-11 YJIT: remove doc/yjit/yjit_hacking.md (#11153)
d989bc54e2f1b0bb577e068fce14da6b178b6b30 2024-07-15 YJIT: split chain_depth and flag booleans in context (#11169)
081bdc512543a5f25251ed2b708e8761828dd704 2024-11-25 YJIT: fix small typo in command line options help (#12167)
4b4d52ef50a926f0af6eeb3423c8e0e44603cd26 2024-12-04 YJIT: track time since initialization (#12263)
8502a549ef506164ba506cecb5e1003bf53a4f27 2024-12-06 YJIT: small fix to stats formatting. (#12282)
c71f7faaa96954a73516275e6beeccdffffc62f7 2024-12-10 YJIT: add MPLR talk link. Encourage users to use --yjit-mem-size (#12305)
2a3dc9f32fd841a42b7c41ef15f5fd39dad2e288 2025-02-06 Add stats.rs placeholder
c0e42a7e8fefc4f89d4723c762319a91f573027c 2025-02-06 Add CRuby bindings
a45a85a58f16568a356bb12c6b9b3c4b9d7b59d1 2025-02-06 Add imports, allow dead code
50908a7fe2a99357c7b7b0a5f629dc566b28db9f 2025-02-06 Replace RubyValue by VALUE
6e9cc0e7bdfb5ed9a63a8eeebe5feb2b513b9acc 2025-02-06 Derive block default
139102b24adb4fcd431785a3b5b38c4edbf3a515 2025-02-06 Add comments
5e37317cc51bc8349714ccbd8004ae882f56542d 2025-02-06 Add (gutted) asm
2b9570a24c88bb592760c40fd755d5fb6053c674 2025-02-06 Add BranchEdge
d1b4bd4acac9df0e5fcc6097a44bc096fe1e69ac 2025-02-06 Move RubyOpcode
b5deaf85dd47aa84358bb35d58bca1c14f7850bd 2025-02-06 AllocArray => NewArray
5af1c2ed62a681bd4e710e81f62e1a1e27582f8a 2025-02-06 Add YARVInsn_nop
e0f1bc86b9fd3f82200d2651e578c4120cd975cf 2025-02-06 Sketch opt_plus
3c8386b11d68c9c9472254faf08e667754aaea34 2025-02-06 Store interpreter pc on FrameState
35aec9ff680904ebe1067d40c18e2b75fd1d0b7f 2025-02-06 Sketch Send insn
34becd4017e2eb5f5f0e9be93cb85a4495892f7f 2025-02-06 Add CCall insn
73d01016e81bc9f24355777de1a04a6a8b5a1a80 2025-02-06 Add opt_lt, remove as_usize() trait
c5e17f50b7bc81d39f2f063a238fc8cb55ef726c 2025-02-06 Make iseq_to_ssa return Function object
3305e7626ddbdb0e787fd17cb26eb9ae18e16afe 2025-02-06 Store pc on frame state
75724a10e1c864ecf11a9e528ceabb4e90ac61b6 2025-02-06 Remove mock RubyOpcode
a93ff3616115688f5b96ec926e32f39522f80d78 2025-02-06 Add empty doc/zjit.md to place notes
66c2809980e513f9fd69c50792094b43353a5b5f 2025-02-06 Store iseq associated with function
8caed382448fea04124ebd2265ecdc1f5bcf82be 2025-02-12 Add some basic documentation for ZJIT
6de43bdc3162bd6ddfad210c93882d15dba82791 2025-02-12 Mention rubyexplorer
ce9c9e0a6a9651a23d1274b73ad9a7e26bf9396d 2025-02-14 Rename ir.rs to hir.rs to avoid namespace ambiguity with backend
9644b17279bb39eac6d6951d04341eb7324720ea 2025-02-14 Add minor comments
d2115562b92e70bea71cfaca175f59587c6a77da 2025-03-07 Add two more small btests
113080936355d2e43dbbb0bcd0b09bf93966f2f6 2025-03-10 Add small test for setlocal
43d532e36db81a68164f0a807c34c57b6f4a363f 2025-03-10 Add while loop test to test_zjit.rb
708940e8c2335d11dd1891c0e9ed7b5d437b56bb 2025-03-10 Add commented out if-else test to test_zjit.rb
29c0ef55a79e0cd32270d86870d32254b8f3fd0f 2025-03-10 Add comments to tests
b9424e50963fdab8b950795186b80c5d9568ad4b 2025-03-12 Remove redundant bits from zjit.md
b345fa90069ed98d79deb29e4a808563730324eb 2025-03-12 Reorder two tests, update comment
c39a150787d77dc706f8af65ad46710b3d879190 2025-03-12 Implement codegen for Test insn (https://github.com/Shopify/zjit/pull/57)
97a478f95fb09566360bcff2b3fba93098d4e1ac 2025-03-24 Add recursive factorial and fibonacci functions to test_zjit.rb