cprover
Toggle main menu visibility
Loading...
Searching...
No Matches
memory_model_sc.h
Go to the documentation of this file.
1
/*******************************************************************\
2
3
Module: Memory models for partial order concurrency
4
5
Author: Michael Tautschnig, michael.tautschnig@cs.ox.ac.uk
6
7
\*******************************************************************/
8
11
12
#ifndef CPROVER_GOTO_SYMEX_MEMORY_MODEL_SC_H
13
#define CPROVER_GOTO_SYMEX_MEMORY_MODEL_SC_H
14
15
#include "
memory_model.h
"
16
17
class
memory_model_sct
:
public
memory_model_baset
18
{
19
public
:
20
explicit
memory_model_sct
(
const
namespacet
&_ns):
21
memory_model_baset
(_ns)
22
{
23
}
24
25
virtual
void
operator()
(
symex_target_equationt
&equation,
message_handlert
&);
26
27
protected
:
28
virtual
exprt
before
(
event_it
e1,
event_it
e2);
29
virtual
bool
program_order_is_relaxed
(
30
partial_order_concurrencyt::event_it
e1,
31
partial_order_concurrencyt::event_it
e2)
const
;
32
33
void
build_per_thread_map
(
34
const
symex_target_equationt
&equation,
35
per_thread_mapt
&dest)
const
;
36
void
thread_spawn
(
37
symex_target_equationt
&equation,
38
const
per_thread_mapt
&per_thread_map);
39
void
program_order
(
symex_target_equationt
&equation);
40
void
from_read
(
symex_target_equationt
&equation);
41
void
write_serialization_external
(
symex_target_equationt
&equation);
42
};
43
44
#endif
// CPROVER_GOTO_SYMEX_MEMORY_MODEL_SC_H
exprt
Base class for all expressions.
Definition
expr.h:57
memory_model_baset::memory_model_baset
memory_model_baset(const namespacet &_ns)
Definition
memory_model.cpp:16
memory_model_baset::per_thread_mapt
std::map< unsigned, event_listt > per_thread_mapt
Definition
memory_model.h:60
memory_model_sct::memory_model_sct
memory_model_sct(const namespacet &_ns)
Definition
memory_model_sc.h:20
memory_model_sct::operator()
virtual void operator()(symex_target_equationt &equation, message_handlert &)
Definition
memory_model_sc.cpp:17
memory_model_sct::build_per_thread_map
void build_per_thread_map(const symex_target_equationt &equation, per_thread_mapt &dest) const
Definition
memory_model_sc.cpp:47
memory_model_sct::from_read
void from_read(symex_target_equationt &equation)
Definition
memory_model_sc.cpp:250
memory_model_sct::program_order_is_relaxed
virtual bool program_order_is_relaxed(partial_order_concurrencyt::event_it e1, partial_order_concurrencyt::event_it e2) const
Definition
memory_model_sc.cpp:37
memory_model_sct::program_order
void program_order(symex_target_equationt &equation)
Definition
memory_model_sc.cpp:151
memory_model_sct::thread_spawn
void thread_spawn(symex_target_equationt &equation, const per_thread_mapt &per_thread_map)
Definition
memory_model_sc.cpp:68
memory_model_sct::write_serialization_external
void write_serialization_external(symex_target_equationt &equation)
Definition
memory_model_sc.cpp:198
memory_model_sct::before
virtual exprt before(event_it e1, event_it e2)
Definition
memory_model_sc.cpp:31
message_handlert
Definition
message.h:27
namespacet
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
Definition
namespace.h:91
partial_order_concurrencyt::event_it
eventst::const_iterator event_it
Definition
partial_order_concurrency.h:28
symex_target_equationt
Inheriting the interface of symex_targett this class represents the SSA form of the input program as ...
Definition
symex_target_equation.h:34
memory_model.h
Memory models for partial order concurrency.
goto-symex
memory_model_sc.h
Generated by
1.17.0