mem: Add Units to mem stats
[gem5.git] / src / mem / cache / compressors / base_dictionary_compressor.cc
index d6af8ee775f461929c33714b3aa64d28176f454b..65646d58b998db4aefbe957d5e5782a92b2eee97 100644 (file)
 
 namespace Compressor {
 
-BaseDictionaryCompressor::BaseDictionaryCompressor(const Params *p)
-    : Base(p), dictionarySize(p->dictionary_size), numEntries(0)
+BaseDictionaryCompressor::BaseDictionaryCompressor(const Params &p)
+  : Base(p), dictionarySize(p.dictionary_size),
+    numEntries(0), dictionaryStats(stats, *this)
+{
+}
+
+BaseDictionaryCompressor::DictionaryStats::DictionaryStats(
+    BaseStats& base_group, BaseDictionaryCompressor& _compressor)
+  : Stats::Group(&base_group), compressor(_compressor),
+    ADD_STAT(patterns, UNIT_COUNT,
+             "Number of data entries that were compressed to this pattern")
 {
 }
 
 void
-BaseDictionaryCompressor::regStats()
+BaseDictionaryCompressor::DictionaryStats::regStats()
 {
-    Base::regStats();
+    Stats::Group::regStats();
 
     // We store the frequency of each pattern
-    patternStats
-        .init(getNumPatterns())
-        .name(name() + ".pattern")
-        .desc("Number of data entries that were compressed to this pattern.")
-        ;
-
-    for (unsigned i = 0; i < getNumPatterns(); ++i) {
-        patternStats.subname(i, getName(i));
-        patternStats.subdesc(i, "Number of data entries that match pattern " +
-                                getName(i));
+    patterns.init(compressor.getNumPatterns());
+    for (unsigned i = 0; i < compressor.getNumPatterns(); ++i) {
+        const std::string name = compressor.getName(i);
+        patterns.subname(i, name);
+        patterns.subdesc(i, "Number of data entries that match pattern " +
+            name);
     }
 }