aboutsummaryrefslogtreecommitdiffstats
path: root/yjit/src/codegen.rs
diff options
context:
space:
mode:
Diffstat (limited to 'yjit/src/codegen.rs')
-rw-r--r--yjit/src/codegen.rs11
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
}
}