Otawa  0.10
cache_EdgeACSBuilder.cpp File Reference

Namespaces

 otawa
 $Id$ Copyright (c) 2007, IRIT - UPS casse.nosp@m.@iri.nosp@m.t.fr
 

Macros

#define STORE_MUST
 
#define STORE_MUSTPERS
 

Functions

Feature< EdgeACSBuilderotawa::ICACHE_EDGE_ACS_FEATURE ("otawa::ICACHE_EDGE_ACS_FEATURE")
 This feature represents the availability of Abstract Cache State informations. More...
 
Identifier< Vector
< MUSTProblem::Domain * > * > 
otawa::CACHE_EDGE_ACS_MUST ("otawa::cache_edge_acs_must", NULL)
 This property represents the "must" Abstract Cache State of a basic block. More...
 
Identifier< Vector
< PERSProblem::Domain * > * > 
otawa::CACHE_EDGE_ACS_PERS ("otawa::cache_edge_acs_pers", NULL)
 This property represents the "persistence" Abstract Cache State of a basic block. More...
 

Macro Definition Documentation

#define STORE_MUST
Value:
for (CFG::BBIterator bb(cfg); bb; bb++) { \
AllocatedTable<LBlock*> &lblocks = *BB_LBLOCKS(bb); \
if (BB_LBLOCKS(bb) != NULL) { \
Vector<MUSTProblem::Domain *> must; \
for (BasicBlock::InIterator inedge(bb); inedge; inedge++) \
must.add(mustList.results_out[cfg->number()][inedge->source()->number()]); \
for (int i = 0; i < lblocks.count(); i++) { \
if (cache->line(lblocks[i]->address()) == line) { \
int pred = 0; \
for (BasicBlock::InIterator inedge(bb); inedge; inedge++) { \
CACHE_EDGE_ACS_MUST(lblocks[i])->add(new MUSTProblem::Domain(*must[pred])); \
mustProb.updateLBlock(*must[pred], lblocks[i]); \
pred++; \
} \
} \
} \
} \
} \
}
Definition: CFG.h:48
Identifier< Vector< MUSTProblem::Domain * > * > CACHE_EDGE_ACS_MUST("otawa::cache_edge_acs_must", NULL)
This property represents the "must" Abstract Cache State of a basic block.
dtd::Element bb(dtd::make("bb", _BB).attr(id).attr(address).attr(size))
StringOption cache(command, 'c',"cache","used cache","path","")
Iterator on the CFG contained in a CFGCollection.
Definition: features.h:54
Identifier< const CFGCollection * > INVOLVED_CFGS
This property is used to link the current computation involved CFG on the framework.
if(!(yy_init))
Definition: ipet_lexer.cc:734
dtd::Element cfg(dtd::make("cfg", _CFG).attr(id).content((entry,*bb, exit,*edge)))
Identifier< genstruct::AllocatedTable< LBlock * > * > BB_LBLOCKS
This property is used for storing the list of L-Blocks of a BasicBlock.

Referenced by otawa::EdgeACSBuilder::processLBlockSet().

#define STORE_MUSTPERS
Value:
for (CFG::BBIterator bb(cfg); bb; bb++) { \
AllocatedTable<LBlock*> &lblocks = *BB_LBLOCKS(bb); \
if (BB_LBLOCKS(bb) != NULL) { \
Vector<MUSTPERS::Domain *> mustpersAcs; \
for (BasicBlock::InIterator inedge(bb); inedge; inedge++) \
mustpersAcs.add(mustpersList.results_out[cfg->number()][inedge->source()->number()]); \
for (int i = 0; i < lblocks.count(); i++) { \
if (cache->line(lblocks[i]->address()) == line) { \
int pred = 0; \
for (BasicBlock::InIterator inedge(bb); inedge; inedge++) { \
CACHE_EDGE_ACS_MUST(lblocks[i])->add(new MUSTProblem::Domain(mustpersAcs[pred]->getMust())); \
CACHE_EDGE_ACS_PERS(lblocks[i])->add(new PERSProblem::Domain(mustpersAcs[pred]->getPers())); \
mustpers.updateLBlock(*mustpersAcs[pred], lblocks[i]); \
pred++; \
} \
} \
} \
} \
} \
}
Definition: CFG.h:48
Identifier< Vector< MUSTProblem::Domain * > * > CACHE_EDGE_ACS_MUST("otawa::cache_edge_acs_must", NULL)
This property represents the "must" Abstract Cache State of a basic block.
dtd::Element bb(dtd::make("bb", _BB).attr(id).attr(address).attr(size))
StringOption cache(command, 'c',"cache","used cache","path","")
Iterator on the CFG contained in a CFGCollection.
Definition: features.h:54
Identifier< const CFGCollection * > INVOLVED_CFGS
This property is used to link the current computation involved CFG on the framework.
if(!(yy_init))
Definition: ipet_lexer.cc:734
dtd::Element cfg(dtd::make("cfg", _CFG).attr(id).content((entry,*bb, exit,*edge)))
Identifier< genstruct::AllocatedTable< LBlock * > * > BB_LBLOCKS
This property is used for storing the list of L-Blocks of a BasicBlock.
Identifier< Vector< PERSProblem::Domain * > * > CACHE_EDGE_ACS_PERS("otawa::cache_edge_acs_pers", NULL)
This property represents the "persistence" Abstract Cache State of a basic block. ...
Definition: PERSProblem.h:168

Referenced by otawa::EdgeACSBuilder::processLBlockSet().