From 37ddd0bd2f8118948a95bffedbbc8d976adaa7ce Mon Sep 17 00:00:00 2001 From: akashlal Date: Tue, 28 Jan 2014 21:48:33 +0530 Subject: Option for reversing Houdini worklist (for top-down analysis) --- Source/Houdini/Houdini.cs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'Source/Houdini') diff --git a/Source/Houdini/Houdini.cs b/Source/Houdini/Houdini.cs index c3575800..e883d0bd 100644 --- a/Source/Houdini/Houdini.cs +++ b/Source/Houdini/Houdini.cs @@ -512,8 +512,9 @@ namespace Microsoft.Boogie.Houdini { queue.Enqueue(impl); } } - return queue; - + if (CommandLineOptions.Clo.ReverseHoudiniWorklist) + queue = queue.Reverse(); + return queue; /* Queue queue = new Queue(); foreach (Declaration decl in program.TopLevelDeclarations) { @@ -815,6 +816,13 @@ namespace Microsoft.Boogie.Houdini { public bool Contains(Implementation impl) { return set.Contains(impl); } + public WorkQueue Reverse() + { + var ret = new WorkQueue(); + foreach (var impl in queue.Reverse()) + ret.Enqueue(impl); + return ret; + } } public class HoudiniState { -- cgit v1.2.3