Otawa
0.10
|
This class implements the visitor concept of XIterativeDFA class and allows applying an analysis on a collection of CFG in a flow-insensitive way. More...
#include <otawa/dfa/XCFGVisitor.h>
Classes | |
struct | node_t |
Public Types | |
typedef P::domain_t | domain_t |
typedef Pair< CFG *, BasicBlock * > | key_t |
Public Member Functions | |
XCFGVisitor (const CFGCollection &cfgs, P &domain) | |
Build the visitor to apply on the given domain and CFG collection. More... | |
~XCFGVisitor (void) | |
domain_t * | empty (void) |
void | free (domain_t *d) |
domain_t * | gen (int node) |
domain_t * | preserve (int node) |
int | index (const key_t &key) |
int | size (void) |
void | visitPreds (XIterativeDFA< XCFGVisitor< P > > &engine, int node) |
void | visitSuccs (XIterativeDFA< XCFGVisitor< P > > &engine, int node) |
Private Types | |
typedef struct otawa::dfa::XCFGVisitor::node_t | node_t |
Private Attributes | |
P & | dom |
const CFGCollection & | cfgs |
FragTable< node_t > | nodes |
int * | offs |
Vector< int > * | preds |
This class implements the visitor concept of XIterativeDFA class and allows applying an analysis on a collection of CFG in a flow-insensitive way.
P | Problem to resolve. |
The problem concept must implements the following concept:
The domain_t type must implements the following concept:
typedef P::domain_t otawa::dfa::XCFGVisitor< P >::domain_t |
typedef Pair<CFG *, BasicBlock *> otawa::dfa::XCFGVisitor< P >::key_t |
|
private |
otawa::dfa::XCFGVisitor< P >::XCFGVisitor | ( | const CFGCollection & | cfgs, |
P & | domain | ||
) |
Build the visitor to apply on the given domain and CFG collection.
cfgs | CFG collection to work on. |
problem | Problem to resolve. |
References elm::genstruct::Vector< T >::add(), otawa::cfgio::bb(), otawa::Edge::CALL, otawa::cfgio::called(), otawa::cfgio::cfg(), otawa::dfa::XCFGVisitor< P >::cfgs, otawa::cfgio::edge(), otawa::dfa::INDEX, otawa::dfa::XCFGVisitor< P >::nodes, otawa::BasicBlock::number(), otawa::dfa::XCFGVisitor< P >::offs, and otawa::dfa::XCFGVisitor< P >::preds.
otawa::dfa::XCFGVisitor< D >::~XCFGVisitor | ( | void | ) |
References otawa::cfgio::cfg(), and otawa::dfa::INDEX.
|
inline |
|
inline |
|
inline |
References otawa::cfgio::bb(), and otawa::cfgio::cfg().
|
inline |
References elm::Pair< T1, T2 >::fst, otawa::dfa::INDEX, otawa::INDEX, and elm::Pair< T1, T2 >::snd.
|
inline |
References otawa::cfgio::bb(), and otawa::cfgio::cfg().
|
inline |
void otawa::dfa::XCFGVisitor< D >::visitPreds | ( | XIterativeDFA< XCFGVisitor< P > > & | engine, |
int | node | ||
) |
void otawa::dfa::XCFGVisitor< D >::visitSuccs | ( | XIterativeDFA< XCFGVisitor< P > > & | engine, |
int | node | ||
) |
|
private |
Referenced by otawa::dfa::XCFGVisitor< P >::XCFGVisitor().
|
private |
|
private |
Referenced by otawa::dfa::XCFGVisitor< P >::XCFGVisitor().
|
private |
Referenced by otawa::dfa::XCFGVisitor< P >::XCFGVisitor().
|
private |
Referenced by otawa::dfa::XCFGVisitor< P >::XCFGVisitor().