From: Javier Bueno Date: Tue, 2 Apr 2019 21:43:28 +0000 (+0200) Subject: mem-cache: ISB prefetcher was triggering an assertion X-Git-Tag: v19.0.0.0~991 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f662b8aaacba60632e69da11cf7fc0deba958604;p=gem5.git mem-cache: ISB prefetcher was triggering an assertion An assertion ignored the case when an entry of the SP table had been invalidated. Change-Id: I5bf04e7a0979300b0f41f680c371f6397d4cbf3f Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/17734 Reviewed-by: Daniel Carvalho Maintainer: Nikos Nikoleris --- diff --git a/src/mem/cache/prefetch/irregular_stream_buffer.cc b/src/mem/cache/prefetch/irregular_stream_buffer.cc index 45aba0b32..345fe7060 100644 --- a/src/mem/cache/prefetch/irregular_stream_buffer.cc +++ b/src/mem/cache/prefetch/irregular_stream_buffer.cc @@ -147,7 +147,10 @@ IrregularStreamBufferPrefetcher::calculatePrefetch(const PrefetchInfo &pfi, Addr sp_index = mapping.address % prefetchCandidatesPerEntry; AddressMappingEntry *sp_am = spAddressMappingCache.findEntry(sp_address, is_secure); - assert(sp_am != nullptr); + if (sp_am == nullptr) { + // The entry has been evicted, can not generate prefetches + return; + } for (unsigned d = 1; d <= degree && (sp_index + d) < prefetchCandidatesPerEntry; d += 1)