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>
This commit is contained in:
Daniel R. Carvalho
2018-10-19 17:58:42 +02:00
committed by Daniel Carvalho
parent 34efcae1b5
commit 0330c434e2
6 changed files with 11 additions and 24 deletions

View File

@@ -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)
{

View File

@@ -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.

View File

@@ -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)
{

View File

@@ -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.
*

View File

@@ -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()
{

View File

@@ -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);
};