X-Git-Url: http://plrg.eecs.uci.edu/git/?p=c11tester.git;a=blobdiff_plain;f=funcnode.h;h=35f1969dcc8cce36e51a878264efeea49fa157ba;hp=b167e4a1e17ec850d59e6da7ebe1d9c83e98b930;hb=251ac4b4bf3a9f2d3cfacc1e6618200ca1c431ac;hpb=7719c6dc7e1a6dade8dfa022f3c9e19853f3e89f diff --git a/funcnode.h b/funcnode.h index b167e4a1..35f1969d 100644 --- a/funcnode.h +++ b/funcnode.h @@ -9,7 +9,7 @@ #define MAX_DIST 10 typedef ModelList func_inst_list_mt; -typedef ModelList predicate_trace_t; +typedef ModelVector predicate_trace_t; typedef HashTable loc_inst_map_t; typedef HashTable inst_id_map_t; @@ -51,8 +51,6 @@ public: void add_predicate_to_trace(thread_id_t tid, Predicate *pred); - uint32_t get_marker(thread_id_t tid); - int get_recursion_depth(thread_id_t tid); uint64_t get_associated_read(thread_id_t tid, FuncInst * inst); void add_out_edge(FuncNode * other); @@ -71,6 +69,7 @@ private: uint32_t inst_counter; uint32_t marker; + uint32_t exit_count; ModelVector< ModelVector *> thrd_markers; ModelVector thrd_recursion_depth; // Recursion depth starts from 0 to match with vector indexes. @@ -119,6 +118,9 @@ private: /* Keeps track of locations that may share the same value as key, deduced from val_loc_map */ HashTable * loc_may_equal_map; + HashTable likely_null_set; + + bool likely_reads_from_null(ModelAction * read); // value_set_t * values_may_read_from; /* Run-time position in the predicate tree for each thread