merge
authorweiyu <weiyuluo1232@gmail.com>
Wed, 31 Jul 2019 07:52:05 +0000 (00:52 -0700)
committerweiyu <weiyuluo1232@gmail.com>
Wed, 31 Jul 2019 07:52:05 +0000 (00:52 -0700)
1  2 
cmodelint.cc
funcnode.cc
funcnode.h
history.cc
history.h
predicate.h
pthread.cc

diff --cc cmodelint.cc
Simple merge
diff --cc funcnode.cc
@@@ -166,14 -177,13 +176,14 @@@ void FuncNode::print_last_read(uint32_
  {
        ASSERT(thrd_read_map.size() > tid);
        read_map_t * read_map = thrd_read_map[tid];
 -
 +/*
-       ModelList<void *>::iterator it;
-       for (it = read_locations.begin();it != read_locations.end();it++) {
-               if ( !read_map->contains(*it) )
+       mllnode<void *> * it;
+       for (it = read_locations.begin();it != NULL;it=it->getNext()) {
+               if ( !read_map->contains(it->getVal()) )
                        break;
  
-               uint64_t read_val = read_map->get(*it);
-               model_print("last read of thread %d at %p: 0x%x\n", tid, *it, read_val);
+               uint64_t read_val = read_map->get(it->getVal());
+               model_print("last read of thread %d at %p: 0x%x\n", tid, it->getVal(), read_val);
        }
 +*/
  }
diff --cc funcnode.h
@@@ -54,7 -53,7 +54,7 @@@ private
  
        /* Store the values read by atomic read actions per memory location for each thread */
        ModelVector<read_map_t *> thrd_read_map;
 -      ModelList<void *> read_locations;
 +
  };
  
- #endif /* __FUNCNODE_H__ */
+ #endif        /* __FUNCNODE_H__ */
diff --cc history.cc
@@@ -181,11 -175,12 +184,11 @@@ void ModelHistory::print_func_node(
                func_inst_list_mt * entry_insts = func_node->get_entry_insts();
                model_print("function %s has entry actions\n", func_node->get_func_name());
  
-               func_inst_list_mt::iterator it;
-               for (it = entry_insts->begin();it != entry_insts->end();it++) {
-                       FuncInst *inst = *it;
+               mllnode<FuncInst*>* it;
+               for (it = entry_insts->begin();it != NULL;it=it->getNext()) {
+                       FuncInst *inst = it->getVal();
                        model_print("type: %d, at: %s\n", inst->get_type(), inst->get_position());
                }
 -
  /*
                  func_inst_list_mt * inst_list = funcNode->get_inst_list();
  
diff --cc history.h
+++ b/history.h
@@@ -45,9 -44,7 +45,9 @@@ private
        ModelVector<const char *> func_map_rev;
  
        ModelVector<FuncNode *> func_nodes;
 +
        HashTable<void *, write_set_t *, uintptr_t, 4, model_malloc, model_calloc, model_free> write_history;
 +      HashSet<void *, uintptr_t, 4, model_malloc, model_calloc, model_free> write_locations;
  };
  
- #endif /* __HISTORY_H__ */
+ #endif        /* __HISTORY_H__ */
diff --cc predicate.h
@@@ -12,10 -5,10 +12,10 @@@ typedef enum predicate_token 
  } token_t;
  
  /* If token is EQUALITY, then the predicate asserts whether
-  * this load should read the same value as the last value 
+  * this load should read the same value as the last value
   * read at memory location specified in predicate_expr.
   */
 -struct predicate_expr {
 +struct pred_expr {
        token_t token;
        void * location;
        bool value;
diff --cc pthread.cc
Simple merge