diff options
author | qadeer <unknown> | 2014-01-09 08:13:15 -0800 |
---|---|---|
committer | qadeer <unknown> | 2014-01-09 08:13:15 -0800 |
commit | 59732afd306a62d53143c2e627fadb97fc0ee9c8 (patch) | |
tree | 1ea899d27fbbbe9993726422d93c69a87645be20 /Source/Concurrency/MoverCheck.cs | |
parent | a0da62d4eba25d38b35445378a9cfd7dafed25ba (diff) |
some optimizations to mover checks
Diffstat (limited to 'Source/Concurrency/MoverCheck.cs')
-rw-r--r-- | Source/Concurrency/MoverCheck.cs | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/Source/Concurrency/MoverCheck.cs b/Source/Concurrency/MoverCheck.cs index d1e5929d..781fcb36 100644 --- a/Source/Concurrency/MoverCheck.cs +++ b/Source/Concurrency/MoverCheck.cs @@ -360,6 +360,11 @@ namespace Microsoft.Boogie private void CreateCommutativityChecker(Program program, ActionInfo first, ActionInfo second)
{
+ if (first == second)
+ return;
+ if (first.CommutesWith(second))
+ return;
+
Tuple<ActionInfo, ActionInfo> actionPair = new Tuple<ActionInfo, ActionInfo>(first, second);
if (commutativityCheckerCache.Contains(actionPair))
return;
@@ -406,6 +411,9 @@ namespace Microsoft.Boogie private void CreateGatePreservationChecker(Program program, ActionInfo first, ActionInfo second)
{
+ if (first.gateUsedGlobalVars.Intersect(second.modifiedGlobalVars).Count() == 0)
+ return;
+
Tuple<ActionInfo, ActionInfo> actionPair = new Tuple<ActionInfo, ActionInfo>(first, second);
if (gatePreservationCheckerCache.Contains(actionPair))
return;
@@ -439,6 +447,9 @@ namespace Microsoft.Boogie private void CreateFailurePreservationChecker(Program program, ActionInfo first, ActionInfo second)
{
+ if (first.gateUsedGlobalVars.Intersect(second.modifiedGlobalVars).Count() == 0 && second.isNonBlocking)
+ return;
+
Tuple<ActionInfo, ActionInfo> actionPair = new Tuple<ActionInfo, ActionInfo>(first, second);
if (failurePreservationCheckerCache.Contains(actionPair))
return;
|