diff --git a/src/ACSSecurity.h b/src/ACSSecurity.h index eaf0ab995e766dc75b130b9639626acf661f54ea..0f855a4243efb65acf4ff6cda01511378d6c19d9 100644 --- a/src/ACSSecurity.h +++ b/src/ACSSecurity.h @@ -1,23 +1,28 @@ -#ifndef LRUSECURITY_ACSSECURITY_H_ -#define LRUSECURITY_ACSSECURITY_H_ +#ifndef LRUSECURITY_ACSSECURITY_H_H_ +#define LRUSECURITY_ACSSECURITY_H_H_ #include #include -#include -#include - +#include namespace lrusecurity { -class ACSSecurity : public class otawa::icat3::ACS +class ACSSecurity { public: - inline ACSSecurity(icat3::ACS acs) { - for (int i = 0; i < ms; i++){ - this[i] = acs[i]; - } - this._prev = otawa::Bag::Bag(); + ACSSecurity(){ + _acs = *new otawa::icat3::ACS(); + }; + inline ACSSecurity(otawa::icat3::ACS acs) { + this->_acs = acs; + this->_prev = otawa::Bag(); } - otawa::Bag _prev; -} + void copy(ACSSecurity b){ + _acs.copy(b._acs); + _prev = otawa::Bag(b._prev); + }; + otawa::icat3::ACS _acs; + otawa::Bag _prev; +}; } -#endif //LRUSECURITY_ACSSECURITY_H +#endif //LRUSECURITY_ACSSECURITY_H_H + diff --git a/src/Prev/ExistHitPrevDomain.h b/src/Prev/ExistHitPrevDomain.h index 6d1440138085a1ec80f715f791e377a15d3e955d..afb46e65b0cb93ae0bcf0319e14e75781cf9448c 100644 --- a/src/Prev/ExistHitPrevDomain.h +++ b/src/Prev/ExistHitPrevDomain.h @@ -24,7 +24,7 @@ public: inline void copy(t& d, const t& s) { d.copy(s); } bool equals(const t& a, const t& b) const; void join(t& d, const t& s); - void fetch(t& a, const otawa::icat3::LBlock *lb, lrupreanalysis::ACSManager& mustManager); + void fetch(t& a, const otawa::icache::Access ac, lrupreanalysis::ACSManager& mustManager); void update(const otawa::icache::Access& access, t& a, lrupreanalysis::ACSManager& mustManager); private: diff --git a/src/Prev/lrusecurity_ExistHitPrevDomain.cpp b/src/Prev/lrusecurity_ExistHitPrevDomain.cpp index d5b25efef386870eea260464530f40260d62887e..b851d0b32a00e1a82c3233e562ff014bc4d497ea 100644 --- a/src/Prev/lrusecurity_ExistHitPrevDomain.cpp +++ b/src/Prev/lrusecurity_ExistHitPrevDomain.cpp @@ -16,7 +16,7 @@ ExistHitPrevDomain::ExistHitPrevDomain( _coll(coll), _A(coll.A()), _init(init ? *init : _top), - _tmp(_n) + _tmp(*new icat3::ACS( _n)) { } @@ -44,7 +44,7 @@ void ExistHitPrevDomain::join(t& dcss, const t& scss) } //join of the Prev is a union - dcss._prev = ; + dcss._prev = scss._prev; } void ExistHitPrevDomain::fetch(t& acss, const icache::Access ac, lrupreanalysis::ACSManager& mustManager) @@ -68,10 +68,10 @@ void ExistHitPrevDomain::fetch(t& acss, const icache::Access ac, lrupreanalysis: //Updating prev for(int i = 0; i < _n; i++) { if (a[i] == icat3::BOT_AGE) - acss._prev = otawa::Bag::Bag(); + acss._prev = *new Bag(); if (i == b) - acss._prev = otawa::Bag::Bag(1, &ac); + acss._prev = *new Bag(1, &ac); } } @@ -81,13 +81,13 @@ void ExistHitPrevDomain::update(const icache::Access& access, t& a, lrupreanalys case icache::FETCH: if(_coll.cache()->set(access.address()) == _set) - fetch(a, icat3::LBLOCK(access), mustManager); + fetch(a, access, mustManager); break; case icache::PREFETCH: if(_coll.cache()->set(access.address()) == _set) { copy(_tmp, a); - fetch(a, icat3::LBLOCK(access), mustManager); + fetch(a, access, mustManager); join(a, _tmp); } break;