summaryrefslogtreecommitdiff
path: root/src/mem/cache/cache.cc
diff options
context:
space:
mode:
authorSteve Reinhardt <stever@eecs.umich.edu>2006-12-02 22:22:58 -0800
committerSteve Reinhardt <stever@eecs.umich.edu>2006-12-02 22:22:58 -0800
commit6f94c3c8d755d1cdd3854fde5741305afcd44b19 (patch)
tree61fb04c9072ed39cd68eeacde3445cb1466f48b4 /src/mem/cache/cache.cc
parentd2a71f6b2aaad36c6420204266f006304d364ad7 (diff)
downloadgem5-6f94c3c8d755d1cdd3854fde5741305afcd44b19.tar.xz
Make cache compression policy a runtime virtual thing
instead of a template policy. --HG-- extra : convert_revision : 6a4ac7a189a950390a973fdfce94f56190de92db
Diffstat (limited to 'src/mem/cache/cache.cc')
-rw-r--r--src/mem/cache/cache.cc76
1 files changed, 20 insertions, 56 deletions
diff --git a/src/mem/cache/cache.cc b/src/mem/cache/cache.cc
index db66c096e..54d1d151f 100644
--- a/src/mem/cache/cache.cc
+++ b/src/mem/cache/cache.cc
@@ -37,7 +37,6 @@
*/
#include "mem/config/cache.hh"
-#include "mem/config/compression.hh"
#include "mem/cache/tags/cache_tags.hh"
@@ -61,11 +60,6 @@
#include "mem/cache/tags/split_lifo.hh"
#endif
-#include "base/compression/null_compression.hh"
-#if defined(USE_LZSS_COMPRESSION)
-#include "base/compression/lzss_compression.hh"
-#endif
-
#include "mem/cache/miss/miss_queue.hh"
#include "mem/cache/miss/blocking_buffer.hh"
@@ -79,68 +73,38 @@
#if defined(USE_CACHE_FALRU)
-template class Cache<CacheTags<FALRU,NullCompression>, BlockingBuffer, SimpleCoherence>;
-template class Cache<CacheTags<FALRU,NullCompression>, BlockingBuffer, UniCoherence>;
-template class Cache<CacheTags<FALRU,NullCompression>, MissQueue, SimpleCoherence>;
-template class Cache<CacheTags<FALRU,NullCompression>, MissQueue, UniCoherence>;
-#if defined(USE_LZSS_COMPRESSION)
-template class Cache<CacheTags<FALRU,LZSSCompression>, BlockingBuffer, SimpleCoherence>;
-template class Cache<CacheTags<FALRU,LZSSCompression>, BlockingBuffer, UniCoherence>;
-template class Cache<CacheTags<FALRU,LZSSCompression>, MissQueue, SimpleCoherence>;
-template class Cache<CacheTags<FALRU,LZSSCompression>, MissQueue, UniCoherence>;
-#endif
+template class Cache<CacheTags<FALRU>, BlockingBuffer, SimpleCoherence>;
+template class Cache<CacheTags<FALRU>, BlockingBuffer, UniCoherence>;
+template class Cache<CacheTags<FALRU>, MissQueue, SimpleCoherence>;
+template class Cache<CacheTags<FALRU>, MissQueue, UniCoherence>;
#endif
#if defined(USE_CACHE_IIC)
-template class Cache<CacheTags<IIC,NullCompression>, BlockingBuffer, SimpleCoherence>;
-template class Cache<CacheTags<IIC,NullCompression>, BlockingBuffer, UniCoherence>;
-template class Cache<CacheTags<IIC,NullCompression>, MissQueue, SimpleCoherence>;
-template class Cache<CacheTags<IIC,NullCompression>, MissQueue, UniCoherence>;
-#if defined(USE_LZSS_COMPRESSION)
-template class Cache<CacheTags<IIC,LZSSCompression>, BlockingBuffer, SimpleCoherence>;
-template class Cache<CacheTags<IIC,LZSSCompression>, BlockingBuffer, UniCoherence>;
-template class Cache<CacheTags<IIC,LZSSCompression>, MissQueue, SimpleCoherence>;
-template class Cache<CacheTags<IIC,LZSSCompression>, MissQueue, UniCoherence>;
-#endif
+template class Cache<CacheTags<IIC>, BlockingBuffer, SimpleCoherence>;
+template class Cache<CacheTags<IIC>, BlockingBuffer, UniCoherence>;
+template class Cache<CacheTags<IIC>, MissQueue, SimpleCoherence>;
+template class Cache<CacheTags<IIC>, MissQueue, UniCoherence>;
#endif
#if defined(USE_CACHE_LRU)
-template class Cache<CacheTags<LRU,NullCompression>, BlockingBuffer, SimpleCoherence>;
-template class Cache<CacheTags<LRU,NullCompression>, BlockingBuffer, UniCoherence>;
-template class Cache<CacheTags<LRU,NullCompression>, MissQueue, SimpleCoherence>;
-template class Cache<CacheTags<LRU,NullCompression>, MissQueue, UniCoherence>;
-#if defined(USE_LZSS_COMPRESSION)
-template class Cache<CacheTags<LRU,LZSSCompression>, BlockingBuffer, SimpleCoherence>;
-template class Cache<CacheTags<LRU,LZSSCompression>, BlockingBuffer, UniCoherence>;
-template class Cache<CacheTags<LRU,LZSSCompression>, MissQueue, SimpleCoherence>;
-template class Cache<CacheTags<LRU,LZSSCompression>, MissQueue, UniCoherence>;
-#endif
+template class Cache<CacheTags<LRU>, BlockingBuffer, SimpleCoherence>;
+template class Cache<CacheTags<LRU>, BlockingBuffer, UniCoherence>;
+template class Cache<CacheTags<LRU>, MissQueue, SimpleCoherence>;
+template class Cache<CacheTags<LRU>, MissQueue, UniCoherence>;
#endif
#if defined(USE_CACHE_SPLIT)
-template class Cache<CacheTags<Split,NullCompression>, BlockingBuffer, SimpleCoherence>;
-template class Cache<CacheTags<Split,NullCompression>, BlockingBuffer, UniCoherence>;
-template class Cache<CacheTags<Split,NullCompression>, MissQueue, SimpleCoherence>;
-template class Cache<CacheTags<Split,NullCompression>, MissQueue, UniCoherence>;
-#if defined(USE_LZSS_COMPRESSION)
-template class Cache<CacheTags<Split,LZSSCompression>, BlockingBuffer, SimpleCoherence>;
-template class Cache<CacheTags<Split,LZSSCompression>, BlockingBuffer, UniCoherence>;
-template class Cache<CacheTags<Split,LZSSCompression>, MissQueue, SimpleCoherence>;
-template class Cache<CacheTags<Split,LZSSCompression>, MissQueue, UniCoherence>;
-#endif
+template class Cache<CacheTags<Split>, BlockingBuffer, SimpleCoherence>;
+template class Cache<CacheTags<Split>, BlockingBuffer, UniCoherence>;
+template class Cache<CacheTags<Split>, MissQueue, SimpleCoherence>;
+template class Cache<CacheTags<Split>, MissQueue, UniCoherence>;
#endif
#if defined(USE_CACHE_SPLIT_LIFO)
-template class Cache<CacheTags<SplitLIFO,NullCompression>, BlockingBuffer, SimpleCoherence>;
-template class Cache<CacheTags<SplitLIFO,NullCompression>, BlockingBuffer, UniCoherence>;
-template class Cache<CacheTags<SplitLIFO,NullCompression>, MissQueue, SimpleCoherence>;
-template class Cache<CacheTags<SplitLIFO,NullCompression>, MissQueue, UniCoherence>;
-#if defined(USE_LZSS_COMPRESSION)
-template class Cache<CacheTags<SplitLIFO,LZSSCompression>, BlockingBuffer, SimpleCoherence>;
-template class Cache<CacheTags<SplitLIFO,LZSSCompression>, BlockingBuffer, UniCoherence>;
-template class Cache<CacheTags<SplitLIFO,LZSSCompression>, MissQueue, SimpleCoherence>;
-template class Cache<CacheTags<SplitLIFO,LZSSCompression>, MissQueue, UniCoherence>;
-#endif
+template class Cache<CacheTags<SplitLIFO>, BlockingBuffer, SimpleCoherence>;
+template class Cache<CacheTags<SplitLIFO>, BlockingBuffer, UniCoherence>;
+template class Cache<CacheTags<SplitLIFO>, MissQueue, SimpleCoherence>;
+template class Cache<CacheTags<SplitLIFO>, MissQueue, UniCoherence>;
#endif
#endif //DOXYGEN_SHOULD_SKIP_THIS