From 1b16c934eb17b6ddac760bbce48d91b27332ce8c Mon Sep 17 00:00:00 2001 From: weiyu Date: Fri, 18 Oct 2019 11:10:34 -0700 Subject: [PATCH] Remove a redundant SnapVector --- newfuzzer.cc | 56 ++++++++++++++++++++++------------------------------ 1 file changed, 24 insertions(+), 32 deletions(-) diff --git a/newfuzzer.cc b/newfuzzer.cc index 6a9f9305..9d061bbf 100644 --- a/newfuzzer.cc +++ b/newfuzzer.cc @@ -127,44 +127,36 @@ void NewFuzzer::check_store_visibility(Predicate * curr_pred, FuncInst * read_in return; ModelVector * children = curr_pred->get_children(); - SnapVector branches; - /* The children predicates may have different FuncInsts */ + /* Iterate over all predicate children */ for (uint i = 0; i < children->size(); i++) { - Predicate * child = (*children)[i]; - if (child->get_func_inst() == read_inst) { - branches.push_back(child); - } - } + Predicate * branch = (*children)[i]; - /* Predicate children have not been generated */ - if (branches.empty()) - return; + /* The children predicates may have different FuncInsts */ + if (branch->get_func_inst() == read_inst) { + PredExprSet * pred_expressions = branch->get_pred_expressions(); - /* Iterate over all predicate children */ - for (uint i = 0; i < branches.size(); i++) { - Predicate * branch = branches[i]; - PredExprSet * pred_expressions = branch->get_pred_expressions(); - - /* Do not check unset predicates */ - if (pred_expressions->isEmpty()) - continue; - - branch->incr_total_checking_count(); - - /* Iterate over all write actions */ - for (uint j = 0; j < rf_set->size(); j++) { - ModelAction * write_act = (*rf_set)[j]; - uint64_t write_val = write_act->get_write_value(); - bool dummy = true; - bool satisfy_predicate = check_predicate_expressions(pred_expressions, inst_act_map, write_val, &dummy); - - /* If one write value satisfies the predicate, go to check the next predicate */ - if (satisfy_predicate) { - branch->incr_store_visible_count(); - break; + /* Do not check unset predicates */ + if (pred_expressions->isEmpty()) + continue; + + branch->incr_total_checking_count(); + + /* Iterate over all write actions */ + for (uint j = 0; j < rf_set->size(); j++) { + ModelAction * write_act = (*rf_set)[j]; + uint64_t write_val = write_act->get_write_value(); + bool dummy = true; + bool satisfy_predicate = check_predicate_expressions(pred_expressions, inst_act_map, write_val, &dummy); + + /* If one write value satisfies the predicate, go to check the next predicate */ + if (satisfy_predicate) { + branch->incr_store_visible_count(); + break; + } } } + } } -- 2.34.1