3 #include "traceanalysis.h"
6 class SCAnalysis : public TraceAnalysis {
8 SCAnalysis(const ModelExecution *execution);
10 virtual void analyze(action_list_t *);
14 void print_list(action_list_t *list);
15 int buildVectors(action_list_t *);
16 bool updateConstraints(ModelAction *act);
17 void computeCV(action_list_t *);
18 action_list_t * generateSC(action_list_t *);
19 bool processRead(ModelAction *read, ClockVector *cv);
20 int getNextActions(ModelAction **array);
21 bool merge(ClockVector *cv, const ModelAction *act, const ModelAction *act2);
22 void check_rf(action_list_t *list);
23 void reset(action_list_t *list);
24 ModelAction* pruneArray(ModelAction**, int);
27 HashTable<const ModelAction *, ClockVector *, uintptr_t, 4 > cvmap;
29 HashTable<const ModelAction *, const ModelAction *, uintptr_t, 4 > badrfset;
30 HashTable<void *, const ModelAction *, uintptr_t, 4 > lastwrmap;
31 SnapVector<action_list_t> threadlists;
32 const ModelExecution *execution;