diff options
author | Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com> | 2022-07-06 11:13:22 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-06 11:13:22 -0400 |
commit | 3c61e1e77f9e501dd5ef19d6c661ceba6b84cac8 (patch) | |
tree | 4df2e385dbf4bd8681f0f7cef552b12b6e240485 /yjit | |
parent | 5ef3c7ea2d1968c87f361b6615699b92cc6e5a9a (diff) | |
download | ruby-3c61e1e77f9e501dd5ef19d6c661ceba6b84cac8.tar.gz |
YJIT: add a counter for gc object refs in the machine code (#6089)
Add a counter for gc object refs in the machine code
This is to gather data for the eventual implementation of
a constant pool.
Diffstat (limited to 'yjit')
-rw-r--r-- | yjit/src/codegen.rs | 2 | ||||
-rw-r--r-- | yjit/src/stats.rs | 18 |
2 files changed, 12 insertions, 8 deletions
diff --git a/yjit/src/codegen.rs b/yjit/src/codegen.rs index cdd01221d4..12c97411b0 100644 --- a/yjit/src/codegen.rs +++ b/yjit/src/codegen.rs @@ -121,6 +121,8 @@ impl JITState { pub fn add_gc_object_offset(self: &mut JITState, ptr_offset: u32) { let mut gc_obj_vec: RefMut<_> = self.block.borrow_mut(); gc_obj_vec.add_gc_object_offset(ptr_offset); + + incr_counter!(num_gc_obj_refs); } pub fn get_pc(self: &JITState) -> *mut VALUE { diff --git a/yjit/src/stats.rs b/yjit/src/stats.rs index 6bad8db7e7..4118f894b4 100644 --- a/yjit/src/stats.rs +++ b/yjit/src/stats.rs @@ -218,6 +218,14 @@ make_counters! { opt_getinlinecache_miss, + expandarray_splat, + expandarray_postarg, + expandarray_not_array, + expandarray_rhs_too_small, + + gbpp_block_param_modified, + gbpp_block_handler_not_iseq, + binding_allocations, binding_set, @@ -237,17 +245,11 @@ make_counters! { constant_state_bumps, - expandarray_splat, - expandarray_postarg, - expandarray_not_array, - expandarray_rhs_too_small, - - gbpp_block_param_modified, - gbpp_block_handler_not_iseq, - // Currently, it's out of the ordinary (might be impossible) for YJIT to leave gaps in // executable memory, so this should be 0. exec_mem_non_bump_alloc, + + num_gc_obj_refs, } //=========================================================================== |