#include <memory_model.h>
r from every address we collect the choice symbols S via register_read_from_choice_symbol (for potential read-write pairs) and add a constraint r.guard => \/S. s for the pair (r, w) add constraint s => (w.guard /\ r.lhs=w.lhs) add constraint s => before(w,r) [if w is from another thread]. e1 and e2 are in the same atomic section then constrain with equality between their clocks otherwise constrain with e1 clock being less than e2 clock. Definition at line 17 of file memory_model.h.
Definition at line 38 of file memory_model.h.
Definition at line 60 of file memory_model.h.
Definition at line 16 of file memory_model.cpp.
Definition at line 21 of file memory_model.cpp.
Definition at line 25 of file memory_model.cpp.
Implemented in memory_model_psot, memory_model_sct, and memory_model_tsot.
In-thread program order.
Definition at line 31 of file memory_model.cpp.
For each read r from every address we collect the choice symbols S via register_read_from_choice_symbol (for potential read-write pairs) and add a constraint r.guard => \/S.
Definition at line 43 of file memory_model.cpp.
Introduce a new choice symbol s for the pair (r, w) add constraint s => (w.guard /\ r.lhs=w.lhs) add constraint s => before(w,r) [if w is from another thread].
Definition at line 83 of file memory_model.cpp.
Definition at line 39 of file memory_model.h.
Definition at line 33 of file memory_model.h.