27 data_typet::const_iterator it;
29 for(it=
data.cbegin(); it!=
data.cend(); ++it)
31 if(local_read && it->id==read.
id)
41 if(local_write && it->id==write.
id)
74 for(
auto it1=
data.cbegin(); it1!=
data.cend(); ++it1)
92 for(; it2!=
data.cend(); ++it2)
105 if(it1->eq_class==it2->eq_class)
128 for(
auto it1=
data.cbegin(); it1!=
data.cend(); ++it1)
136 for(; it2!=
data.cend(); ++it2)
149 for(
auto it3=
data.begin(); it3!=
data.end(); ++it3)
150 if(it3->eq_class==from)
163 data_typet::const_iterator it;
164 std::map<unsigned, std::set<source_locationt> > classed;
166 for(it=
data.cbegin(); it!=
data.cend(); ++it)
168 if(classed.find(it->eq_class)==classed.end())
170 std::set<source_locationt> s;
172 classed[it->eq_class]=s;
175 classed[it->eq_class].insert(it->loc);
178 for(std::map<
unsigned, std::set<source_locationt> >::const_iterator
179 m_it=classed.begin();
180 m_it!=classed.end(); ++m_it)
183 std::set<source_locationt>::const_iterator l_it;
184 for(l_it=m_it->second.begin(); l_it!=m_it->second.end(); ++l_it)
source_locationt source_location
void dp_merge()
merge in N^3
void print(messaget &message)
bool dp(const abstract_eventt &e1, const abstract_eventt &e2) const
search in N^2
void dp_analysis(const abstract_eventt &read, const abstract_eventt &write)
Class that provides messages with a built-in verbosity 'level'.