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/UnrollingListener.h>
Public Types | |
typedef P | Problem |
Public Member Functions | |
UnrollingListener (WorkSpace *_fw, Problem &_prob) | |
~UnrollingListener () | |
void | blockInterpreted (const FirstUnrollingFixPoint< UnrollingListener > *fp, BasicBlock *bb, const typename Problem::Domain &in, const typename Problem::Domain &out, CFG *cur_cfg, elm::genstruct::Vector< Edge * > *callStack) const |
void | fixPointReached (const FirstUnrollingFixPoint< UnrollingListener > *fp, BasicBlock *bb) |
This is called whenever a loop's fixpoint is reached. More... | |
Problem & | getProb () |
Public Attributes | |
Problem::Domain *** | results |
Static Public Attributes | |
static Identifier< typename Problem::Domain * > | BB_OUT_STATE |
Private Attributes | |
WorkSpace * | fw |
Problem & | prob |
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. Note: The listener merges the in-states corresonding to various iterations of the same BB. If you want to differentiate individual in-states (for example, BB3 first iteration and BB3 other iterations) you have to modify the blockInterpreted() method to take into account the iteration number, which can be obtained with FirstUnrollingFixPoint::getIter() method.
typedef P otawa::dfa::hai::UnrollingListener< P >::Problem |
|
inline |
|
inline |
void otawa::dfa::hai::UnrollingListener< Problem >::blockInterpreted | ( | const FirstUnrollingFixPoint< UnrollingListener< P > > * | fp, |
BasicBlock * | bb, | ||
const typename Problem::Domain & | in, | ||
const typename Problem::Domain & | out, | ||
CFG * | cur_cfg, | ||
elm::genstruct::Vector< Edge * > * | callStack | ||
) | const |
References cout, otawa::CFG::label(), otawa::CFG::number(), and otawa::BasicBlock::number().
void otawa::dfa::hai::UnrollingListener< P >::fixPointReached | ( | const FirstUnrollingFixPoint< UnrollingListener< 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::UnrollingListener< P >::prob.
|
static |
|
private |
|
private |
Problem::Domain*** otawa::dfa::hai::UnrollingListener< P >::results |
Referenced by otawa::ACSMayBuilder::processLBlockSet(), otawa::ACSBuilder::processLBlockSet(), otawa::dcache::ACSMayBuilder::processLBlockSet(), otawa::dcache::ACSBuilder::processLBlockSet(), otawa::branch::BranchBuilder::processWorkSpace(), otawa::dfa::hai::UnrollingListener< P >::UnrollingListener(), and otawa::dfa::hai::UnrollingListener< P >::~UnrollingListener().