diff options
Diffstat (limited to 'yjit/src/codegen.rs')
-rw-r--r-- | yjit/src/codegen.rs | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/yjit/src/codegen.rs b/yjit/src/codegen.rs index 8e36c44823..46f5ed64d3 100644 --- a/yjit/src/codegen.rs +++ b/yjit/src/codegen.rs @@ -6724,6 +6724,9 @@ pub struct CodegenGlobals { /// Freed page indexes. None if code GC has not been used. freed_pages: Option<Vec<usize>>, + + /// How many times code GC has been executed. + code_gc_count: usize, } /// For implementing global code invalidation. A position in the inline @@ -6816,6 +6819,7 @@ impl CodegenGlobals { method_codegen_table: HashMap::new(), ocb_pages, freed_pages: None, + code_gc_count: 0, }; // Register the method codegen functions @@ -6961,7 +6965,12 @@ impl CodegenGlobals { } pub fn set_freed_pages(freed_pages: Vec<usize>) { - CodegenGlobals::get_instance().freed_pages = Some(freed_pages) + CodegenGlobals::get_instance().freed_pages = Some(freed_pages); + CodegenGlobals::get_instance().code_gc_count += 1; + } + + pub fn get_code_gc_count() -> usize { + CodegenGlobals::get_instance().code_gc_count } } |