Otawa  0.10
otawa::dcache::MUSTProblem Class Reference

The MUST problem provides the abstract interpretation of L1 data cache for the MUST case. More...

#include <otawa/dcache/ACSBuilder.h>

Classes

class  Domain
 

Public Member Functions

 MUSTProblem (int _size, int _set, WorkSpace *_fw, const hard::Cache *_cache, int _A)
 Build a MUST problem. More...
 
const Domainbottom (void) const
 
const Domainentry (void) const
 
void lub (Domain &a, const Domain &b) const
 
void assign (Domain &a, const Domain &b) const
 
void assign (Domain &a, const ACS &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)
 Update for an access. More...
 
void purge (Domain &out, const BlockAccess &acc)
 Perform a purge according to the given block access. 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

WorkSpacefw
 
int set
 
const hard::Cachecache
 
Domain bot
 
Domain ent
 
int size
 

Detailed Description

The MUST problem provides the abstract interpretation of L1 data cache for the MUST case.

It implements the concept AbstractDomain.

Constructor & Destructor Documentation

MUSTProblem::MUSTProblem ( int  _size,
int  _set,
WorkSpace _fw,
const hard::Cache _cache,
int  _A 
)

Build a MUST problem.

Parameters
_sizeNumber of blocks.
_setNumber of sets in the cache.
_fwCurrent workspace.
_cacheAnalyzed cache.
_AAssociativity of the cache.

References otawa::dcache::ACS::empty(), and ent.

Member Function Documentation

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

References bot.

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

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

References ent.

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

bool otawa::dcache::MUSTProblem::equals ( const Domain a,
const Domain b 
) const
inline
void otawa::dcache::MUSTProblem::leaveContext ( Domain dom,
BasicBlock header,
util::hai_context_t  ctx 
)
inline
void otawa::dcache::MUSTProblem::lub ( Domain a,
const Domain b 
) const
inline
void MUSTProblem::update ( Domain out,
const Domain in,
BasicBlock bb 
)

Member Data Documentation

Domain otawa::dcache::MUSTProblem::bot
private

Referenced by bottom().

const hard::Cache* otawa::dcache::MUSTProblem::cache
private
Domain otawa::dcache::MUSTProblem::callstate
Domain otawa::dcache::MUSTProblem::ent
private

Referenced by entry(), and MUSTProblem().

WorkSpace* otawa::dcache::MUSTProblem::fw
private
int otawa::dcache::MUSTProblem::set
private

Referenced by purge(), and update().

int otawa::dcache::MUSTProblem::size
private

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