execution: improve documentation
[cdsspec-compiler.git] / scanalysis.h
index a6420955be068d8077e03c8900c0663a5218a0e9..e8afc18949aaa1b25b931bcfd46f42a5225fde72 100644 (file)
@@ -3,18 +3,27 @@
 #include "traceanalysis.h"
 #include "hashtable.h"
 
-class SCAnalysis : public Trace_Analysis {
+class SCAnalysis : public TraceAnalysis {
  public:
-       SCAnalysis();
+       SCAnalysis(const ModelExecution *execution);
        ~SCAnalysis();
        virtual void analyze(action_list_t *);
 
        SNAPSHOTALLOC
  private:
+       void print_list(action_list_t *list);
        void buildVectors(action_list_t *);
+       bool updateConstraints(ModelAction *act);
        void computeCV(action_list_t *);
+       action_list_t * generateSC(action_list_t *);
        bool processRead(ModelAction *read, ClockVector *cv);
+       ModelAction * getNextAction();
+       bool merge(ClockVector *cv, const ModelAction *act, ClockVector *cv2);
+
        int maxthreads;
-       HashTable<const ModelAction *,ClockVector *, uintptr_t, 4 > * cvmap;
+       HashTable<const ModelAction *, ClockVector *, uintptr_t, 4 > cvmap;
+       HashTable<const ModelAction *, const ModelAction *, uintptr_t, 4 > cycleset;
+       SnapVector<action_list_t> threadlists;
+       const ModelExecution *execution;
 };
 #endif