16 #include "tbb/concurrent_hash_map.h"
17 #include "tbb/atomic.h"
71 class NodeStateHashCompare
74 NodeStateHashCompare() {}
75 NodeStateHashCompare(
const NodeStateHashCompare & that) {}
77 ~NodeStateHashCompare(){}
85 static size_t hash(
const Analysis* k ) {
return (
size_t) k; }
92 typedef tbb::concurrent_hash_map <Analysis*, std::vector<Lattice*>, NodeStateHashCompare >
LatticeMap;
94 typedef tbb::concurrent_hash_map <Analysis*, std::vector<NodeFact*>, NodeStateHashCompare >
NodeFactMap;
95 typedef tbb::concurrent_hash_map <Analysis*, bool, NodeStateHashCompare >
BoolMap;
97 typedef std::map<Analysis*, std::vector<Lattice*> >
LatticeMap;
99 typedef std::map<Analysis*, std::vector<NodeFact*> >
NodeFactMap;
222 static bool eqLattices(
const std::vector<Lattice*>& latticesA,
223 const std::vector<Lattice*>& latticesB);
244 const Analysis* analysis,
int latticeName)
const;
260 void setFacts(
const Analysis* analysis,
const std::vector<NodeFact*>& newFacts);
350 static void copyLattices(std::vector<Lattice*>& dfInfoX,
const std::vector<Lattice*>& dfInfoY);
355 std::string
str(
Analysis* analysis, std::string indent=
"")
const;