Fix Loop Exit Bug
[satcheck.git] / schedulebuilder.h
1 /*      Copyright (c) 2015 Regents of the University of California
2  *
3  *      Author: Brian Demsky <bdemsky@uci.edu>
4  *
5  *      This program is free software; you can redistribute it and/or
6  *      modify it under the terms of the GNU General Public License
7  *      version 2 as published by the Free Software Foundation.
8  */
9
10 #ifndef SCHEDULEBUILDER_H
11 #define SCHEDULEBUILDER_H
12 #include "classlist.h"
13 #include "stl-model.h"
14
15 class ScheduleBuilder {
16  public:
17         ScheduleBuilder(MCExecution *_execution, ConstGen *cgen);
18         ~ScheduleBuilder();
19         void buildSchedule(bool *satsolution);
20
21         SNAPSHOTALLOC;
22  private:
23         EPRecord * getNextRecord(EPRecord *record);
24         EPRecord * processRecord(EPRecord *record, bool * satsolution);
25         ConstGen * cg;
26         MCExecution *execution;
27         MCScheduler *scheduler;
28         SnapVector<EPRecord *> threads;
29 #ifdef TSO
30         SnapVector<SnapList<EPRecord *> *> stores;
31         SnapVector<EPRecord *> storelastoperation;
32 #endif
33         SnapVector<EPRecord *> lastoperation;
34 };
35 #endif