Otawa  0.10
otawa::dfa::hai::UnrollingListener< P > Class Template Reference

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...
 
ProblemgetProb ()
 

Public Attributes

Problem::Domain *** results
 

Static Public Attributes

static Identifier< typename
Problem::Domain * > 
BB_OUT_STATE
 

Private Attributes

WorkSpacefw
 
Problemprob
 

Detailed Description

template<class P>
class otawa::dfa::hai::UnrollingListener< P >

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.

Member Typedef Documentation

template<class P>
typedef P otawa::dfa::hai::UnrollingListener< P >::Problem

Constructor & Destructor Documentation

Member Function Documentation

template<class Problem >
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
template<class Problem >
void otawa::dfa::hai::UnrollingListener< P >::fixPointReached ( const FirstUnrollingFixPoint< UnrollingListener< P > > *  fp,
BasicBlock bb 
)

This is called whenever a loop's fixpoint is reached.

Parameters
fpThe FixPoint object
bbThe loop header.
template<class P>
Problem& otawa::dfa::hai::UnrollingListener< P >::getProb ( )
inline

Member Data Documentation

template<class P>
Identifier< typename Problem::Domain * > otawa::dfa::hai::UnrollingListener< Problem >::BB_OUT_STATE
static

The documentation for this class was generated from the following files: