24 #ifndef CACHE_MUSTPROBLEM_H_
25 #define CACHE_MUSTPROBLEM_H_
28 #include <elm/assert.h>
55 inline Domain(
const int _size,
const int _A)
59 for (
int i = 0; i <
size; i++)
69 for (
int i = 0; i <
size; i++)
76 for (
int i = 0; i <
size ; i++)
85 for (
int i = 0; i <
size; i++) {
86 if (((
age[i] > dom.
age[i]) && (dom.
age[i] != -1)) || (
age[i] == -1))
94 for (
int i = 0; i <
size; i++) {
95 if (((
age[i] < dom.
age[i]) && (
age[i] != -1))|| (dom.
age[i] == -1))
105 ASSERT((
id >= 0) && (
id <
size));
115 for (
int i = 0; i <
size; i++)
122 for (
int i = 0; i <
size; i++)
128 ASSERT((
id <
size) && (
id >= 0));
129 return(
age[
id] != -1);
135 for (
int i = 0; i <
size; i++) {
136 if ((
age[i] <
age[
id]) && (
age[i] != -1))
141 for (
int i = 0; i <
size; i++) {
154 for (
int i = 0; i <
size; i++) {
176 inline void setAge(
const int id,
const int _age) {
178 ASSERT((_age <
A) || (_age == -1));
Domain ent
Definition: MUSTProblem.h:199
int * age
Definition: MUSTProblem.h:188
dtd::RefAttr< BasicBlock * > source("source", dtd::STRICT|dtd::REQUIRED)
const Domain & entry(void) const
Definition: cache_MUSTProblem.cpp:55
Domain(const Domain &source)
Definition: MUSTProblem.h:67
WorkSpace * fw
Definition: MUSTProblem.h:195
void lub(Domain &a, const Domain &b) const
Definition: MUSTProblem.h:218
void leaveContext(Domain &dom, BasicBlock *header, hai_context_t ctx)
Definition: MUSTProblem.h:234
int getAge(int id) const
Definition: MUSTProblem.h:171
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
void update(Domain &out, const Domain &in, BasicBlock *bb)
Definition: cache_MUSTProblem.cpp:59
Domain & operator=(const Domain &src)
Definition: MUSTProblem.h:74
void inject(const int id)
Definition: MUSTProblem.h:133
void assign(Domain &a, const Domain &b) const
Definition: MUSTProblem.h:221
LBlockSet * lbset
Definition: MUSTProblem.h:194
const int line
Definition: MUSTProblem.h:196
void lub(const Domain &dom)
Definition: MUSTProblem.h:91
const hard::Cache * cache
Definition: MUSTProblem.h:197
MUSTProblem(const int _size, LBlockSet *_lbset, WorkSpace *_fw, const hard::Cache *_cache, const int _A)
Definition: cache_MUSTProblem.cpp:37
void setAge(const int id, const int _age)
Definition: MUSTProblem.h:176
Domain(const int _size, const int _A)
Definition: MUSTProblem.h:55
int A
Definition: MUSTProblem.h:45
A workspace represents a program, its run-time and all information about WCET computation or any othe...
Definition: WorkSpace.h:67
void empty()
Definition: MUSTProblem.h:121
This class contains the configuration of a level of cache of processor.
Definition: Cache.h:34
~MUSTProblem()
Definition: cache_MUSTProblem.cpp:49
bool contains(const int id)
Definition: MUSTProblem.h:127
void print(elm::io::Output &output) const
Definition: MUSTProblem.h:151
int getSize(void)
Definition: MUSTProblem.h:100
Definition: MUSTProblem.h:39
sys::SystemOutStream & out
This class represents the list of l-blocks of a task for a chosen cache row.
Definition: LBlockSet.h:38
bool equals(const Domain &a, const Domain &b) const
Definition: MUSTProblem.h:224
const Domain & bottom(void) const
Definition: cache_MUSTProblem.cpp:52
~Domain()
Definition: MUSTProblem.h:63
hai_context_t
Definition: HalfAbsInt.h:50
bool equals(const Domain &dom) const
Definition: MUSTProblem.h:113
void enterContext(Domain &dom, BasicBlock *header, hai_context_t ctx)
Definition: MUSTProblem.h:230
This is the minimal definition of a basic block.
Definition: BasicBlock.h:43
Domain bot
Definition: MUSTProblem.h:198
Domain callstate
Definition: MUSTProblem.h:202
int size
Definition: MUSTProblem.h:45
void addDamage(const int id, const int damage)
Definition: MUSTProblem.h:104
void glb(const Domain &dom)
Definition: MUSTProblem.h:82
Definition: MUSTProblem.h:44