Граф коммитов

10 Коммитов

Автор SHA1 Сообщение Дата
Peter Zhu 969ad5802d Change feature_index from fake Array to darray
Using a fake (malloc) RArray is not friendly for the garbage
collector. Fake RArray does not have a heap page, so it causes Variable
Width Allocation to crash when we try to implement it on Arrays.

This commit changes feature_index from a RArray to a darray.
2022-02-16 09:50:29 -05:00
Peter Zhu 71afa8164d Change darray size to size_t and add functions that use GC malloc
Changes size and capacity of darray to size_t to support more
elements.

Adds functions to darray that use GC allocation functions.
2022-02-16 09:50:29 -05:00
Maxime Chevalier-Boisvert 11599e5e1e Add rb_darray_clear() for Kevin. Fix some warnings. 2021-10-20 18:19:40 -04:00
Maxime Chevalier-Boisvert 0cc73ca2a9 Malloc branch entries (#112)
* Malloc branch entries

* Add ASM comment for stack overflow check

* WIP

* Fix branch GC code. Add rb_darray_remove_unordered().

* Fix block end_pos after branch rewriting. Remove dst_patched bits.
2021-10-20 18:19:33 -04:00
Maxime Chevalier-Boisvert fe3bd57007 Remove trailing whitespaces 2021-10-20 18:19:31 -04:00
Alan Wu 7de8ce4efc YJIT: Use 2D array to group block versions
For deferred compilation, we sometimes want to care about the order of
the block versions. Use an array instead of a linked list to do that.
2021-10-20 18:19:31 -04:00
Alan Wu 9ce2771697 darray: fix strict aliasing issue 2021-10-20 18:19:30 -04:00
Alan Wu 2240932b64 Add rb_darray_make 2021-10-20 18:19:30 -04:00
Alan Wu 47e05fca10 darray: fix buffer size calculation for element with strict alignment 2021-10-20 18:19:30 -04:00
Alan Wu c02517bacb Tie lifetime of uJIT blocks to iseqs
* Tie lifetime of uJIT blocks to iseqs

   Blocks weren't being freed when iseqs are collected.

* Add rb_dary. Use it for method dependency table

* Keep track of blocks per iseq

  Remove global version_tbl

* Block version bookkeeping fix

* dary -> darray

* free ujit_blocks

* comment about size of ujit_blocks
2021-10-20 18:19:29 -04:00