Skip to content

Commit 8344dae

Browse files
committed
Remove Stacked Borrows GC heuristics
1 parent 9b8119d commit 8344dae

File tree

2 files changed

+7
-13
lines changed

2 files changed

+7
-13
lines changed

src/tools/miri/src/borrow_tracker/stacked_borrows/mod.rs

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,6 @@ pub struct Stacks {
3737
history: AllocHistory,
3838
/// The set of tags that have been exposed inside this allocation.
3939
exposed_tags: FxHashSet<BorTag>,
40-
/// Whether this memory has been modified since the last time the tag GC ran
41-
modified_since_last_gc: bool,
4240
}
4341

4442
/// Indicates which permissions to grant to the retagged pointer.
@@ -450,15 +448,10 @@ impl<'tcx> Stack {
450448
/// Integration with the BorTag garbage collector
451449
impl Stacks {
452450
pub fn remove_unreachable_tags(&mut self, live_tags: &FxHashSet<BorTag>) {
453-
if self.modified_since_last_gc {
454-
for (_stack_range, stack) in self.stacks.iter_mut_all() {
455-
if stack.len() > 64 {
456-
stack.retain(live_tags);
457-
}
458-
}
459-
self.history.retain(live_tags);
460-
self.modified_since_last_gc = false;
451+
for (_stack_range, stack) in self.stacks.iter_mut_all() {
452+
stack.retain(live_tags);
461453
}
454+
self.history.retain(live_tags);
462455
}
463456
}
464457

@@ -488,7 +481,6 @@ impl<'tcx> Stacks {
488481
stacks: RangeMap::new(size, stack),
489482
history: AllocHistory::new(id, item, machine),
490483
exposed_tags: FxHashSet::default(),
491-
modified_since_last_gc: false,
492484
}
493485
}
494486

@@ -503,7 +495,6 @@ impl<'tcx> Stacks {
503495
&mut FxHashSet<BorTag>,
504496
) -> InterpResult<'tcx>,
505497
) -> InterpResult<'tcx> {
506-
self.modified_since_last_gc = true;
507498
for (stack_range, stack) in self.stacks.iter_mut(range.start, range.size) {
508499
let mut dcx = dcx_builder.build(&mut self.history, Size::from_bytes(stack_range.start));
509500
f(stack, &mut dcx, &mut self.exposed_tags)?;

src/tools/miri/tests/pass/stacked-borrows/stack-printing.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
//@compile-flags: -Zmiri-permissive-provenance
1+
// We disable the GC for this test because it would change what is printed. We are testing the
2+
// printing, not how it interacts with the GC.
3+
//@compile-flags: -Zmiri-permissive-provenance -Zmiri-provenance-gc=0
4+
25
#![feature(strict_provenance)]
36
use std::{
47
alloc::{self, Layout},

0 commit comments

Comments
 (0)