summaryrefslogtreecommitdiff
path: root/src/mem
diff options
context:
space:
mode:
Diffstat (limited to 'src/mem')
-rw-r--r--src/mem/cache/tags/base_set_assoc.cc32
-rw-r--r--src/mem/cache/tags/base_set_assoc.hh4
2 files changed, 16 insertions, 20 deletions
diff --git a/src/mem/cache/tags/base_set_assoc.cc b/src/mem/cache/tags/base_set_assoc.cc
index ac0e06f95..f0ee2a5d8 100644
--- a/src/mem/cache/tags/base_set_assoc.cc
+++ b/src/mem/cache/tags/base_set_assoc.cc
@@ -124,14 +124,10 @@ BaseSetAssoc::findBlockBySetAndWay(int set, int way) const
std::string
BaseSetAssoc::print() const {
std::string cache_state;
- for (unsigned i = 0; i < numSets; ++i) {
- // link in the data blocks
- for (unsigned j = 0; j < assoc; ++j) {
- BlkType *blk = sets[i].blks[j];
- if (blk->isValid())
- cache_state += csprintf("\tset: %d block: %d %s\n", i, j,
- blk->print());
- }
+ for (const CacheBlk& blk : blks) {
+ if (blk.isValid())
+ cache_state += csprintf("\tset: %d way: %d %s\n", blk.set,
+ blk.way, blk.print());
}
if (cache_state.empty())
cache_state = "no valid tags\n";
@@ -141,9 +137,9 @@ BaseSetAssoc::print() const {
void
BaseSetAssoc::cleanupRefs()
{
- for (unsigned i = 0; i < numSets*assoc; ++i) {
- if (blks[i].isValid()) {
- totalRefs += blks[i].refCount;
+ for (const CacheBlk& blk : blks) {
+ if (blk.isValid()) {
+ totalRefs += blk.refCount;
++sampledRefs;
}
}
@@ -159,12 +155,12 @@ BaseSetAssoc::computeStats()
}
}
- for (unsigned i = 0; i < numSets * assoc; ++i) {
- if (blks[i].isValid()) {
- assert(blks[i].task_id < ContextSwitchTaskId::NumTaskId);
- occupanciesTaskId[blks[i].task_id]++;
- assert(blks[i].tickInserted <= curTick());
- Tick age = curTick() - blks[i].tickInserted;
+ for (const CacheBlk& blk : blks) {
+ if (blk.isValid()) {
+ assert(blk.task_id < ContextSwitchTaskId::NumTaskId);
+ occupanciesTaskId[blk.task_id]++;
+ assert(blk.tickInserted <= curTick());
+ Tick age = curTick() - blk.tickInserted;
int age_index;
if (age / SimClock::Int::us < 10) { // <10us
@@ -178,7 +174,7 @@ BaseSetAssoc::computeStats()
} else
age_index = 4; // >10ms
- ageTaskId[blks[i].task_id][age_index]++;
+ ageTaskId[blk.task_id][age_index]++;
}
}
}
diff --git a/src/mem/cache/tags/base_set_assoc.hh b/src/mem/cache/tags/base_set_assoc.hh
index ed9997608..024fda157 100644
--- a/src/mem/cache/tags/base_set_assoc.hh
+++ b/src/mem/cache/tags/base_set_assoc.hh
@@ -304,8 +304,8 @@ class BaseSetAssoc : public BaseTags
* \param visitor Visitor to call on each block.
*/
void forEachBlk(CacheBlkVisitor &visitor) override {
- for (unsigned i = 0; i < numSets * assoc; ++i) {
- if (!visitor(blks[i]))
+ for (CacheBlk& blk : blks) {
+ if (!visitor(blk))
return;
}
}