Otawa
0.10
|
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 Domain & | bottom (void) const |
const Domain & | entry (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 BlockCollection * | lbset |
CFG * | cfg |
WorkSpace * | fw |
const hard::Cache * | cache |
Domain | bot |
Domain | ent |
const int | line |
Problem for computing the PERS ACS of L-blocks.
Problem for the data cache persistence analysis.
This implements Ferdinand's Persistence analysis.
otawa::dcache::PERSProblem::PERSProblem | ( | const int | _size, |
const BlockCollection * | _lbset, | ||
WorkSpace * | _fw, | ||
const hard::Cache * | _cache, | ||
const int | _A | ||
) |
otawa::dcache::PERSProblem::~PERSProblem | ( | void | ) |
Referenced by otawa::dcache::MUSTPERS::assign(), and otawa::dcache::MUSTPERS::MUSTPERS().
const PERSProblem::Domain & otawa::dcache::PERSProblem::bottom | ( | void | ) | const |
References bot.
Referenced by otawa::dcache::MUSTPERS::MUSTPERS().
|
inline |
References otawa::dfa::hai::CTX_LOOP, and otawa::dcache::PERSProblem::Domain::enterContext().
Referenced by otawa::dcache::MUSTPERS::enterContext().
const PERSProblem::Domain & otawa::dcache::PERSProblem::entry | ( | void | ) | const |
References ent.
Referenced by otawa::dcache::MUSTPERS::MUSTPERS().
References otawa::dcache::PERSProblem::Domain::equals().
Referenced by otawa::dcache::MUSTPERS::equals(), and otawa::dcache::PERSProblem::Domain::equals().
|
inline |
References otawa::dfa::hai::CTX_LOOP, and otawa::dcache::PERSProblem::Domain::leaveContext().
Referenced by otawa::dcache::MUSTPERS::leaveContext().
References otawa::dcache::PERSProblem::Domain::lub().
Referenced by otawa::dcache::MUSTPERS::lub(), and otawa::dcache::PERSProblem::Domain::lub().
void otawa::dcache::PERSProblem::purge | ( | Item & | item, |
const BlockAccess & | acc | ||
) |
Apply the given purge action to the given item.
item | Item to work on. |
acc | Purge action to perform. |
References otawa::dcache::BlockAccess::action(), otawa::dcache::BlockAccess::ANY, otawa::dcache::BlockAccess::BLOCK, otawa::dcache::BlockAccess::block(), otawa::dcache::ACS::getA(), otawa::dcache::ACS::getSize(), otawa::dcache::BlockAccess::inRange(), otawa::dcache::BlockAccess::kind(), line, otawa::dcache::BlockAccess::PURGE, otawa::dcache::BlockAccess::RANGE, and otawa::dcache::Block::set().
Referenced by purge(), and otawa::dcache::MUSTPERS::update().
void otawa::dcache::PERSProblem::purge | ( | Domain & | domain, |
const BlockAccess & | acc | ||
) |
Apply the given purge action to the given domain.
domain | Domain to work on. |
acc | Purge 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 | ||
) |
|
private |
Referenced by bottom(), and PERSProblem().
|
private |
Domain otawa::dcache::PERSProblem::callstate |
|
private |
|
private |
Referenced by entry(), and PERSProblem().
|
private |
|
private |
|
private |
Referenced by purge().