Otawa
0.10
|
This listener gathers in an array the LUB of the in-states for all analyzed basic blocks. More...
#include <otawa/dfa/hai/WideningListener.h>
Public Types | |
typedef P | Problem |
Public Member Functions | |
WideningListener (WorkSpace *_fw, Problem &_prob, bool _store_out=false) | |
~WideningListener () | |
void | blockInterpreted (const WideningFixPoint< WideningListener > *fp, BasicBlock *bb, const typename Problem::Domain &in, const typename Problem::Domain &out, CFG *cur_cfg, elm::genstruct::Vector< Edge * > *callStack) const |
This is called whenever a block is processed. More... | |
void | fixPointReached (const WideningFixPoint< WideningListener > *fp, BasicBlock *bb) |
This is called whenever a loop's fixpoint is reached. More... | |
Problem & | getProb () |
Public Attributes | |
Problem::Domain *** | results |
Problem::Domain *** | results_out |
Static Public Attributes | |
static Identifier< typename Problem::Domain * > | BB_OUT_STATE |
PRIVATE - DO NOT USE. More... | |
Private Attributes | |
WorkSpace * | fw |
Problem & | prob |
bool | store_out |
This listener gathers in an array the LUB of the in-states for all analyzed basic blocks.
At the end of the analysis, you can access result[CFGNUMBER][BBNUMBER] to obtain the in-state of the basic block BBNUMBER of cfg CFGNUMBER.
typedef P otawa::dfa::hai::WideningListener< P >::Problem |
|
inline |
References otawa::cfgio::cfg(), otawa::CFGCollection::count(), otawa::CFG::countBB(), otawa::dfa::hai::WideningListener< P >::fw, otawa::CFGCollection::get(), otawa::INVOLVED_CFGS, otawa::dfa::hai::WideningListener< P >::prob, otawa::dfa::hai::WideningListener< P >::results, otawa::dfa::hai::WideningListener< P >::results_out, and otawa::dfa::hai::WideningListener< P >::store_out.
|
inline |
References otawa::cfgio::cfg(), otawa::CFGCollection::count(), otawa::CFG::countBB(), otawa::dfa::hai::WideningListener< P >::fw, otawa::CFGCollection::get(), otawa::INVOLVED_CFGS, otawa::dfa::hai::WideningListener< P >::results, otawa::dfa::hai::WideningListener< P >::results_out, and otawa::dfa::hai::WideningListener< P >::store_out.
void otawa::dfa::hai::WideningListener< P >::blockInterpreted | ( | const WideningFixPoint< WideningListener< P > > * | fp, |
BasicBlock * | bb, | ||
const typename Problem::Domain & | in, | ||
const typename Problem::Domain & | out, | ||
CFG * | cur_cfg, | ||
elm::genstruct::Vector< Edge * > * | callStack | ||
) | const |
This is called whenever a block is processed.
In the WideningListener, we do the LUB of all the in-states of each block.
fp | The FixPoint object |
bb | The Basic Block |
in | In-state |
out | Out-state (not used in this class) |
cur_cfg | Current CFG |
References cout, otawa::CFG::number(), and otawa::BasicBlock::number().
void otawa::dfa::hai::WideningListener< P >::fixPointReached | ( | const WideningFixPoint< WideningListener< P > > * | fp, |
BasicBlock * | bb | ||
) |
This is called whenever a loop's fixpoint is reached.
fp | The FixPoint object |
bb | The loop header. |
|
inline |
References otawa::dfa::hai::WideningListener< P >::prob.
|
static |
PRIVATE - DO NOT USE.
|
private |
|
private |
Problem::Domain*** otawa::dfa::hai::WideningListener< P >::results |
Problem::Domain*** otawa::dfa::hai::WideningListener< P >::results_out |
|
private |