Otawa
0.10
|
The DFAEngine implements an extended Iterative Data Flow Algorithm, that is, it work on graphs with any forms. More...
#include <otawa/dfa/XIterativeDFA.h>
Public Member Functions | |
XIterativeDFA (V &visitor) | |
Build an iterative DFA with the given visitor. More... | |
~XIterativeDFA (void) | |
void | process (void) |
void | nextPred (int pred) |
This functions is used internally to communicate with the visitor. More... | |
V::domain_t * | in (const typename V::key_t &key) |
V::domain_t * | out (const typename V::key_t &key) |
V::domain_t * | gen (const typename V::key_t &key) |
V::domain_t * | preserve (const typename V::key_t &key) |
Private Attributes | |
V & | visit |
int | size |
V::domain_t ** | outs |
V::domain_t ** | gens |
V::domain_t ** | preserves |
V::domain_t * | new_out |
V::domain_t ** | ins |
The DFAEngine implements an extended Iterative Data Flow Algorithm, that is, it work on graphs with any forms.
Basically, it just apply the GEN/KILL computation to a set of nodes until reaching a fix point.
V | the used visitor type. It must have the following signature (nodes are identified by an integer index). |
The V parameter must implement the following concept:
The V::domain_t type must implements the following concept :
Known visitors includes:
|
inline |
Build an iterative DFA with the given visitor.
visitor | Visitor to use. |
References otawa::dfa::XIterativeDFA< V >::gens, otawa::dfa::XIterativeDFA< V >::ins, otawa::dfa::XIterativeDFA< V >::outs, otawa::dfa::XIterativeDFA< V >::preserves, otawa::dfa::XIterativeDFA< V >::size, and otawa::dfa::XIterativeDFA< V >::visit.
|
inline |
|
inline |
|
inline |
References otawa::dfa::XIterativeDFA< V >::ins, and otawa::dfa::XIterativeDFA< V >::visit.
Referenced by otawa::cat::CATBuilder::processLBlockSet(), and otawa::ccg::Builder::processLBlockSet().
|
inline |
This functions is used internally to communicate with the visitor.
When the visitor function visitPreds() is called, the visitor will call this functione each time a predecessor is found.
pred | Current predecessor. |
|
inline |
|
inline |
|
inline |
Referenced by otawa::cat::CATBuilder::processLBlockSet(), and otawa::ccg::Builder::processLBlockSet().
|
private |
Referenced by otawa::dfa::XIterativeDFA< V >::gen(), and otawa::dfa::XIterativeDFA< V >::XIterativeDFA().
|
private |
Referenced by otawa::dfa::XIterativeDFA< V >::in(), and otawa::dfa::XIterativeDFA< V >::XIterativeDFA().
|
private |
|
private |
Referenced by otawa::dfa::XIterativeDFA< V >::out(), and otawa::dfa::XIterativeDFA< V >::XIterativeDFA().
|
private |
|
private |
Referenced by otawa::dfa::XIterativeDFA< V >::XIterativeDFA().
|
private |