21 #ifndef OTAWA_CCG_FEATURES_H_
22 #define OTAWA_CCG_FEATURES_H_
24 #include <elm/inhstruct/DLList.h>
32 namespace ilp {
class Var; }
33 namespace hard {
class Cache; }
60 inline int id(
void) {
return idx; }
struct otawa::sem::inst inst
int cid
Definition: features.h:69
Definition: GenGraph.h:38
void set(T *target, int size, const T &v)
Inst * instruction(void) const
Definition: features.h:56
BasicBlock * _bb
Definition: features.h:68
Definition: features.h:80
Inst * _inst
Definition: features.h:66
p::feature COLLECTED_LBLOCKS_FEATURE
This feature ensures that the L-blocks of the current task has been collected.
int index(void) const
Definition: features.h:48
Identifier< genstruct::AllocatedTable< LBlock * > * > BB_LBLOCKS
This property is used for storing the list of L-Blocks of a BasicBlock.
Iterator(LBlockSet &lbset)
Definition: features.h:82
elm::genstruct::Vector< LBlock * > listelbc
Definition: features.h:100
Output & operator<<(Output &out, const LBlock *block)
Definition: ccg_LBlockBuilder.cpp:279
LBlockSet * lblockset(void) const
Definition: features.h:53
ot::size size(void) const
Get the size of the current l-block.
Definition: features.h:51
int add(LBlock *node)
Add a new l-block.
Definition: ccg_LBlockBuilder.cpp:318
Identifier< ilp::Var * > MISS_VAR
Gives the variable counting the number of misses.
int id(void)
Definition: features.h:60
t::uint32 size
Definition: base.h:46
int line(void)
Definition: features.h:96
int idx
Definition: features.h:69
int countInsts(void)
Count the instructions in the l-block.
Definition: ccg_LBlockBuilder.cpp:219
The l-block is an abstraction allowing to split the basic block according to the bound of the cache b...
Definition: features.h:44
int cacheblock(void) const
Definition: features.h:61
This class contains the configuration of a level of cache of processor.
Definition: Cache.h:34
int count(void)
Get a number for a new l-block in the set.
Definition: features.h:89
The representation of an address in OTAWA.
Definition: base.h:54
p::feature CONSTRAINT_FEATURE
This feature ensures that the CCG has been translated in the form of ILP constraints.
LBlockSet * lbs
Definition: features.h:65
virtual address_t address(void) const =0
Get the address of the item .
sys::SystemOutStream & out
LBlockSet(int row, const hard::Cache *cache)
Build a l-block set.
Definition: ccg_LBlockBuilder.cpp:331
static Identifier< Collection * > GRAPHS
This property stores the list of CCG for the current task.
Definition: features.h:112
Identifier< LBlockSet ** > LBLOCKS
This property is used for storing the list of L-Blocks.
const hard::Cache * _cache
Definition: features.h:102
Address address(void) const
Definition: features.h:49
static Identifier< Node * > NODE
This property stores the CCG node matching the L-Block it is hooked to.
Definition: features.h:111
This class represents identifier with a typed associated value.
Definition: Identifier.h:51
This class represents the list of l-blocks of a task for a chosen cache row.
Definition: features.h:75
This is the minimal definition of a basic block.
Definition: BasicBlock.h:43
LBlock(LBlockSet *set, BasicBlock *bb, Inst *inst, t::uint32 size, int cache_index)
Build a new LBlock.
Definition: ccg_LBlockBuilder.cpp:188
int set(void)
Get the set number of the l-blocks in the cache.
Definition: features.h:92
const hard::Cache * cache(void) const
Definition: features.h:93
BasicBlock * bb(void) const
Definition: features.h:50
int cacheBlockCount(void)
Get the internal counter of l-block number (only used internally).
Definition: features.h:90
This class represents assembly instruction of a piece of code.
Definition: Inst.h:62
This a list of properties.
Definition: PropList.h:63
~LBlock(void)
Definition: ccg_LBlockBuilder.cpp:203
p::feature FEATURE
This feature ensures that Cache Conflict Graphs has been built.
friend class CCGDFA
Definition: features.h:76
Definition: features.h:107
int number(void) const
Get the number of the LBlock in its cache row.
Definition: features.h:59
t::uint32 _size
Definition: features.h:67
LBlock * lblock(int i)
Get the l-block with the given index.
Definition: features.h:91
int cblock_count
Definition: features.h:101
int linenumber
Definition: features.h:99
Shortcut to create a feature with a maker (without the mess of SilentFeature).
Definition: AbstractFeature.h:51
int cacheBlock(void) const
Compute the cache block of this L-block.
Definition: features.h:55