Remove the uses of inst_act_maps
[c11tester.git] / predicate.cc
index 35bc032fcbb2f860c0a477fa723a3ff1da8bac71..86bc30edf76651a813e09672f815f5c03d3946c2 100644 (file)
@@ -8,7 +8,7 @@ Predicate::Predicate(FuncInst * func_inst, bool is_entry, bool is_exit) :
        exit_predicate(is_exit),
        does_write(false),
        depth(0),
-       weight(0),
+       weight(100),
        exploration_count(0),
        store_visible_count(0),
        total_checking_count(0),
@@ -87,9 +87,10 @@ void Predicate::copy_predicate_expr(Predicate * other)
  */
 Predicate * Predicate::follow_write_child(FuncInst * inst)
 {
-       ASSERT(inst->get_type() == ATOMIC_WRITE);
+       action_type type = inst->get_type();
+       ASSERT(type == ATOMIC_WRITE || type == ATOMIC_INIT);
 
-       for (uint i = 0; i < children.size(); i++) {
+       for (uint i = 0;i < children.size();i++) {
                Predicate * child = children[i];
                if (child->get_func_inst() == inst)
                        return child;
@@ -99,8 +100,9 @@ Predicate * Predicate::follow_write_child(FuncInst * inst)
 }
 
 /* Evaluate predicate expressions against the given inst_act_map */
-ConcretePredicate * Predicate::evaluate(inst_act_map_t * inst_act_map, thread_id_t tid)
+ConcretePredicate * Predicate::evaluate(thread_id_t tid)
 {
+       /*
        ConcretePredicate * concrete = new ConcretePredicate(tid);
        PredExprSetIter * it = pred_expressions.iterator();
 
@@ -129,6 +131,7 @@ ConcretePredicate * Predicate::evaluate(inst_act_map_t * inst_act_map, thread_id
        }
 
        delete it;
+       */
        return concrete;
 }
 
@@ -177,7 +180,7 @@ void Predicate::print_predicate()
 
        double prob = (double) store_visible_count / total_checking_count;
        model_print("Total checks: %d, visible count: %d; prob: %f\n", total_checking_count, store_visible_count, prob);
-       model_print("Exploration count: %d", exploration_count);
+       model_print("Exploration count: %d, failure count: %d", exploration_count, failure_count);
        model_print("\"];\n");
 
        delete it;