24 #ifndef CACHE_MAYPROBLEM_H_
25 #define CACHE_MAYPROBLEM_H_
28 #include <elm/assert.h>
54 inline Domain(
const int _size,
const int _A)
58 for (
int i = 0; i <
size; i++)
68 for (
int i = 0; i <
size; i++)
75 for (
int i = 0; i <
size ; i++)
89 for (
int i = 0; i <
size; i++) {
90 if (((
age[i] > dom.
age[i]) && (dom.
age[i] != -1)) || (
age[i] == -1))
99 inline void addDamage(
const int id,
const int damage) {
100 ASSERT((
id >= 0) && (
id <
size));
110 for (
int i = 0; i <
size; i++)
117 for (
int i = 0; i <
size; i++)
123 ASSERT((
id <
size) && (
id >= 0));
124 return(
age[
id] != -1);
130 for (
int i = 0; i <
size; i++) {
131 if ((
age[i] <=
age[
id]) && (
age[i] != -1))
136 for (
int i = 0; i <
size; i++) {
149 for (
int i = 0; i <
size; i++) {
172 inline void setAge(
const int id,
const int _age) {
174 ASSERT((_age <
A) || (_age == -1));
dtd::RefAttr< BasicBlock * > source("source", dtd::STRICT|dtd::REQUIRED)
int * age
Definition: MAYProblem.h:183
~Domain()
Definition: MAYProblem.h:62
bool equals(const Domain &dom) const
Definition: MAYProblem.h:108
void glb(const Domain &dom)
Definition: MAYProblem.h:81
bool contains(const int id)
Definition: MAYProblem.h:122
void update(Domain &out, const Domain &in, BasicBlock *bb)
Definition: cache_MAYProblem.cpp:77
Domain & operator=(const Domain &src)
Definition: MAYProblem.h:73
void lub(Domain &a, const Domain &b) const
Definition: MAYProblem.h:212
bool equals(const Domain &a, const Domain &b) const
Definition: MAYProblem.h:218
Definition: MAYProblem.h:38
void lub(const Domain &dom)
Definition: MAYProblem.h:86
dtd::Element bb(dtd::make("bb", _BB).attr(id).attr(address).attr(size))
elm::io::Output & operator<<(elm::io::Output &out, Address addr)
Definition: base.cpp:188
Domain ent
Definition: MAYProblem.h:194
Domain callstate
Definition: MAYProblem.h:197
Domain(const int _size, const int _A)
Definition: MAYProblem.h:54
const Domain & entry(void) const
Definition: cache_MAYProblem.cpp:72
A workspace represents a program, its run-time and all information about WCET computation or any othe...
Definition: WorkSpace.h:67
This class contains the configuration of a level of cache of processor.
Definition: Cache.h:34
MAYProblem(const int _size, LBlockSet *_lbset, WorkSpace *_fw, const hard::Cache *_cache, const int _A)
Definition: cache_MAYProblem.cpp:54
LBlockSet * lbset
Definition: MAYProblem.h:189
~MAYProblem()
Definition: cache_MAYProblem.cpp:66
Definition: MAYProblem.h:43
void addDamage(const int id, const int damage)
Definition: MAYProblem.h:99
sys::SystemOutStream & out
This class represents the list of l-blocks of a task for a chosen cache row.
Definition: LBlockSet.h:38
void empty()
Definition: MAYProblem.h:116
void inject(const int id)
Definition: MAYProblem.h:128
Domain(const Domain &source)
Definition: MAYProblem.h:66
hai_context_t
Definition: HalfAbsInt.h:50
void leaveContext(Domain &dom, BasicBlock *header, util::hai_context_t ctx)
Definition: MAYProblem.h:228
void setAge(const int id, const int _age)
Definition: MAYProblem.h:172
const Domain & bottom(void) const
Definition: cache_MAYProblem.cpp:69
int getSize(void)
Definition: MAYProblem.h:95
This is the minimal definition of a basic block.
Definition: BasicBlock.h:43
void enterContext(Domain &dom, BasicBlock *header, util::hai_context_t ctx)
Definition: MAYProblem.h:224
int getAge(int id) const
Definition: MAYProblem.h:166
const int line
Definition: MAYProblem.h:191
void assign(Domain &a, const Domain &b) const
Definition: MAYProblem.h:215
WorkSpace * fw
Definition: MAYProblem.h:190
int size
Definition: MAYProblem.h:44
Domain bot
Definition: MAYProblem.h:193
void print(elm::io::Output &output) const
Definition: MAYProblem.h:146
int A
Definition: MAYProblem.h:44
const hard::Cache * cache
Definition: MAYProblem.h:192