diff options
author | Daniel R. Carvalho <odanrc@yahoo.com.br> | 2018-10-19 17:58:42 +0200 |
---|---|---|
committer | Daniel Carvalho <odanrc@yahoo.com.br> | 2018-10-22 10:19:10 +0000 |
commit | 0330c434e211c9b16402f4f0e76110a8524ca143 (patch) | |
tree | 26a4e12bd1efb88d5140a9e12314973769cba820 /src | |
parent | 34efcae1b532df56a7ef65f0e4b76179c9bc9479 (diff) | |
download | gem5-0330c434e211c9b16402f4f0e76110a8524ca143.tar.xz |
mem-cache: Move evictBlock(CacheBlk*, PacketList&) to base
Move evictBlock(CacheBlk*, PacketList&) to base cache,
as it is both sub-classes implementations are equal.
Change-Id: I80fbd16813bfcc4938fb01ed76abe29b3f8b3018
Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br>
Reviewed-on: https://gem5-review.googlesource.com/c/13656
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/mem/cache/base.cc | 9 | ||||
-rw-r--r-- | src/mem/cache/base.hh | 2 | ||||
-rw-r--r-- | src/mem/cache/cache.cc | 11 | ||||
-rw-r--r-- | src/mem/cache/cache.hh | 2 | ||||
-rw-r--r-- | src/mem/cache/noncoherent_cache.cc | 9 | ||||
-rw-r--r-- | src/mem/cache/noncoherent_cache.hh | 2 |
6 files changed, 11 insertions, 24 deletions
diff --git a/src/mem/cache/base.cc b/src/mem/cache/base.cc index 183d93f14..ed23ffde2 100644 --- a/src/mem/cache/base.cc +++ b/src/mem/cache/base.cc @@ -1310,6 +1310,15 @@ BaseCache::invalidateBlock(CacheBlk *blk) blk->invalidate(); } +void +BaseCache::evictBlock(CacheBlk *blk, PacketList &writebacks) +{ + PacketPtr pkt = evictBlock(blk); + if (pkt) { + writebacks.push_back(pkt); + } +} + PacketPtr BaseCache::writebackBlk(CacheBlk *blk) { diff --git a/src/mem/cache/base.hh b/src/mem/cache/base.hh index b9fd7f943..52b0fdbcd 100644 --- a/src/mem/cache/base.hh +++ b/src/mem/cache/base.hh @@ -705,7 +705,7 @@ class BaseCache : public MemObject * @param blk Block to invalidate * @param writebacks Return a list of packets with writebacks */ - virtual void evictBlock(CacheBlk *blk, PacketList &writebacks) = 0; + void evictBlock(CacheBlk *blk, PacketList &writebacks); /** * Invalidate a cache block. diff --git a/src/mem/cache/cache.cc b/src/mem/cache/cache.cc index fb0eb9d05..3bb2667af 100644 --- a/src/mem/cache/cache.cc +++ b/src/mem/cache/cache.cc @@ -177,7 +177,7 @@ Cache::access(PacketPtr pkt, CacheBlk *&blk, Cycles &lat, // flush and invalidate any existing block CacheBlk *old_blk(tags->findBlock(pkt->getAddr(), pkt->isSecure())); if (old_blk && old_blk->isValid()) { - evictBlock(old_blk, writebacks); + BaseCache::evictBlock(old_blk, writebacks); } blk = nullptr; @@ -848,15 +848,6 @@ Cache::evictBlock(CacheBlk *blk) return pkt; } -void -Cache::evictBlock(CacheBlk *blk, PacketList &writebacks) -{ - PacketPtr pkt = evictBlock(blk); - if (pkt) { - writebacks.push_back(pkt); - } -} - PacketPtr Cache::cleanEvictBlk(CacheBlk *blk) { diff --git a/src/mem/cache/cache.hh b/src/mem/cache/cache.hh index 588e7b94e..a7eb97d3b 100644 --- a/src/mem/cache/cache.hh +++ b/src/mem/cache/cache.hh @@ -141,8 +141,6 @@ class Cache : public BaseCache M5_NODISCARD PacketPtr evictBlock(CacheBlk *blk) override; - void evictBlock(CacheBlk *blk, PacketList &writebacks) override; - /** * Create a CleanEvict request for the given block. * diff --git a/src/mem/cache/noncoherent_cache.cc b/src/mem/cache/noncoherent_cache.cc index 726c32f1c..5edd435c6 100644 --- a/src/mem/cache/noncoherent_cache.cc +++ b/src/mem/cache/noncoherent_cache.cc @@ -357,15 +357,6 @@ NoncoherentCache::evictBlock(CacheBlk *blk) return pkt; } -void -NoncoherentCache::evictBlock(CacheBlk *blk, PacketList &writebacks) -{ - PacketPtr pkt = evictBlock(blk); - if (pkt) { - writebacks.push_back(pkt); - } -} - NoncoherentCache* NoncoherentCacheParams::create() { diff --git a/src/mem/cache/noncoherent_cache.hh b/src/mem/cache/noncoherent_cache.hh index fea3cd980..824c7ccc9 100644 --- a/src/mem/cache/noncoherent_cache.hh +++ b/src/mem/cache/noncoherent_cache.hh @@ -125,8 +125,6 @@ class NoncoherentCache : public BaseCache M5_NODISCARD PacketPtr evictBlock(CacheBlk *blk) override; - void evictBlock(CacheBlk *blk, PacketList &writebacks) override; - public: NoncoherentCache(const NoncoherentCacheParams *p); }; |