X-Git-Url: http://plrg.eecs.uci.edu/git/?p=c11tester.git;a=blobdiff_plain;f=funcnode.h;h=b022284a2fb52a6d36ca67c8649f230f3d96d917;hp=53f071f18fb3791d1c59c51ab4aa05ed5f8e40ad;hb=3cc10cd7ba94e6a8eeedd0904c75ee613700a8ff;hpb=83212d16bb9dea02a28a008752a62447e20c699f diff --git a/funcnode.h b/funcnode.h index 53f071f1..b022284a 100644 --- a/funcnode.h +++ b/funcnode.h @@ -32,12 +32,8 @@ public: void update_tree(action_list_t * act_list); void update_inst_tree(func_inst_list_t * inst_list); - void update_predicate_tree(action_list_t * act_list); bool follow_branch(Predicate ** curr_pred, FuncInst * next_inst, ModelAction * next_act, HashTable * inst_act_map, SnapVector * unset_predicates); - void infer_predicates(FuncInst * next_inst, ModelAction * next_act, HashTable * loc_act_map, SnapVector * half_pred_expressions); - void generate_predicates(Predicate ** curr_pred, FuncInst * next_inst, SnapVector * half_pred_expressions); - bool amend_predicate_expr(Predicate ** curr_pred, FuncInst * next_inst, ModelAction * next_act); void incr_exit_count() { exit_count++; } uint32_t get_exit_count() { return exit_count; } @@ -82,21 +78,26 @@ private: /* Possible entry atomic actions in this function */ func_inst_list_mt entry_insts; + void infer_predicates(FuncInst * next_inst, ModelAction * next_act, HashTable * loc_act_map, SnapVector * half_pred_expressions); + void generate_predicates(Predicate ** curr_pred, FuncInst * next_inst, SnapVector * half_pred_expressions); + bool amend_predicate_expr(Predicate ** curr_pred, FuncInst * next_inst, ModelAction * next_act); + /* Store action_lists when calls to update_tree are deferred */ ModelList action_list_buffer; /* read_locations: set of locations read by this FuncNode * val_loc_map: keep track of locations that have the same values written to; - * loc_may_equal_map: deduced from val_loc_map; - */ + * loc_may_equal_map: look up locations that may share the same value as key; + * deduced from val_loc_map; */ loc_set_t * read_locations; HashTable * val_loc_map; HashTable * loc_may_equal_map; // value_set_t * values_may_read_from; - /* run-time position in the predicate tree for each thread */ + /* Run-time position in the predicate tree for each thread */ ModelVector predicate_tree_position; + /* A run-time map from FuncInst to ModelAction for each thread; needed by NewFuzzer */ SnapVector * thrd_inst_act_map; };