Fix apparent bug...
[satcheck.git] / classlist.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 CLASSLIST_H
11 #define CLASSLIST_H
12 #include "hashset.h"
13 #include "mymemory.h"
14 #include <inttypes.h>
15
16 class StoreLoadSet;
17 class RecPair;
18 class MCChange;
19 class CGoal;
20 class EPRecord;
21 class EPValue;
22 class EventRecord;
23 class ExecPoint;
24 class MC;
25 class MCExecution;
26 class MCScheduler;
27 class ModelAction;
28 class Planner;
29 class Thread;
30 class ConstGen;
31 class Constraint;
32 class BranchRecord;
33 class ValueRecord;
34 class FunctionRecord;
35 class EqualsRecord;
36 class LoadRF;
37 class ScheduleBuilder;
38 class IncrementalSolver;
39
40 typedef unsigned int uint;
41 enum EventType {LOAD, STORE, RMW, BRANCHDIR, MERGE, FUNCTION, THREADCREATE, THREADBEGIN, NONLOCALTRANS, LOOPEXIT, LABEL,YIELD, THREADJOIN, LOOPENTER, LOOPSTART, ALLOC, EQUALS, FENCE};
42 typedef HashSet<EPRecord *, uintptr_t, 0, model_malloc, model_calloc, model_free> RecordSet;
43 typedef HSIterator<EPRecord *, uintptr_t, 0, model_malloc, model_calloc, model_free> RecordIterator;
44 typedef HashTable<EPRecord *, BranchRecord *, uintptr_t, 4, model_malloc, model_calloc, model_free> BranchTable;
45 typedef HashSet<EPRecord *, uintptr_t, 0, snapshot_malloc, snapshot_calloc, snapshot_free> SnapRecordSet;
46 typedef HSIterator<EPRecord *, uintptr_t, 0, snapshot_malloc, snapshot_calloc, snapshot_free, default_hash_function<EPRecord *, 0, uintptr_t>, default_equals<EPRecord *> > SnapRecordIterator;
47 typedef HashTable<const void *, StoreLoadSet *, uintptr_t, 4, model_malloc, model_calloc, model_free> StoreLoadSetHashTable;
48 typedef HashTable<EPRecord *, RecordSet *, uintptr_t, 4, model_malloc, model_calloc, model_free> LoadHashTable;
49 typedef HashSet<uint64_t, uint64_t, 0, model_malloc, model_calloc, model_free> IntHashSet;
50 typedef HSIterator<uint64_t, uint64_t, 0, model_malloc, model_calloc, model_free> IntIterator;
51 typedef HashSet<uint64_t, uint64_t, 0, snapshot_malloc, snapshot_calloc, snapshot_free> SnapIntHashSet;
52 typedef HSIterator<uint64_t, uint64_t, 0, snapshot_malloc, snapshot_calloc, snapshot_free> SnapIntIterator;
53 typedef HashTable<EPRecord *, Constraint **, uintptr_t, 4, model_malloc, model_calloc, model_free> VarTable;
54 typedef HashTable<EPRecord *, Constraint *, uintptr_t, 4, model_malloc, model_calloc, model_free> RecToConsTable;
55 typedef HashTable<EPRecord *, FunctionRecord *, uintptr_t, 4, model_malloc, model_calloc, model_free> FunctionTable;
56 typedef HashTable<EPRecord *, EqualsRecord *, uintptr_t, 4, model_malloc, model_calloc, model_free> EqualsTable;
57 #endif