summaryrefslogtreecommitdiff
path: root/Source/Houdini
diff options
context:
space:
mode:
authorGravatar Ally Donaldson <unknown>2015-01-10 11:01:14 +0000
committerGravatar Ally Donaldson <unknown>2015-01-10 11:01:14 +0000
commit7b1b91e940fd8ec7ac60074c843eb08f5715bc91 (patch)
tree724d2b63de4490a0ed2c226cd021adcf85c00776 /Source/Houdini
parentdfc5ba21c5da1c8c4133b4aa260a90dc1a9404f4 (diff)
Removed unnecessary stage-related attributes from candidate annotations.
Diffstat (limited to 'Source/Houdini')
-rw-r--r--Source/Houdini/AnnotationDependenceAnalyser.cs5
-rw-r--r--Source/Houdini/StagedHoudini.cs19
2 files changed, 20 insertions, 4 deletions
diff --git a/Source/Houdini/AnnotationDependenceAnalyser.cs b/Source/Houdini/AnnotationDependenceAnalyser.cs
index fd283f3e..7cb43fbd 100644
--- a/Source/Houdini/AnnotationDependenceAnalyser.cs
+++ b/Source/Houdini/AnnotationDependenceAnalyser.cs
@@ -436,8 +436,9 @@ namespace Microsoft.Boogie.Houdini {
if (NoStages())
{
- // TODO: need to figure out what to do here
- throw new NotImplementedException();
+ var TrivialGraph = new Graph<ScheduledStage>();
+ TrivialGraph.AddSource(new ScheduledStage(0, new HashSet<string>()));
+ return new StagedHoudiniPlan(TrivialGraph);
}
#region Assign annotations to stages at a given level of granularity
diff --git a/Source/Houdini/StagedHoudini.cs b/Source/Houdini/StagedHoudini.cs
index 49482b3d..f5ddc92a 100644
--- a/Source/Houdini/StagedHoudini.cs
+++ b/Source/Houdini/StagedHoudini.cs
@@ -15,6 +15,7 @@ namespace Microsoft.Boogie.Houdini
{
private Program program;
+ private HoudiniSession.HoudiniStatistics houdiniStats;
private Func<string, Program> ProgramFromFile;
private StagedHoudiniPlan plan;
private List<Houdini>[] houdiniInstances;
@@ -23,8 +24,9 @@ namespace Microsoft.Boogie.Houdini
private const string tempFilename = "__stagedHoudiniTemp.bpl";
- public StagedHoudini(Program program, Func<string, Program> ProgramFromFile) {
+ public StagedHoudini(Program program, HoudiniSession.HoudiniStatistics houdiniStats, Func<string, Program> ProgramFromFile) {
this.program = program;
+ this.houdiniStats = houdiniStats;
this.ProgramFromFile = ProgramFromFile;
this.houdiniInstances = new List<Houdini>[CommandLineOptions.Clo.StagedHoudiniThreads];
for (int i = 0; i < CommandLineOptions.Clo.StagedHoudiniThreads; i++) {
@@ -40,16 +42,29 @@ namespace Microsoft.Boogie.Houdini
if(CommandLineOptions.Clo.DebugStagedHoudini) {
Console.WriteLine("Plan\n====\n");
- Console.WriteLine(this.plan);
+ if(plan == null) {
+ Console.WriteLine("No plan, as there were no stages");
+ } else {
+ Console.WriteLine(this.plan);
+ }
}
EmitProgram("staged.bpl");
}
}
+ private bool NoStages() {
+ return plan == null;
+ }
+
public HoudiniOutcome PerformStagedHoudiniInference()
{
+ if (NoStages()) {
+ Houdini houdini = new Houdini(program, houdiniStats);
+ return houdini.PerformHoudiniInference();
+ }
+
EmitProgram(tempFilename);
#region Prepare the tasks, but do not launch them