5 #include "graphstructs.h"
9 NodeValuePair(EncodingNode *n, uint64_t val) : node(n), value(val) {}
16 EncodingValue(uint64_t _val) : value(_val), inComparison(false) {}
17 void merge(EncodingValue *value);
20 HashsetEncodingNode nodes;
21 Vector<EncodingValue *> larger;
24 uint hashNodeValuePair(NodeValuePair *nvp);
25 bool equalsNodeValuePair(NodeValuePair *nvp1, NodeValuePair *nvp2);
27 typedef Hashtable<NodeValuePair *, EncodingValue *, uintptr_t, 4, hashNodeValuePair, equalsNodeValuePair> NVPMap;
29 class EncodingSubGraph {
32 void addNode(EncodingNode *n);
33 SetIteratorEncodingNode * nodeIterator();
38 uint estimateNewSize(EncodingNode *n);
39 uint estimateNewSize(EncodingSubGraph *sg);
40 void traverseValue(EncodingNode *node, uint64_t value);
41 void computeEncodingValue();
42 void computeInequalities();
43 void generateComparison(EncodingNode *left, EncodingNode *right);
45 HashsetEncodingNode nodes;
50 friend class EncodingGraph;