CBMC
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
variable_sensitivity_dependence_grapht Class Reference

#include <variable_sensitivity_dependence_graph.h>

+ Inheritance diagram for variable_sensitivity_dependence_grapht:
+ Collaboration diagram for variable_sensitivity_dependence_grapht:

Public Types

 
- Public Types inherited from ai_baset
 
 
 
 
 
 
- Public Types inherited from grapht< vs_dep_nodet >
 
 
typedef std::vector< nodetnodest
 
 
 
typedef std::list< node_indextpatht
 

Public Member Functions

 
void  initialize (const irep_idt &function_id, const goto_programt &goto_program)
  Initialize all the abstract states for a single function.
 
  Override this to add a cleanup or post-processing step after fixedpoint has run.
 
 
 
- Public Member Functions inherited from ai_three_way_merget
  ai_three_way_merget (std::unique_ptr< ai_history_factory_baset > &&hf, std::unique_ptr< ai_domain_factory_baset > &&df, std::unique_ptr< ai_storage_baset > &&st, message_handlert &mh)
 
- Public Member Functions inherited from ai_recursive_interproceduralt
  ai_recursive_interproceduralt (std::unique_ptr< ai_history_factory_baset > &&hf, std::unique_ptr< ai_domain_factory_baset > &&df, std::unique_ptr< ai_storage_baset > &&st, message_handlert &mh)
 
- Public Member Functions inherited from ai_baset
  ai_baset (std::unique_ptr< ai_history_factory_baset > &&hf, std::unique_ptr< ai_domain_factory_baset > &&df, std::unique_ptr< ai_storage_baset > &&st, message_handlert &mh)
 
 
void  operator() (const irep_idt &function_id, const goto_programt &goto_program, const namespacet &ns)
  Run abstract interpretation on a single function.
 
  Run abstract interpretation on a whole program.
 
  Run abstract interpretation on a whole program.
 
  Run abstract interpretation on a single function.
 
  Returns all of the histories that have reached the start of the instruction.
 
  Returns all of the histories that have reached the end of the instruction.
 
  Get a copy of the abstract state before the given instruction, without needing to know what kind of domain or history is used.
 
  Get a copy of the abstract state after the given instruction, without needing to know what kind of domain or history is used.
 
  The same interfaces but with histories.
 
 
  Reset the abstract state.
 
virtual void  output (const namespacet &ns, const irep_idt &function_id, const goto_programt &goto_program, std::ostream &out) const
  Output the abstract states for a single function.
 
  Output the abstract states for a single function as JSON.
 
virtual xmlt  output_xml (const namespacet &ns, const irep_idt &function_id, const goto_programt &goto_program) const
  Output the abstract states for a single function as XML.
 
virtual void  output (const namespacet &ns, const goto_functionst &goto_functions, std::ostream &out) const
  Output the abstract states for a whole program.
 
void  output (const goto_modelt &goto_model, std::ostream &out) const
  Output the abstract states for a whole program.
 
void  output (const namespacet &ns, const goto_functionst::goto_functiont &goto_function, std::ostream &out) const
  Output the abstract states for a function.
 
  Output the abstract states for the whole program as JSON.
 
  Output the abstract states for a whole program as JSON.
 
  Output the abstract states for a single function as JSON.
 
  Output the abstract states for a single function as JSON.
 
  Output the abstract states for the whole program as XML.
 
  Output the abstract states for the whole program as XML.
 
  Output the abstract states for a single function as XML.
 
  Output the abstract states for a single function as XML.
 
- Public Member Functions inherited from grapht< vs_dep_nodet >
node_indext  add_node (arguments &&... values)
 
void  swap (grapht &other)
 
 
 
 
 
std::size_t  size () const
 
 
 
 
 
 
 
 
 
 
 
 
void  clear ()
 
 
 
 
  Run depth-first search on the graph, starting from a single source node.
 
std::vector< node_indextget_reachable (const std::vector< node_indext > &src, bool forwards) const
  Run depth-first search on the graph, starting from multiple source nodes.
 
  Removes any edges between nodes in a graph that are unreachable from a given start node.
 
void  disconnect_unreachable (const std::vector< node_indext > &src)
  Removes any edges between nodes in a graph that are unreachable from a vector of start nodes.
 
std::vector< typename N::node_indext >  depth_limited_search (typename N::node_indext src, std::size_t limit) const
  Run recursive depth-limited search on the graph, starting from multiple source nodes, to find the nodes reachable within n steps.
 
std::vector< typename N::node_indext >  depth_limited_search (std::vector< typename N::node_indext > &src, std::size_t limit) const
  Run recursive depth-limited search on the graph, starting from multiple source nodes, to find the nodes reachable within n steps.
 
  Ensure a graph is chordal (contains no 4+-cycles without an edge crossing the cycle) by adding extra edges.
 
std::size_t  connected_subgraphs (std::vector< node_indext > &subgraph_nr)
  Find connected subgraphs in an undirected graph.
 
std::size_t  SCCs (std::vector< node_indext > &subgraph_nr) const
  Computes strongly-connected components of a graph and yields a vector expressing a mapping from nodes to components indices.
 
 
std::list< node_indexttopsort () const
  Find a topological order of the nodes if graph is DAG, return empty list for non-DAG or empty graph.
 
 
 
void  output_dot (std::ostream &out) const
 
 
 

Protected Member Functions

 
 
  Get the state for the given history, creating it with the factory if it doesn't exist.
 
