More code towards graph
[satune.git] / src / ASTAnalyses / Encoding / encodinggraph.h
index adb467cc6b279faaf7e7e3c62fb49fa5a1e53b7b..a7ccace7e109d5a8d57cd58f1c890afe5dd58a58 100644 (file)
@@ -18,11 +18,12 @@ class EncodingGraph {
        CSolver * solver;
        HashtableEncoding encodingMap;
        HashtableEdge edgeMap;
+       HashsetElement discovered;
        void processElement(Element *e);
        void processFunction(ElementFunction *f);
        void processPredicate(BooleanPredicate *b);
        EncodingNode * createNode(Element *e);
-
+       EncodingEdge * getEdge(EncodingNode *left, EncodingNode *right, EncodingNode *dst);
 };
 
 class EncodingNode {
@@ -33,6 +34,8 @@ class EncodingNode {
  private:
        Set *s;
        HashsetElement elements;
+       uint numElements;
+       friend class EncodingGraph;
 };
 
 class EncodingEdge {
@@ -44,10 +47,10 @@ class EncodingEdge {
        EncodingNode *left;
        EncodingNode *right;
        EncodingNode *dst;
+       uint numArithOps;
+       uint numEquals;
+       uint numComparisons;
        friend uint hashEncodingEdge(EncodingEdge *edge);
        friend bool equalsEncodingEdge(EncodingEdge *e1, EncodingEdge *e2);
-
 };
-
-
 #endif