Base class for implementing memory models via additional constraints for SSA equations. More...
#include <partial_order_concurrency.h>
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. Base class for implementing memory models via additional constraints for SSA equations.
Provides methods for encoding ordering of shared read/write events.
Definition at line 20 of file partial_order_concurrency.h.
Definition at line 58 of file partial_order_concurrency.h.
Definition at line 28 of file partial_order_concurrency.h.
Definition at line 50 of file partial_order_concurrency.h.
Definition at line 27 of file partial_order_concurrency.h.
Definition at line 26 of file partial_order_concurrency.h.
Definition at line 80 of file partial_order_concurrency.h.
| Enumerator | |
|---|---|
| AX_SC_PER_LOCATION | |
| AX_NO_THINAIR | |
| AX_OBSERVATION | |
| AX_PROPAGATION | |
Definition at line 31 of file partial_order_concurrency.h.
Definition at line 18 of file partial_order_concurrency.cpp.
Definition at line 23 of file partial_order_concurrency.cpp.
Simplify and add a constraint to equation.
cond Definition at line 200 of file partial_order_concurrency.cpp.
For each shared read event and for each shared write event that appears after spawn or has false guard prepend a shared write SSA step with non-deterministic value.
Definition at line 27 of file partial_order_concurrency.cpp.
Produce an address ID for an event.
Definition at line 94 of file partial_order_concurrency.h.
Implemented in memory_model_sct, and memory_model_tsot.
Build the partial order constraint for two events: if 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 166 of file partial_order_concurrency.cpp.
Initialize the clock_type so that it can be used to number events.
Definition at line 158 of file partial_order_concurrency.cpp.
First call add_init_writes then for each shared read/write (or spawn) populate: 1) the address_map (with a list of reads/writes for the address of each event) 2) the numbering map (with per-thread unique number of every event)
Definition at line 72 of file partial_order_concurrency.cpp.
Produce a clock symbol for some event.
Definition at line 135 of file partial_order_concurrency.cpp.
Produce the symbol ID for an event.
Definition at line 86 of file partial_order_concurrency.h.
Build identifier for the read/write clock variable.
Definition at line 123 of file partial_order_concurrency.cpp.
Definition at line 59 of file partial_order_concurrency.h.
Definition at line 99 of file partial_order_concurrency.h.
Definition at line 48 of file partial_order_concurrency.h.
Definition at line 81 of file partial_order_concurrency.h.