Otawa
0.10
|
#include <otawa/dcache/MUSTPERS.h>
Classes | |
class | Domain |
ACS of the MUSTPERS problem. More... | |
Public Member Functions | |
MUSTPERS (const BlockCollection *_lbset, WorkSpace *_fw, const hard::Cache *_cache) | |
void | setMust (Domain &d, const ACS &acs) const |
void | emptyPers (Domain &d) const |
void | setPers (Domain &d, const ACS &acs, const acs_stack_t &s) |
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 | print (elm::io::Output &output, const Domain &d) const |
Print the MUSTPERS ACS. More... | |
void | update (Domain &out, const Domain &in, BasicBlock *bb) |
void | update (Domain &s, const BlockAccess &access) |
Update according to the given access. More... | |
void | ageAll (Domain &d) const |
void | inject (Domain &d, const int id) const |
void | enterContext (Domain &dom, BasicBlock *header, util::hai_context_t ctx) |
void | leaveContext (Domain &dom, BasicBlock *header, util::hai_context_t ctx) |
Private Attributes | |
Domain | bot |
Domain | ent |
int | set |
MUSTProblem | mustProb |
PERSProblem | persProb |
otawa::dcache::MUSTPERS::MUSTPERS | ( | const BlockCollection * | _lbset, |
WorkSpace * | _fw, | ||
const hard::Cache * | _cache | ||
) |
References otawa::dcache::MUSTProblem::assign(), otawa::dcache::PERSProblem::assign(), bot, otawa::dcache::MUSTProblem::bottom(), otawa::dcache::PERSProblem::bottom(), ent, otawa::dcache::MUSTProblem::entry(), otawa::dcache::PERSProblem::entry(), otawa::dcache::MUSTPERS::Domain::must, mustProb, otawa::dcache::MUSTPERS::Domain::pers, and persProb.
|
inline |
References otawa::dcache::MUSTProblem::assign(), otawa::dcache::PERSProblem::assign(), mustProb, and persProb.
Referenced by update().
const MUSTPERS::Domain & otawa::dcache::MUSTPERS::bottom | ( | void | ) | const |
References bot.
Referenced by otawa::dcache::CATBuilder::processLBlockSet().
|
inline |
References otawa::dcache::PERSProblem::Domain::empty(), and otawa::dcache::MUSTPERS::Domain::pers.
Referenced by otawa::dcache::CATBuilder::processLBlockSet().
|
inline |
const MUSTPERS::Domain & otawa::dcache::MUSTPERS::entry | ( | void | ) | const |
References ent.
References otawa::dcache::MUSTProblem::equals(), otawa::dcache::PERSProblem::equals(), mustProb, and persProb.
|
inline |
|
inline |
void otawa::dcache::MUSTPERS::print | ( | elm::io::Output & | output, |
const Domain & | d | ||
) | const |
output | Stream to output to. |
References otawa::dcache::MUSTPERS::Domain::must, otawa::dcache::MUSTPERS::Domain::pers, otawa::dcache::ACS::print(), and otawa::dcache::PERSProblem::Domain::print().
References otawa::dcache::MUSTProblem::assign(), otawa::dcache::MUSTPERS::Domain::must, and mustProb.
Referenced by otawa::dcache::CATBuilder::processLBlockSet().
|
inline |
References otawa::dcache::MUSTPERS::Domain::pers, and otawa::dcache::PERSProblem::Domain::set().
Referenced by otawa::dcache::CATBuilder::processLBlockSet().
void otawa::dcache::MUSTPERS::update | ( | Domain & | out, |
const Domain & | in, | ||
BasicBlock * | bb | ||
) |
References assign(), otawa::dcache::DATA_BLOCKS, elm::Pair< T1, T2 >::fst, and elm::Pair< T1, T2 >::snd.
void otawa::dcache::MUSTPERS::update | ( | Domain & | s, |
const BlockAccess & | access | ||
) |
Update according to the given access.
s | Domain to udpate. |
access | Access to apply. |
References otawa::dcache::BlockAccess::action(), ageAll(), otawa::dcache::BlockAccess::ANY, otawa::dcache::BlockAccess::BLOCK, otawa::dcache::BlockAccess::block(), otawa::dcache::BlockAccess::first, otawa::dcache::Block::index(), inject(), otawa::dcache::BlockAccess::kind(), otawa::dcache::BlockAccess::last, otawa::dcache::BlockAccess::LOAD, otawa::dcache::MUSTPERS::Domain::must, MUST_DEBUG, mustProb, otawa::dcache::MUSTPERS::Domain::pers, persProb, otawa::dcache::MUSTProblem::purge(), otawa::dcache::PERSProblem::purge(), otawa::dcache::BlockAccess::PURGE, otawa::dcache::BlockAccess::RANGE, set, otawa::dcache::Block::set(), and otawa::dcache::BlockAccess::STORE.
|
private |
Referenced by bottom(), and MUSTPERS().
|
private |
Referenced by entry(), and MUSTPERS().
|
private |
Referenced by assign(), enterContext(), equals(), leaveContext(), lub(), MUSTPERS(), setMust(), and update().
|
private |
Referenced by assign(), enterContext(), equals(), leaveContext(), lub(), MUSTPERS(), and update().
|
private |
Referenced by update().