File tree Expand file tree Collapse file tree 10 files changed +30
-23
lines changed Expand file tree Collapse file tree 10 files changed +30
-23
lines changed Original file line number Diff line number Diff line change @@ -330,8 +330,7 @@ void postprocess_equation(
330
330
{
331
331
std::unique_ptr<memory_model_baset> memory_model =
332
332
get_memory_model (options, ns);
333
- memory_model->set_message_handler (ui_message_handler);
334
- (*memory_model)(equation);
333
+ (*memory_model)(equation, ui_message_handler);
335
334
}
336
335
337
336
messaget log (ui_message_handler);
Original file line number Diff line number Diff line change @@ -20,7 +20,7 @@ class memory_model_baset : public partial_order_concurrencyt
20
20
explicit memory_model_baset (const namespacet &_ns);
21
21
virtual ~memory_model_baset ();
22
22
23
- virtual void operator ()(symex_target_equationt &) = 0;
23
+ virtual void operator ()(symex_target_equationt &, message_handlert & ) = 0;
24
24
25
25
protected:
26
26
// / In-thread program order
Original file line number Diff line number Diff line change 11
11
12
12
#include " memory_model_pso.h"
13
13
14
- void memory_model_psot::operator ()(symex_target_equationt &equation)
14
+ void memory_model_psot::
15
+ operator ()(symex_target_equationt &equation, message_handlert &message_handler)
15
16
{
16
- statistics () << " Adding PSO constraints" << eom;
17
+ messaget log{message_handler};
18
+ log.statistics () << " Adding PSO constraints" << messaget::eom;
17
19
18
- build_event_lists (equation);
20
+ build_event_lists (equation, message_handler );
19
21
build_clock_type ();
20
22
21
23
read_from (equation);
Original file line number Diff line number Diff line change @@ -22,7 +22,7 @@ class memory_model_psot:public memory_model_tsot
22
22
{
23
23
}
24
24
25
- virtual void operator ()(symex_target_equationt &equation);
25
+ virtual void operator ()(symex_target_equationt &equation, message_handlert & );
26
26
27
27
protected:
28
28
virtual bool program_order_is_relaxed (
Original file line number Diff line number Diff line change 13
13
14
14
#include < util/std_expr.h>
15
15
16
- void memory_model_sct::operator ()(symex_target_equationt &equation)
16
+ void memory_model_sct::
17
+ operator ()(symex_target_equationt &equation, message_handlert &message_handler)
17
18
{
18
- statistics () << " Adding SC constraints" << eom;
19
+ messaget log{message_handler};
20
+ log.statistics () << " Adding SC constraints" << messaget::eom;
19
21
20
- build_event_lists (equation);
22
+ build_event_lists (equation, message_handler );
21
23
build_clock_type ();
22
24
23
25
read_from (equation);
Original file line number Diff line number Diff line change @@ -22,7 +22,7 @@ class memory_model_sct:public memory_model_baset
22
22
{
23
23
}
24
24
25
- virtual void operator ()(symex_target_equationt &equation);
25
+ virtual void operator ()(symex_target_equationt &equation, message_handlert & );
26
26
27
27
protected:
28
28
virtual exprt before (event_it e1 , event_it e2 );
Original file line number Diff line number Diff line change 14
14
#include < util/std_expr.h>
15
15
#include < util/simplify_expr.h>
16
16
17
- void memory_model_tsot::operator ()(symex_target_equationt &equation)
17
+ void memory_model_tsot::
18
+ operator ()(symex_target_equationt &equation, message_handlert &message_handler)
18
19
{
19
- statistics () << " Adding TSO constraints" << eom;
20
+ messaget log{message_handler};
21
+ log.statistics () << " Adding TSO constraints" << messaget::eom;
20
22
21
- build_event_lists (equation);
23
+ build_event_lists (equation, message_handler );
22
24
build_clock_type ();
23
25
24
26
read_from (equation);
Original file line number Diff line number Diff line change @@ -22,7 +22,7 @@ class memory_model_tsot:public memory_model_sct
22
22
{
23
23
}
24
24
25
- virtual void operator ()(symex_target_equationt &equation);
25
+ virtual void operator ()(symex_target_equationt &equation, message_handlert & );
26
26
27
27
protected:
28
28
virtual exprt before (event_it e1 , event_it e2 );
Original file line number Diff line number Diff line change @@ -73,7 +73,8 @@ void partial_order_concurrencyt::add_init_writes(
73
73
}
74
74
75
75
void partial_order_concurrencyt::build_event_lists (
76
- symex_target_equationt &equation)
76
+ symex_target_equationt &equation,
77
+ message_handlert &message_handler)
77
78
{
78
79
add_init_writes (equation);
79
80
@@ -107,6 +108,7 @@ void partial_order_concurrencyt::build_event_lists(
107
108
}
108
109
}
109
110
111
+ messaget log{message_handler};
110
112
for (address_mapt::const_iterator
111
113
a_it=address_map.begin ();
112
114
a_it!=address_map.end ();
@@ -116,9 +118,8 @@ void partial_order_concurrencyt::build_event_lists(
116
118
if (a_rec.reads .empty ())
117
119
continue ;
118
120
119
- statistics () << " Shared " << a_it->first << " : "
120
- << a_rec.reads .size () << " R/"
121
- << a_rec.writes .size () << " W" << eom;
121
+ log.statistics () << " Shared " << a_it->first << " : " << a_rec.reads .size ()
122
+ << " R/" << a_rec.writes .size () << " W" << messaget::eom;
122
123
}
123
124
}
124
125
Original file line number Diff line number Diff line change 12
12
#ifndef CPROVER_GOTO_SYMEX_PARTIAL_ORDER_CONCURRENCY_H
13
13
#define CPROVER_GOTO_SYMEX_PARTIAL_ORDER_CONCURRENCY_H
14
14
15
- #include < util/message.h>
16
-
17
15
#include " symex_target_equation.h"
18
16
19
17
// / Base class for implementing memory models via additional constraints for
20
18
// / SSA equations. Provides methods for encoding ordering of shared read/write
21
19
// / events.
22
- class partial_order_concurrencyt : public messaget
20
+ class partial_order_concurrencyt
23
21
{
24
22
public:
25
23
explicit partial_order_concurrencyt (const namespacet &_ns);
@@ -67,7 +65,10 @@ class partial_order_concurrencyt:public messaget
67
65
// / 2) the _numbering_ map (with per-thread unique number of every event)
68
66
// / \param equation: the target equation (containing the events to be
69
67
// / processed)
70
- void build_event_lists (symex_target_equationt &);
68
+ // / \param message_handler: message handler to output statistics
69
+ void build_event_lists (
70
+ symex_target_equationt &equation,
71
+ message_handlert &message_handler);
71
72
72
73
// / For each shared read event and for each shared write event that appears
73
74
// / after spawn or has false _guard_ prepend a shared write SSA step with
You can’t perform that action at this time.
0 commit comments