41 PRECONDITION(e1->is_shared_read() || e1->is_shared_write());
42 PRECONDITION(e2->is_shared_read() || e2->is_shared_write());
53 for(eventst::const_iterator
59 if(!e_it->is_shared_read() &&
60 !e_it->is_shared_write() &&
62 !e_it->is_memory_barrier())
continue;
64 dest[e_it->source.thread_nr].push_back(e_it);
76 for(eventst::const_iterator
83 per_thread_mapt::const_iterator next_thread=
85 if(next_thread==per_thread_map.end())
90 for(event_listt::const_iterator
91 n_it=next_thread->second.begin();
92 n_it!=next_thread->second.end();
95 if(!(*n_it)->is_memory_barrier())
109 const per_thread_mapt &per_thread_map)
115 for(eventst::const_iterator
122 per_thread_mapt::const_iterator next_thread=
124 if(next_thread==per_thread_map.end())
132 event_listt::const_iterator n_it=next_thread->second.begin();
134 n_it!=next_thread->second.end() &&
135 (*n_it)->is_memory_barrier();
140 if(n_it!=next_thread->second.end())
161 for(per_thread_mapt::const_iterator
162 t_it=per_thread_map.begin();
163 t_it!=per_thread_map.end();
172 for(event_listt::const_iterator
177 if((*e_it)->is_memory_barrier())
201 for(address_mapt::const_iterator
206 const a_rect &a_rec=a_it->second;
211 for(event_listt::const_iterator
212 w_it1=a_rec.
writes.begin();
213 w_it1!=a_rec.
writes.end();
216 event_listt::const_iterator next=w_it1;
219 for(event_listt::const_iterator w_it2=next;
220 w_it2!=a_rec.
writes.end();
224 if((*w_it1)->source.thread_nr==
225 (*w_it2)->source.thread_nr)
254 for(address_mapt::const_iterator
259 const a_rect &a_rec=a_it->second;
262 for(event_listt::const_iterator
263 w_prime=a_rec.
writes.begin();
264 w_prime!=a_rec.
writes.end();
267 event_listt::const_iterator next=w_prime;
270 for(event_listt::const_iterator w=next;
276 if(
po(*w_prime, *w) &&
282 else if(
po(*w, *w_prime) &&
295 for(choice_symbolst::const_iterator
301 exprt rf=c_it->second;
305 if(c_it->first.second==*w_prime && !ws1.
is_false())
317 else if(c_it->first.second==*w && !ws2.
is_false())
326 and_exprt(
r->guard, (*w_prime)->guard, ws2, rf),
332 cond,
"fr",
r->source);