+void SCAnalysis::check_rf(action_list_t *list) {
+ for (action_list_t::iterator it = list->begin(); it != list->end(); it++) {
+ const ModelAction *act = *it;
+ if (act->is_read()) {
+ if (act->get_reads_from()!=lastwrmap.get(act->get_location()))
+ badrfset.put(act,lastwrmap.get(act->get_location()));
+ }
+ if (act->is_write())
+ lastwrmap.put(act->get_location(), act);
+ }
+}
+
+bool SCAnalysis::merge(ClockVector *cv, const ModelAction *act, const ModelAction *act2) {
+ ClockVector * cv2=cvmap.get(act2);
+ if (cv2==NULL)
+ return true;