From: weiyu Date: Thu, 3 Sep 2020 23:23:11 +0000 (-0700) Subject: Remove unused functions X-Git-Url: http://plrg.eecs.uci.edu/git/?p=c11tester.git;a=commitdiff_plain;h=055fb927ea688ec513508b0821e331558eea40d1 Remove unused functions --- diff --git a/cmodelint.cc b/cmodelint.cc index b7ff5913..fe91d537 100644 --- a/cmodelint.cc +++ b/cmodelint.cc @@ -10,7 +10,7 @@ #include "threads-model.h" #include "datarace.h" -memory_order orders[7] = { +memory_order orders[6] = { memory_order_relaxed, memory_order_consume, memory_order_acquire, memory_order_release, memory_order_acq_rel, memory_order_seq_cst, }; @@ -23,55 +23,6 @@ static void ensureModel() { } } -/** Performs a read action.*/ -uint64_t model_read_action(void * obj, memory_order ord) { - return model->switch_thread(new ModelAction(ATOMIC_READ, ord, obj)); -} - -/** Performs a write action.*/ -void model_write_action(void * obj, memory_order ord, uint64_t val) { - model->switch_thread(new ModelAction(ATOMIC_WRITE, ord, obj, val)); -} - -/** Performs an init action. */ -void model_init_action(void * obj, uint64_t val) { - model->switch_thread(new ModelAction(ATOMIC_INIT, memory_order_relaxed, obj, val)); -} - -/** - * Performs the read part of a RMW action. The next action must either be the - * write part of the RMW action or an explicit close out of the RMW action w/o - * a write. - */ -uint64_t model_rmwr_action(void *obj, memory_order ord) { - return model->switch_thread(new ModelAction(ATOMIC_RMWR, ord, obj)); -} - -/** - * Performs the read part of a RMW CAS action. The next action must - * either be the write part of the RMW action or an explicit close out - * of the RMW action w/o a write. - */ -uint64_t model_rmwrcas_action(void *obj, memory_order ord, uint64_t oldval, int size) { - return model->switch_thread(new ModelAction(ATOMIC_RMWRCAS, ord, obj, oldval, size)); -} - - -/** Performs the write part of a RMW action. */ -void model_rmw_action(void *obj, memory_order ord, uint64_t val) { - model->switch_thread(new ModelAction(ATOMIC_RMW, ord, obj, val)); -} - -/** Closes out a RMW action without doing a write. */ -void model_rmwc_action(void *obj, memory_order ord) { - model->switch_thread(new ModelAction(ATOMIC_RMWC, ord, obj)); -} - -/** Issues a fence operation. */ -void model_fence_action(memory_order ord) { - model->switch_thread(new ModelAction(ATOMIC_FENCE, ord, FENCE_LOCATION)); -} - /* --- helper functions --- */ uint64_t model_rmwrcas_action_helper(void *obj, int atomic_index, uint64_t oldval, int size, const char *position) { ensureModel(); diff --git a/execution.cc b/execution.cc index c329b8c4..dcaada34 100644 --- a/execution.cc +++ b/execution.cc @@ -1111,43 +1111,6 @@ void ModelExecution::w_modification_order(ModelAction *curr) } -/** - * Arbitrary reads from the future are not allowed. Section 29.3 part 9 places - * some constraints. This method checks one the following constraint (others - * require compiler support): - * - * If X --hb-> Y --mo-> Z, then X should not read from Z. - * If X --hb-> Y, A --rf-> Y, and A --mo-> Z, then X should not read from Z. - */ -bool ModelExecution::mo_may_allow(const ModelAction *writer, const ModelAction *reader) -{ - SnapVector *thrd_lists = obj_thrd_map.get(reader->get_location()); - unsigned int i; - /* Iterate over all threads */ - for (i = 0;i < thrd_lists->size();i++) { - const ModelAction *write_after_read = NULL; - - /* Iterate over actions in thread, starting from most recent */ - action_list_t *list = &(*thrd_lists)[i]; - sllnode* rit; - for (rit = list->end();rit != NULL;rit=rit->getPrev()) { - ModelAction *act = rit->getVal(); - - /* Don't disallow due to act == reader */ - if (!reader->happens_before(act) || reader == act) - break; - else if (act->is_write()) - write_after_read = act; - else if (act->is_read() && act->get_reads_from() != NULL) - write_after_read = act->get_reads_from(); - } - - if (write_after_read && write_after_read != writer && mo_graph->checkReachable(write_after_read, writer)) - return false; - } - return true; -} - /** * Computes the clock vector that happens before propagates from this write. * diff --git a/execution.h b/execution.h index 76f0e4e1..31e9810e 100644 --- a/execution.h +++ b/execution.h @@ -99,7 +99,6 @@ public: SNAPSHOTALLOC private: int get_execution_number() const; - bool mo_may_allow(const ModelAction *writer, const ModelAction *reader); bool should_wake_up(const ModelAction *curr, const Thread *thread) const; void wake_up_sleeping_actions(ModelAction *curr); modelclock_t get_next_seq_num();