@@ -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
451449impl 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 ) ?;
0 commit comments