CBMC
cfg_dominators.h File Reference

Compute dominators for CFG of goto_function. More...

#include <set>
#include <list>
#include <map>
#include <iosfwd>
#include <goto-programs/goto_functions.h>
#include <goto-programs/goto_program.h>
#include <goto-programs/cfg.h>
+ Include dependency graph for cfg_dominators.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  cfg_dominators_templatet< P, T, post_dom >
 Dominator graph. More...
 
struct  cfg_dominators_templatet< P, T, post_dom >::nodet
 

Typedefs

typedef cfg_dominators_templatet< const goto_programt, goto_programt::const_targett, false > cfg_dominatorst
 
typedef cfg_dominators_templatet< const goto_programt, goto_programt::const_targett, true > cfg_post_dominatorst
 

Functions

template<class P , class T , bool post_dom>
std::ostream & operator<< (std::ostream &out, const cfg_dominators_templatet< P, T, post_dom > &cfg_dominators)
 Print the result of the dominator computation. More...
 
template<class T >
void dominators_pretty_print_node (const T &node, std::ostream &out)
 Pretty-print a single node in the dominator tree. More...
 
void dominators_pretty_print_node (const goto_programt::targett &target, std::ostream &out)
 
template<>
void dominators_pretty_print_node (const goto_programt::const_targett &node, std::ostream &out)
 

Detailed Description

Compute dominators for CFG of goto_function.

Definition in file cfg_dominators.h.

Typedef Documentation

◆ cfg_dominatorst

◆ cfg_post_dominatorst

Function Documentation

◆ dominators_pretty_print_node() [1/3]

template<>
void dominators_pretty_print_node ( const goto_programt::const_targett node,
std::ostream &  out 
)
inline

Definition at line 308 of file cfg_dominators.h.

◆ dominators_pretty_print_node() [2/3]

void dominators_pretty_print_node ( const goto_programt::targett target,
std::ostream &  out 
)
inline

Definition at line 267 of file cfg_dominators.h.

◆ dominators_pretty_print_node() [3/3]

template<class T >
void dominators_pretty_print_node ( const T &  node,
std::ostream &  out 
)

Pretty-print a single node in the dominator tree.

Supply a specialisation if operator<< is not sufficient.

Parameters
nodenode to print
outstream to pretty-print it to

Definition at line 262 of file cfg_dominators.h.

◆ operator<<()

template<class P , class T , bool post_dom>
std::ostream& operator<< ( std::ostream &  out,
const cfg_dominators_templatet< P, T, post_dom > &  cfg_dominators 
)

Print the result of the dominator computation.

Definition at line 121 of file cfg_dominators.h.