|
cprover
|
#include <goto2graph.h>
Public Types | |
| typedef std::multimap< irep_idt, event_idt > | id2nodet |
| typedef std::pair< irep_idt, event_idt > | id2node_pairt |
| typedef std::pair< event_idt, event_idt > | nodet |
| typedef std::map< goto_programt::const_targett, std::set< nodet >, goto_programt::target_less_than > | incoming_post |
Public Member Functions | |
| virtual | ~cfg_visitort () |
| cfg_visitort (namespacet &_ns, instrumentert &_instrumenter) | |
| void | enter_function (const irep_idt &function_id) |
| void | leave_function (const irep_idt &function_id) |
| void | visit_cfg (value_setst &value_sets, memory_modelt model, bool no_dependencies, loop_strategyt duplicate_body, const irep_idt &function_id) |
| virtual void | visit_cfg_function (value_setst &value_sets, memory_modelt model, bool no_dependencies, loop_strategyt duplicate_body, const irep_idt &function_id, std::set< nodet > &ending_vertex) |
| TODO: move the visitor outside, and inherit. | |
| bool | local (const irep_idt &i) |
Public Attributes | |
| unsigned | max_thread |
| id2nodet | map_reads |
| id2nodet | map_writes |
| unsigned | write_counter |
| unsigned | read_counter |
| unsigned | ws_counter |
| unsigned | fr_rf_counter |
| incoming_post | in_pos |
| std::set< goto_programt::const_targett, goto_programt::target_less_than > | updated |
| incoming_post | out_pos |
| unsigned | thread |
| data_dpt | data_dp |
| std::set< event_idt > | unknown_read_nodes |
| std::set< event_idt > | unknown_write_nodes |
| std::set< irep_idt > | functions_met |
Protected Member Functions | |
| bool | contains_shared_array (const irep_idt &function_id, goto_programt::const_targett targ, goto_programt::const_targett i_it, value_setst &value_sets) const |
| void | visit_cfg_thread () const |
| void | visit_cfg_propagate (goto_programt::instructionst::iterator i_it) |
| void | visit_cfg_body (const irep_idt &function_id, const goto_programt &goto_program, goto_programt::const_targett i_it, loop_strategyt replicate_body, value_setst &value_sets) |
| strategy: fwd/bwd alternation | |
| void | visit_cfg_backedge (goto_programt::const_targett targ, goto_programt::const_targett i_it) |
| strategy: fwd/bwd alternation | |
| void | visit_cfg_duplicate (const goto_programt &goto_program, goto_programt::const_targett targ, goto_programt::const_targett i_it) |
| void | visit_cfg_assign (value_setst &value_sets, const irep_idt &function_id, goto_programt::instructionst::iterator &i_it, bool no_dependencies) |
| void | visit_cfg_fence (goto_programt::instructionst::iterator i_it, const irep_idt &function_id) |
| void | visit_cfg_skip (goto_programt::instructionst::iterator i_it) |
| void | visit_cfg_lwfence (goto_programt::instructionst::iterator i_it, const irep_idt &function_id) |
| void | visit_cfg_asm_fence (goto_programt::instructionst::iterator i_it, const irep_idt &function_id) |
| void | visit_cfg_function_call (value_setst &value_sets, goto_programt::instructionst::iterator i_it, memory_modelt model, bool no_dependenciess, loop_strategyt duplicate_body) |
| void | visit_cfg_goto (const irep_idt &function_id, const goto_programt &goto_program, goto_programt::instructionst::iterator i_it, loop_strategyt replicate_body, value_setst &value_sets) |
| void | visit_cfg_reference_function (irep_idt id_function) |
| references the first and last edges of the function | |
Protected Attributes | |
| namespacet & | ns |
| instrumentert & | instrumenter |
| event_grapht & | egraph |
| std::vector< std::set< event_idt > > & | egraph_SCCs |
| wmm_grapht & | egraph_alt |
| unsigned | current_thread |
| unsigned | coming_from |
Definition at line 86 of file goto2graph.h.
| typedef std::pair<irep_idt, event_idt> instrumentert::cfg_visitort::id2node_pairt |
Definition at line 181 of file goto2graph.h.
| typedef std::multimap<irep_idt, event_idt> instrumentert::cfg_visitort::id2nodet |
Definition at line 180 of file goto2graph.h.
| typedef std::map< goto_programt::const_targett, std::set<nodet>, goto_programt::target_less_than> instrumentert::cfg_visitort::incoming_post |
Definition at line 195 of file goto2graph.h.
| typedef std::pair<event_idt, event_idt> instrumentert::cfg_visitort::nodet |
Definition at line 190 of file goto2graph.h.
|
inlinevirtual |
Definition at line 173 of file goto2graph.h.
|
inline |
Definition at line 230 of file goto2graph.h.
|
protected |
Definition at line 408 of file goto2graph.cpp.
|
inline |
Definition at line 245 of file goto2graph.h.
|
inline |
Definition at line 252 of file goto2graph.h.
|
inline |
Definition at line 81 of file goto2graph.cpp.
|
inline |
Definition at line 257 of file goto2graph.h.
|
protected |
Definition at line 788 of file goto2graph.cpp.
|
protected |
Definition at line 841 of file goto2graph.cpp.
|
inlineprotected |
strategy: fwd/bwd alternation
Definition at line 583 of file goto2graph.cpp.
|
inlineprotected |
strategy: fwd/bwd alternation
Definition at line 464 of file goto2graph.cpp.
|
inlineprotected |
Definition at line 517 of file goto2graph.cpp.
|
protected |
Definition at line 1178 of file goto2graph.cpp.
|
virtual |
TODO: move the visitor outside, and inherit.
| value_sets | Value_sets and options |
| model | Memory model |
| no_dependencies | Option to disable dependency analysis |
| duplicate_body | Control which loop body segments should be duplicated |
| function_id | Function to analyse |
| ending_vertex | Outcoming edges |
Definition at line 148 of file goto2graph.cpp.
|
protected |
Definition at line 687 of file goto2graph.cpp.
|
protected |
Definition at line 649 of file goto2graph.cpp.
|
protected |
Definition at line 749 of file goto2graph.cpp.
|
inlineprotected |
Definition at line 294 of file goto2graph.cpp.
|
inlineprotected |
references the first and last edges of the function
Definition at line 316 of file goto2graph.cpp.
|
protected |
Definition at line 1220 of file goto2graph.cpp.
|
protected |
Definition at line 306 of file goto2graph.cpp.
|
protected |
Definition at line 99 of file goto2graph.h.
|
protected |
Definition at line 98 of file goto2graph.h.
| data_dpt instrumentert::cfg_visitort::data_dp |
Definition at line 221 of file goto2graph.h.
|
protected |
Definition at line 93 of file goto2graph.h.
|
protected |
Definition at line 95 of file goto2graph.h.
|
protected |
Definition at line 94 of file goto2graph.h.
| unsigned instrumentert::cfg_visitort::fr_rf_counter |
Definition at line 187 of file goto2graph.h.
| std::set<irep_idt> instrumentert::cfg_visitort::functions_met |
Definition at line 228 of file goto2graph.h.
| incoming_post instrumentert::cfg_visitort::in_pos |
Definition at line 197 of file goto2graph.h.
|
protected |
Definition at line 90 of file goto2graph.h.
| id2nodet instrumentert::cfg_visitort::map_reads |
Definition at line 182 of file goto2graph.h.
| id2nodet instrumentert::cfg_visitort::map_writes |
Definition at line 182 of file goto2graph.h.
| unsigned instrumentert::cfg_visitort::max_thread |
Definition at line 177 of file goto2graph.h.
|
protected |
Definition at line 89 of file goto2graph.h.
| incoming_post instrumentert::cfg_visitort::out_pos |
Definition at line 202 of file goto2graph.h.
| unsigned instrumentert::cfg_visitort::read_counter |
Definition at line 185 of file goto2graph.h.
| unsigned instrumentert::cfg_visitort::thread |
Definition at line 218 of file goto2graph.h.
| std::set<event_idt> instrumentert::cfg_visitort::unknown_read_nodes |
Definition at line 224 of file goto2graph.h.
| std::set<event_idt> instrumentert::cfg_visitort::unknown_write_nodes |
Definition at line 225 of file goto2graph.h.
| std::set<goto_programt::const_targett, goto_programt::target_less_than> instrumentert::cfg_visitort::updated |
Definition at line 199 of file goto2graph.h.
| unsigned instrumentert::cfg_visitort::write_counter |
Definition at line 184 of file goto2graph.h.
| unsigned instrumentert::cfg_visitort::ws_counter |
Definition at line 186 of file goto2graph.h.