|
CBMC
|
#include <variable_sensitivity_dependence_graph.h>
Inheritance diagram for variable_sensitivity_dependence_domaint:
Collaboration diagram for variable_sensitivity_dependence_domaint:Classes | |
| class | dependency_ordert |
Public Types | |
| typedef grapht< vs_dep_nodet >::node_indext | node_indext |
Public Types inherited from ai_domain_baset | |
| typedef goto_programt::const_targett | locationt |
| typedef ai_history_baset::trace_ptrt | trace_ptrt |
Private Types | |
| typedef std::map< goto_programt::const_targett, std::set< exprt >, dependency_ordert > | data_depst |
| typedef std::map< goto_programt::const_targett, tvt, goto_programt::target_less_than > | control_depst |
| typedef std::set< goto_programt::const_targett, goto_programt::target_less_than > | control_dep_candidatest |
| typedef std::set< goto_programt::const_targett, goto_programt::target_less_than > | control_dep_callst |
Private Member Functions | |
| void | eval_data_deps (const exprt &expr, const namespacet &ns, data_depst &deps) const |
| Evaluate an expression and accumulate all the data dependencies involved in the evaluation. | |
| void | control_dependencies (const irep_idt &from_function, goto_programt::const_targett from, const irep_idt &to_function, goto_programt::const_targett to, variable_sensitivity_dependence_grapht &dep_graph) |
| void | data_dependencies (goto_programt::const_targett from, goto_programt::const_targett to, variable_sensitivity_dependence_grapht &dep_graph, const namespacet &ns) |
| bool | merge_control_dependencies (const control_depst &other_control_deps, const control_dep_candidatest &other_control_dep_candidates, const control_dep_callst &other_control_dep_calls, const control_dep_callst &other_control_dep_call_candidates) |
Additional Inherited Members | |
Protected Member Functions inherited from ai_domain_baset | |
| ai_domain_baset () | |
| The constructor is expected to produce 'false' or 'bottom' A default constructor is not part of the domain interface. | |
| ai_domain_baset (const ai_domain_baset &old) | |
| A copy constructor is part of the domain interface. | |
Definition at line 70 of file variable_sensitivity_dependence_graph.h.
|
private |
Definition at line 188 of file variable_sensitivity_dependence_graph.h.
|
private |
Definition at line 183 of file variable_sensitivity_dependence_graph.h.
|
private |
Definition at line 178 of file variable_sensitivity_dependence_graph.h.
|
private |
Definition at line 173 of file variable_sensitivity_dependence_graph.h.
Definition at line 74 of file variable_sensitivity_dependence_graph.h.
|
inlineexplicit |
Definition at line 76 of file variable_sensitivity_dependence_graph.h.
|
private |
Definition at line 204 of file variable_sensitivity_dependence_graph.cpp.
|
private |
Definition at line 135 of file variable_sensitivity_dependence_graph.cpp.
|
private |
Evaluate an expression and accumulate all the data dependencies involved in the evaluation.
| expr | the expression to evaluate |
| ns | the namespace to use |
| deps | the destination in which to accumlate data dependencies |
Definition at line 27 of file variable_sensitivity_dependence_graph.cpp.
|
inline |
Definition at line 148 of file variable_sensitivity_dependence_graph.h.
|
inlineoverridevirtual |
Implements ai_domain_baset.
Definition at line 119 of file variable_sensitivity_dependence_graph.h.
|
inlineoverridevirtual |
Implements ai_domain_baset.
Definition at line 124 of file variable_sensitivity_dependence_graph.h.
|
inlineoverridevirtual |
no states
Implements ai_domain_baset.
Definition at line 95 of file variable_sensitivity_dependence_graph.h.
|
inlineoverridevirtual |
all states – the analysis doesn't use this directly (see make_entry) and domains may refuse to implement it.
Implements ai_domain_baset.
Definition at line 107 of file variable_sensitivity_dependence_graph.h.
|
overridevirtual |
Computes the join between "this" and "b".
| b | the other domain |
| from | the location preceding the 'b' domain |
| to | the current location |
Reimplemented from variable_sensitivity_domaint.
Definition at line 404 of file variable_sensitivity_dependence_graph.cpp.
|
private |
Definition at line 314 of file variable_sensitivity_dependence_graph.cpp.
|
overridevirtual |
Merges just the things that have changes between "function_start" and "function_end" into "this".
To be used correctly "this" must be derived from the function call site. Anything that is not modified in the function (such as globals) will not be changed.
| function_start | The base of the diff - changes that have been made between here and the end will be retained. |
| function_end | The end of the merge - changes that have been made between the start and here will be retained. |
| ns | The global namespace |
Reimplemented from variable_sensitivity_domaint.
Definition at line 443 of file variable_sensitivity_dependence_graph.cpp.
|
overridevirtual |
Basic text output of the abstract domain.
| out | the stream to output onto |
| ai | the abstract domain |
| ns | the namespace |
Reimplemented from ai_domain_baset.
Definition at line 464 of file variable_sensitivity_dependence_graph.cpp.
|
overridevirtual |
Outputs the current value of the domain.
| ai | the abstract interpreter |
| ns | the namespace |
Reimplemented from ai_domain_baset.
Definition at line 534 of file variable_sensitivity_dependence_graph.cpp.
| void variable_sensitivity_dependence_domaint::populate_dep_graph | ( | variable_sensitivity_dependence_grapht & | dep_graph, |
| goto_programt::const_targett | this_loc | ||
| ) | const |
Definition at line 587 of file variable_sensitivity_dependence_graph.cpp.
|
overridevirtual |
Compute the abstract transformer for a single instruction.
For the data dependencies, this involves calculating all the data dependencies that exist in the 'to' instruction.
| function_from | the function of the instruction before the abstract domain |
| trace_from | the instruction before the abstract domain |
| function_to | the function of the instruction after the abstract domain |
| trace_to | the instruction after the abstract domain |
| ai | the abstract interpreter |
| ns | the namespace |
Implements ai_domain_baset.
Definition at line 68 of file variable_sensitivity_dependence_graph.cpp.
|
private |
Definition at line 190 of file variable_sensitivity_dependence_graph.h.
|
private |
Definition at line 189 of file variable_sensitivity_dependence_graph.h.
|
private |
Definition at line 184 of file variable_sensitivity_dependence_graph.h.
|
private |
Definition at line 179 of file variable_sensitivity_dependence_graph.h.
|
private |
Definition at line 174 of file variable_sensitivity_dependence_graph.h.
|
private |
Definition at line 159 of file variable_sensitivity_dependence_graph.h.
|
private |
Definition at line 158 of file variable_sensitivity_dependence_graph.h.
|
private |
Definition at line 157 of file variable_sensitivity_dependence_graph.h.