Otawa
0.10
|
#include <otawa/dcache/PERSProblem.h>
Public Member Functions | |
Domain (const int _size, const int _A) | |
Domain (const Domain &source) | |
~Domain (void) | |
Domain & | operator= (const Domain &src) |
Assignement of persistence analysis ACS. More... | |
void | lub (const Domain &dom) |
Compute the join of the current value with the given one and the result is left in the current ACS. More... | |
void | lub (const Item &item) |
Special LUB: do the lub of each Item in current domain with item passed as parameter. More... | |
bool | equals (const Domain &dom) const |
Test if two ACS are equals. More... | |
void | empty (void) |
Empty the domain. More... | |
void | setToBottom (void) |
Set the bottom value in the ACS. More... | |
Item & | getWhole (void) |
bool | contains (const int id, const int index) |
void | inject (MUSTProblem::Domain *must, const int id) |
Consider that the designed block is accessed. More... | |
bool | isWiped (const int id, const int index) |
int | getAge (const int id, const int index) const |
bool | isPersistent (const int id, const int index) |
void | addDamage (const int id, const int index, int damage) |
void | addDamage (const int id, int damage) |
In partial analysis, add age damage to the given block. More... | |
void | refresh (const int id, const int index, int newage) |
void | refresh (const int id, int newage) |
Refresh a block to the given age (if required). More... | |
void | print (elm::io::Output &output) const |
Display the ACS. More... | |
void | enterContext (void) |
Called when a loop context is entered to add a level. More... | |
void | leaveContext (void) |
Called when a loop context is left to remove the top-level. More... | |
int | length (void) const |
Item & | getItem (const int idx) const |
void | ageAll (void) |
Consider that an unknown access is performed and, therefore, all blocks must be aged. More... | |
void | setNotBottom (void) |
void | set (const ACS &w, const genstruct::Table< ACS * > &d) |
Private Attributes | |
Item | whole |
genstruct::Vector< Item * > | data |
bool | isBottom |
|
inline |
|
inline |
References data.
|
inline |
void otawa::dcache::PERSProblem::Domain::addDamage | ( | const int | id, |
int | damage | ||
) |
In partial analysis, add age damage to the given block.
id | Identity of the aged block. |
damage | Damage value. |
void otawa::dcache::PERSProblem::Domain::ageAll | ( | void | ) |
Consider that an unknown access is performed and, therefore, all blocks must be aged.
Referenced by otawa::dcache::MUSTPERS::ageAll().
|
inline |
References contains(), data, and isBottom.
Referenced by contains().
void otawa::dcache::PERSProblem::Domain::empty | ( | void | ) |
Empty the domain.
Referenced by otawa::dcache::MUSTPERS::emptyPers(), and otawa::dcache::PERSProblem::PERSProblem().
void otawa::dcache::PERSProblem::Domain::enterContext | ( | void | ) |
Called when a loop context is entered to add a level.
References otawa::dcache::ACS::empty().
Referenced by otawa::dcache::PERSProblem::enterContext(), and otawa::dcache::PERSProblem::PERSProblem().
bool otawa::dcache::PERSProblem::Domain::equals | ( | const Domain & | dom | ) | const |
Test if two ACS are equals.
dom | ACS to compare with. |
References data, otawa::dcache::PERSProblem::equals(), isBottom, and whole.
Referenced by otawa::dcache::PERSProblem::equals().
|
inline |
|
inline |
References data, and isBottom.
Referenced by otawa::dcache::ACSBuilder::processLBlockSet(), and otawa::dcache::PERSProblem::purge().
|
inline |
References whole.
Referenced by otawa::dcache::ACSBuilder::processLBlockSet(), and otawa::dcache::PERSProblem::purge().
void otawa::dcache::PERSProblem::Domain::inject | ( | MUSTProblem::Domain * | must, |
const int | id | ||
) |
Consider that the designed block is accessed.
must | Must ACS (useful to work-around a bug in the original persistence analysis). |
id | Identity of the accessed block. |
Referenced by otawa::dcache::MUSTPERS::inject().
|
inline |
References data, isBottom, and isPersistent().
Referenced by isPersistent(), and otawa::dcache::CATBuilder::processLBlockSet().
|
inline |
void otawa::dcache::PERSProblem::Domain::leaveContext | ( | void | ) |
Called when a loop context is left to remove the top-level.
Referenced by otawa::dcache::PERSProblem::leaveContext().
|
inline |
References data, and isBottom.
Referenced by otawa::dcache::CATBuilder::processLBlockSet(), otawa::dcache::ACSBuilder::processLBlockSet(), and otawa::dcache::PERSProblem::purge().
void otawa::dcache::PERSProblem::Domain::lub | ( | const Domain & | dom | ) |
Compute the join of the current value with the given one and the result is left in the current ACS.
dom | ACS to join with. |
References data, isBottom, otawa::dcache::PERSProblem::lub(), and whole.
Referenced by otawa::dcache::PERSProblem::lub().
void otawa::dcache::PERSProblem::Domain::lub | ( | const Item & | item | ) |
Special LUB: do the lub of each Item in current domain with item passed as parameter.
Used for the partial analysis
References otawa::dcache::PERSProblem::lub().
PERSProblem::Domain & otawa::dcache::PERSProblem::Domain::operator= | ( | const Domain & | src | ) |
void otawa::dcache::PERSProblem::Domain::print | ( | elm::io::Output & | output | ) | const |
Display the ACS.
output | Stream to output to. |
Referenced by otawa::dcache::operator<<(), and otawa::dcache::MUSTPERS::print().
|
inline |
void otawa::dcache::PERSProblem::Domain::refresh | ( | const int | id, |
int | newage | ||
) |
Refresh a block to the given age (if required).
id | Refreshed block. |
newage | Maximal new age of the block. |
|
inline |
References data, isBottom, otawa::clp::min(), and whole.
Referenced by otawa::dcache::MUSTPERS::setPers().
|
inline |
References isBottom.
void otawa::dcache::PERSProblem::Domain::setToBottom | ( | void | ) |
Set the bottom value in the ACS.
Referenced by otawa::dcache::PERSProblem::PERSProblem().
|
private |
Referenced by addDamage(), contains(), Domain(), equals(), getAge(), getItem(), isPersistent(), isWiped(), length(), lub(), operator=(), refresh(), set(), and ~Domain().
|
private |
Referenced by addDamage(), contains(), equals(), getAge(), getItem(), isPersistent(), isWiped(), length(), lub(), operator=(), refresh(), set(), and setNotBottom().
|
private |
Referenced by equals(), getWhole(), lub(), operator=(), and set().