Skip to content

Commit 4eaf87e

Browse files
authored
[Civl] small fix (#1034)
1 parent 97bb96c commit 4eaf87e

File tree

1 file changed

+4
-5
lines changed

1 file changed

+4
-5
lines changed

Test/civl/large-samples/cache-coherence.bpl

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -631,7 +631,7 @@ requires call YieldRead(i, ma, drp);
631631
par value := cache_invalidate_exc#1(dirState->i, ma, Invalid(), dp) | YieldInv#1();
632632
par write_mem(ma, value, dp) | YieldInv#1();
633633
} else {
634-
call dp := invalidate_sharers(ma, dirState->iset, dp);
634+
par dp := invalidate_sharers(ma, dirState->iset, dp) | YieldInv#1();
635635
par value := read_mem(ma, dp) | YieldInv#1();
636636
}
637637
call cache_read_resp#1(i, ma, value, Exclusive(), drp, dp);
@@ -641,7 +641,6 @@ requires call YieldRead(i, ma, drp);
641641
yield left procedure {:layer 2} invalidate_sharers(ma: MemAddr, victims: Set CacheId, {:linear_in} {:layer 1,2} dp: Set DirPermission)
642642
returns ({:linear} {:layer 1,2} dp': Set DirPermission)
643643
modifies cache;
644-
preserves call YieldInv#1();
645644
requires {:layer 2} Set_IsSubset(Set((lambda x: DirPermission :: Set_Contains(victims, x->i) && x->ma == ma)), dp);
646645
requires {:layer 2} (forall i: CacheId, ca: CacheAddr:: (var line := cache[i][ca];
647646
line->state == Invalid() ||
@@ -663,9 +662,9 @@ ensures {:layer 2} dp == dp';
663662
}
664663
victim := Choice(victims->val);
665664
victims' := Set_Remove(victims, victim);
666-
par dpOne, dp' := get_victim(victim, ma, dp') | YieldInv#1();
667-
par cache_invalidate_shd#1(victim, ma, Invalid(), dpOne) | dp' := invalidate_sharers(ma, victims', dp') | YieldInv#1();
668-
par dp' := put_victim(dpOne, dp') | YieldInv#1();
665+
par dpOne, dp' := get_victim(victim, ma, dp');
666+
par cache_invalidate_shd#1(victim, ma, Invalid(), dpOne) | dp' := invalidate_sharers(ma, victims', dp');
667+
par dp' := put_victim(dpOne, dp');
669668
}
670669

671670
yield procedure {:layer 1} get_victim(victim: CacheId, ma: MemAddr, {:layer 1} {:linear_in} dp: Set DirPermission)

0 commit comments

Comments
 (0)