diff options
author | John Hawthorn <john@hawthorn.email> | 2021-08-07 22:49:31 -0700 |
---|---|---|
committer | Alan Wu <XrXr@users.noreply.github.com> | 2021-10-20 18:19:39 -0400 |
commit | fbde1d9bee1da0a27ead6ce3ae7bc4411b10198d (patch) | |
tree | b8652acded2a8793dcca73f8464cbf70db458a12 /yjit_core.h | |
parent | 9d5b3e1d0f3d44a52dffb6ec1f09c361c3b419c7 (diff) |
Store block callee_cme in darray
This allows a block version to have dependencies on multiple CMEs.
Diffstat (limited to 'yjit_core.h')
-rw-r--r-- | yjit_core.h | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/yjit_core.h b/yjit_core.h index 6d8f3fcfad..d6f7611a40 100644 --- a/yjit_core.h +++ b/yjit_core.h @@ -211,6 +211,15 @@ typedef struct yjit_branch_entry } branch_t; +// In case this block is invalidated, these two pieces of info +// help to remove all pointers to this block in the system. +typedef struct { + VALUE receiver_klass; + VALUE callee_cme; +} cme_dependency_t; + +typedef rb_darray(cme_dependency_t) cme_dependency_array_t; + typedef rb_darray(branch_t*) branch_array_t; typedef rb_darray(uint32_t) int32_array_t; @@ -242,10 +251,9 @@ typedef struct yjit_block_version // Offsets for GC managed objects in the mainline code block int32_array_t gc_object_offsets; - // In case this block is invalidated, these two pieces of info - // help to remove all pointers to this block in the system. - VALUE receiver_klass; - VALUE callee_cme; + // CME dependencies of this block, to help to remove all pointers to this + // block in the system. + cme_dependency_array_t cme_dependencies; // Code page this block lives on VALUE code_page; |