- Protected Member Functions inherited from ai_three_way_merget
 
- Protected Member Functions inherited from ai_baset
  Initialize all the abstract states for a single function.
 
  Initialize all the abstract states for a whole program.
 
  Set the abstract state of the entry location of a single function to the entry state required by the analysis.
 
  Set the abstract state of the entry location of a whole program to the entry state required by the analysis.
 
  Get the next location from the work queue.
 
 
  Run the fixedpoint algorithm until it reaches a fixed point.
 
 
  Perform one step of abstract interpretation from trace t Depending on the instruction type it may compute a number of "edges" or applications of the abstract transformer.
 
 
 
 
  Merge the state src, flowing from tracet from to tracet to, into the state currently stored for tracet to.
 
virtual std::unique_ptr< statetmake_temporary_state (const statet &s)
  Make a copy of a state.
 
- Protected Member Functions inherited from grapht< vs_dep_nodet >
 
std::vector< typename N::node_indext >  depth_limited_search (std::vector< typename N::node_indext > &src, std::size_t limit, std::vector< bool > &visited) const
  Run recursive depth-limited search on the graph, starting from multiple source nodes, to find the nodes reachable within n steps.
 
void  tarjan (class tarjant &t, node_indext v) const
 

Protected Attributes

 
 
 
 
 
- Protected Attributes inherited from ai_baset
  For creating history objects.
 
  For creating domain objects.
 
std::unique_ptr< ai_storage_basetstorage
 
 
- Protected Attributes inherited from grapht< vs_dep_nodet >
 

Friends

 

Additional Inherited Members

- Protected Types inherited from ai_baset
  The work queue, sorted using the history's ordering operator.
 

Detailed Description

Definition at line 217 of file variable_sensitivity_dependence_graph.h.

Member Typedef Documentation

◆  post_dominators_mapt

Definition at line 241 of file variable_sensitivity_dependence_graph.h.

Constructor & Destructor Documentation

◆  variable_sensitivity_dependence_grapht()

variable_sensitivity_dependence_grapht::variable_sensitivity_dependence_grapht ( const goto_functionstgoto_functions,
const namespacet_ns,
const vsd_configt_configuration,
message_handlertmessage_handler 
)
explicit

Definition at line 633 of file variable_sensitivity_dependence_graph.cpp.

Member Function Documentation

◆  add_dep()

void variable_sensitivity_dependence_grapht::add_dep ( vs_dep_edget::kindt  kind,
)

Definition at line 652 of file variable_sensitivity_dependence_graph.cpp.

◆  cfg_post_dominators()

post_dominators_mapt & variable_sensitivity_dependence_grapht::cfg_post_dominators ( )
inline

Definition at line 272 of file variable_sensitivity_dependence_graph.h.

◆  finalize()

void variable_sensitivity_dependence_grapht::finalize ( )
inlinevirtual

Override this to add a cleanup or post-processing step after fixedpoint has run.

Reimplemented from ai_baset.

Definition at line 256 of file variable_sensitivity_dependence_graph.h.

◆  get_state() [1/2]

virtual statet & variable_sensitivity_dependence_grapht::get_state ( locationt  l )
inlineprotectedvirtual

Definition at line 224 of file variable_sensitivity_dependence_graph.h.

◆  get_state() [2/2]

virtual statet & ai_baset::get_state ( trace_ptrt  p )
inlineprotectedvirtual

Get the state for the given history, creating it with the factory if it doesn't exist.

Reimplemented from ai_baset.

Definition at line 519 of file ai.h.

◆  initialize()

void variable_sensitivity_dependence_grapht::initialize ( const irep_idtfunction_id,
const goto_programtgoto_program 
)
inlinevirtual

Initialize all the abstract states for a single function.

Override this to do custom per-domain initialization.

Reimplemented from ai_baset.

Definition at line 251 of file variable_sensitivity_dependence_graph.h.

◆  operator[]()

variable_sensitivity_dependence_domaint & variable_sensitivity_dependence_grapht::operator[] ( locationt  l )
inlineprotected

Definition at line 230 of file variable_sensitivity_dependence_graph.h.

Friends And Related Symbol Documentation

◆  variable_sensitivity_dependence_domaint

Definition at line 239 of file variable_sensitivity_dependence_graph.h.

Member Data Documentation

◆  goto_functions

const goto_functionst& variable_sensitivity_dependence_grapht::goto_functions
protected

Definition at line 280 of file variable_sensitivity_dependence_graph.h.

◆  ns

const namespacet& variable_sensitivity_dependence_grapht::ns
protected

Definition at line 281 of file variable_sensitivity_dependence_graph.h.

◆  post_dominators

post_dominators_mapt variable_sensitivity_dependence_grapht::post_dominators
protected

Definition at line 283 of file variable_sensitivity_dependence_graph.h.

◆  variable_sensitivity_dependence_domain_factoryt

friend variable_sensitivity_dependence_grapht::variable_sensitivity_dependence_domain_factoryt
protected

Definition at line 278 of file variable_sensitivity_dependence_graph.h.

◆  variable_sensitivity_dependence_domaint

friend variable_sensitivity_dependence_grapht::variable_sensitivity_dependence_domaint
protected

Definition at line 279 of file variable_sensitivity_dependence_graph.h.


The documentation for this class was generated from the following files:

AltStyle によって変換されたページ (->オリジナル) /