mem-cache: Create Prefetcher namespace

Create a namespace for the Prefetcher classes.

As a side effect the Prefetcher suffix has been removed from the
C++'s classes names, and the memory leaking destructor overrides
have been fixed.

Change-Id: I9bae492d2fd4734bcdfb68c164345898e65102b2
Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24537
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
Daniel R. Carvalho
2019-12-29 00:45:44 +01:00
committed by Daniel Carvalho
parent 56967e317b
commit 0be2496dd5
34 changed files with 434 additions and 305 deletions

View File

@@ -33,6 +33,8 @@
#include "params/AMPMPrefetcher.hh"
#include "params/AccessMapPatternMatching.hh"
namespace Prefetcher {
AccessMapPatternMatching::AccessMapPatternMatching(
const AccessMapPatternMatchingParams *p)
: ClockedObject(p), blkSize(p->block_size), limitStride(p->limit_stride),
@@ -149,9 +151,8 @@ AccessMapPatternMatching::setEntryState(AccessMapEntry &entry,
}
void
AccessMapPatternMatching::calculatePrefetch(
const BasePrefetcher::PrefetchInfo &pfi,
std::vector<QueuedPrefetcher::AddrPriority> &addresses)
AccessMapPatternMatching::calculatePrefetch(const Base::PrefetchInfo &pfi,
std::vector<Queued::AddrPriority> &addresses)
{
assert(addresses.empty());
@@ -218,7 +219,7 @@ AccessMapPatternMatching::calculatePrefetch(
pf_addr = am_addr * hotZoneSize + blk * blkSize;
setEntryState(*am_entry_curr, blk, AM_PREFETCH);
}
addresses.push_back(QueuedPrefetcher::AddrPriority(pf_addr, 0));
addresses.push_back(Queued::AddrPriority(pf_addr, 0));
if (addresses.size() == degree) {
break;
}
@@ -242,7 +243,7 @@ AccessMapPatternMatching::calculatePrefetch(
pf_addr = am_addr * hotZoneSize + blk * blkSize;
setEntryState(*am_entry_curr, blk, AM_PREFETCH);
}
addresses.push_back(QueuedPrefetcher::AddrPriority(pf_addr, 0));
addresses.push_back(Queued::AddrPriority(pf_addr, 0));
if (addresses.size() == degree) {
break;
}
@@ -250,26 +251,28 @@ AccessMapPatternMatching::calculatePrefetch(
}
}
AccessMapPatternMatching*
AccessMapPatternMatchingParams::create()
{
return new AccessMapPatternMatching(this);
}
AMPMPrefetcher::AMPMPrefetcher(const AMPMPrefetcherParams *p)
: QueuedPrefetcher(p), ampm(*p->ampm)
AMPM::AMPM(const AMPMPrefetcherParams *p)
: Queued(p), ampm(*p->ampm)
{
}
void
AMPMPrefetcher::calculatePrefetch(const PrefetchInfo &pfi,
AMPM::calculatePrefetch(const PrefetchInfo &pfi,
std::vector<AddrPriority> &addresses)
{
ampm.calculatePrefetch(pfi, addresses);
}
AMPMPrefetcher*
} // namespace Prefetcher
Prefetcher::AccessMapPatternMatching*
AccessMapPatternMatchingParams::create()
{
return new Prefetcher::AccessMapPatternMatching(this);
}
Prefetcher::AMPM*
AMPMPrefetcherParams::create()
{
return new AMPMPrefetcher(this);
return new Prefetcher::AMPM(this);
}