Otawa  0.10
otawa::dcache::PERSProblem Class Reference

Problem for computing the PERS ACS of L-blocks. More...

#include <otawa/dcache/PERSProblem.h>

Classes

class  Domain
 
class  Item
 ACS for the multi-level data cache persistence analysis. More...
 

Public Member Functions

 PERSProblem (const int _size, const BlockCollection *_lbset, WorkSpace *_fw, const hard::Cache *_cache, const int _A)
 
 ~PERSProblem (void)
 
const Domainbottom (void) const
 
const Domainentry (void) const
 
void lub (Domain &a, const Domain &b) const
 
void assign (Domain &a, const Domain &b) const
 
bool equals (const Domain &a, const Domain &b) const
 
void update (Domain &out, const Domain &in, BasicBlock *bb)
 
void update (Domain &s, const BlockAccess &access)
 
void purge (Item &item, const BlockAccess &acc)
 Apply the given purge action to the given item. More...
 
void purge (Domain &domain, const BlockAccess &acc)
 Apply the given purge action to the given domain. More...
 
void enterContext (Domain &dom, BasicBlock *header, util::hai_context_t ctx)
 
void leaveContext (Domain &dom, BasicBlock *header, util::hai_context_t ctx)
 

Public Attributes

Domain callstate
 

Private Attributes

const BlockCollectionlbset
 
CFGcfg
 
WorkSpacefw
 
const hard::Cachecache
 
Domain bot
 
Domain ent
 
const int line
 

Detailed Description

Problem for computing the PERS ACS of L-blocks.

Problem for the data cache persistence analysis.

This implements Ferdinand's Persistence analysis.

Constructor & Destructor Documentation

otawa::dcache::PERSProblem::PERSProblem ( const int  _size,
const BlockCollection _lbset,
WorkSpace _fw,
const hard::Cache _cache,
const int  _A 
)
otawa::dcache::PERSProblem::~PERSProblem ( void  )

Member Function Documentation

void otawa::dcache::PERSProblem::assign ( Domain a,
const Domain b 
) const
inline
const PERSProblem::Domain & otawa::dcache::PERSProblem::bottom ( void  ) const

References bot.

Referenced by otawa::dcache::MUSTPERS::MUSTPERS().

void otawa::dcache::PERSProblem::enterContext ( Domain dom,
BasicBlock header,
util::hai_context_t  ctx 
)
inline
const PERSProblem::Domain & otawa::dcache::PERSProblem::entry ( void  ) const

References ent.

Referenced by otawa::dcache::MUSTPERS::MUSTPERS().

bool otawa::dcache::PERSProblem::equals ( const Domain a,
const Domain b 
) const
inline
void otawa::dcache::PERSProblem::leaveContext ( Domain dom,
BasicBlock header,
util::hai_context_t  ctx 
)
inline
void otawa::dcache::PERSProblem::lub ( Domain a,
const Domain b 
) const
inline
void otawa::dcache::PERSProblem::purge ( Domain domain,
const BlockAccess acc 
)

Apply the given purge action to the given domain.

Parameters
domainDomain to work on.
accPurge action to perform.

References otawa::dcache::PERSProblem::Domain::getItem(), otawa::dcache::PERSProblem::Domain::getWhole(), otawa::dcache::PERSProblem::Domain::length(), and purge().

void otawa::dcache::PERSProblem::update ( Domain out,
const Domain in,
BasicBlock bb 
)

References cerr.

void otawa::dcache::PERSProblem::update ( Domain s,
const BlockAccess access 
)

Member Data Documentation

Domain otawa::dcache::PERSProblem::bot
private

Referenced by bottom(), and PERSProblem().

const hard::Cache* otawa::dcache::PERSProblem::cache
private
Domain otawa::dcache::PERSProblem::callstate
CFG* otawa::dcache::PERSProblem::cfg
private
Domain otawa::dcache::PERSProblem::ent
private

Referenced by entry(), and PERSProblem().

WorkSpace* otawa::dcache::PERSProblem::fw
private
const BlockCollection* otawa::dcache::PERSProblem::lbset
private
const int otawa::dcache::PERSProblem::line
private

Referenced by purge().


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