http://jenkins.gem5.org:8080/job/gem5_develop/buildTimeTrend

Yes, there is a trend tab on the build history.
The pretty graph is not showing up for some reason. I will look into that.

Note that the build machine is a 4 thread google cloud VM, so somewhat weak.


On Thu, Aug 27, 2020 at 11:58 PM Daniel Carvalho <[email protected]>
wrote:

> Out of curiosity, is the average execution time of these builds available
> somewhere?
>
>
> I agree that this should not concern those who are not in gem5-dev, but I
> think it was relevant to archive such an answer in gem5-users in case
> someone does not comply with this expectation and searches for a solution
> there.
>
>
> Regards,
>
> Daniel
> Em quinta-feira, 27 de agosto de 2020 20:58:40 GMT+2, Bobby Bruce via
> gem5-dev <[email protected]> escreveu:
>
>
> Just an FYI on this:
>
> The nightly builds don't clean the gem5 directory before pulling and
> recompiling. This saves us some build time. Obviously for stuff like this,
> we need a work around. I've therefore tweaked the building scripts with
> stuff like this:
>
> ```
> scons build/ARM/gem5.opt -j4 || (rm -rf build && scons build/ARM/gem5.opt
> -j4)
> ```
>
> Essentially, if a build fails, we start fresh and give it a second go. So,
> we shouldn't be bothered when stuff like this comes up.
>
> It would be really nice if we could improve the build system, but that's a
> longer-term goal.
>
> On the topic at hand: I agree with Jason. Non-developers should be using
> the stable master branch, which is unaffected. They'll need to do a clean
> build per release, but i don't think that's a huge ask.
>
> --
> Dr. Bobby R. Bruce
> Room 2235,
> Kemper Hall, UC Davis
> Davis,
> CA, 95616
>
> web: https://www.bobbybruce.net
>
>
> On Wed, Aug 26, 2020 at 9:56 AM Jason Lowe-Power via gem5-dev <
> [email protected]> wrote:
>
> It's a good idea to send an email to gem5-users. However, with our new
> release model, it should affect many fewer people. It's probably not true
> today, but the vision is that the only people who will care if develop
> breaks something are people subscribed to gem5-dev :).
>
> Cheers,
> Jason
>
> On Wed, Aug 26, 2020 at 12:32 AM Nikos Nikoleris via gem5-dev <
> [email protected]> wrote:
>
> Do we also need to notify users about this? It might be worth sending an
> email about this. In fact an email with a different subject to both
> gem5-users and gem5-dev as people might ignore emails for a specific CL.
>
> Nikos
>
> On 25/08/2020 23:17, Daniel Carvalho via gem5-dev wrote:
> > Was about to send an e-mail with a heads up, but I guess I was too late.
> >
> > As reported here
> > (
> https://gem5.atlassian.net/jira/software/c/projects/GEM5/issues/GEM5-753),
> > itis not an issue caused by this patch itself. SCons does not trigger
> > recompilation when a change modifies the cxx_class; therefore,
> > params/BaseCache.hh is not recompiled and generates the error. To solve
> > this, one must manually delete this file and force a recompilation.
> >
> > Regards,
> > Daniel
> >
> > Em terça-feira, 25 de agosto de 2020 21:20:56 GMT+2, mike upton via
> > gem5-dev <[email protected]> escreveu:
> >
> >
> > This checkin breaks the build.
> >
> > you can check at:
> > http://jenkins.gem5.org:8080/job/gem5_develop/136/
> >
> >
> >
> > On Tue, Aug 25, 2020 at 8:13 AM Daniel Carvalho (Gerrit) via gem5-dev
> > <[email protected] <mailto:[email protected]>> wrote:
> >
> >     Daniel Carvalho *submitted* this change.
> >
> >     View Change <
> https://gem5-review.googlesource.com/c/public/gem5/+/33294>
> >
> >     Approvals: Nikos Nikoleris: Looks good to me, approved; Looks good
> >     to me, approved kokoro: Regressions pass
> >
> >     mem-cache: Create Compressor namespace
> >
> >     Creation of the Compressor namespace. It encapsulates all the cache
> >     compressors, and other classes used by them.
> >
> >     The following classes have been renamed:
> >     BaseCacheCompressor -> Base
> >     PerfectCompressor - Perfect
> >     RepeatedQwordsCompressor -> RepeatedQwords
> >     ZeroCompressor -> Zero
> >
> >     BaseDictionaryCompressor and DictionaryCompressor were not renamed
> >     because the there is a high probability that users may want to
> >     create a Dictionary class that encompasses the dictionary contained
> >     by these compressors.
> >
> >     To apply this patch one must force recompilation (e.g., by deleting
> >     it) of build/<arch>/params/BaseCache.hh (and any other files that
> >     were previously using these compressors).
> >
> >     Change-Id: I78cb3b6fb8e3e50a52a04268e0e08dd664d81230
> >     Signed-off-by: Daniel R. Carvalho <[email protected]  <mailto:
> [email protected]>>
> >     Reviewed-on:
> https://gem5-review.googlesource.com/c/public/gem5/+/33294
> >     Reviewed-by: Nikos Nikoleris <[email protected]  <mailto:
> [email protected]>>
> >     Maintainer: Nikos Nikoleris <[email protected]  <mailto:
> [email protected]>>
> >     Tested-by: kokoro <[email protected]  <mailto:
> noreply%[email protected]>>
> >     ---
> >     M src/mem/cache/base.hh
> >     M src/mem/cache/compressors/Compressors.py
> >     M src/mem/cache/compressors/base.cc
> >     M src/mem/cache/compressors/base.hh
> >     M src/mem/cache/compressors/base_delta.cc
> >     M src/mem/cache/compressors/base_delta.hh
> >     M src/mem/cache/compressors/base_delta_impl.hh
> >     M src/mem/cache/compressors/base_dictionary_compressor.cc
> >     M src/mem/cache/compressors/cpack.cc
> >     M src/mem/cache/compressors/cpack.hh
> >     M src/mem/cache/compressors/dictionary_compressor.hh
> >     M src/mem/cache/compressors/dictionary_compressor_impl.hh
> >     M src/mem/cache/compressors/fpcd.cc
> >     M src/mem/cache/compressors/fpcd.hh
> >     M src/mem/cache/compressors/multi.cc
> >     M src/mem/cache/compressors/multi.hh
> >     M src/mem/cache/compressors/perfect.cc
> >     M src/mem/cache/compressors/perfect.hh
> >     M src/mem/cache/compressors/repeated_qwords.cc
> >     M src/mem/cache/compressors/repeated_qwords.hh
> >     M src/mem/cache/compressors/zero.cc
> >     M src/mem/cache/compressors/zero.hh
> >     22 files changed, 231 insertions(+), 165 deletions(-)
> >
> >     diff --git a/src/mem/cache/base.hh b/src/mem/cache/base.hh
> >     index 3efc7c7..d30de3f 100644
> >     --- a/src/mem/cache/base.hh
> >     +++ b/src/mem/cache/base.hh
> >     @@ -320,7 +320,7 @@
> >     BaseTags *tags;
> >
> >     /** Compression method being used. */
> >     - BaseCacheCompressor* compressor;
> >     + Compressor::Base* compressor;
> >
> >     /** Prefetcher */
> >     Prefetcher::Base *prefetcher;
> >     diff --git a/src/mem/cache/compressors/Compressors.py
> >     b/src/mem/cache/compressors/Compressors.py
> >     index eb1952a..46050f6 100644
> >     --- a/src/mem/cache/compressors/Compressors.py
> >     +++ b/src/mem/cache/compressors/Compressors.py
> >     @@ -1,4 +1,4 @@
> >     -# Copyright (c) 2018 Inria
> >     +# Copyright (c) 2018-2020 Inria
> >     # All rights reserved.
> >     #
> >     # Redistribution and use in source and binary forms, with or without
> >     @@ -31,6 +31,7 @@
> >     class BaseCacheCompressor(SimObject):
> >     type = 'BaseCacheCompressor'
> >     abstract = True
> >     + cxx_class = 'Compressor::Base'
> >     cxx_header = "mem/cache/compressors/base.hh"
> >
> >     block_size = Param.Int(Parent.cache_line_size, "Block size in bytes")
> >     @@ -41,6 +42,7 @@
> >     class BaseDictionaryCompressor(BaseCacheCompressor):
> >     type = 'BaseDictionaryCompressor'
> >     abstract = True
> >     + cxx_class = 'Compressor::BaseDictionaryCompressor'
> >     cxx_header = "mem/cache/compressors/dictionary_compressor.hh"
> >
> >     dictionary_size = Param.Int(Parent.cache_line_size,
> >     @@ -48,49 +50,49 @@
> >
> >     class Base64Delta8(BaseDictionaryCompressor):
> >     type = 'Base64Delta8'
> >     - cxx_class = 'Base64Delta8'
> >     + cxx_class = 'Compressor::Base64Delta8'
> >     cxx_header = "mem/cache/compressors/base_delta.hh"
> >
> >     class Base64Delta16(BaseDictionaryCompressor):
> >     type = 'Base64Delta16'
> >     - cxx_class = 'Base64Delta16'
> >     + cxx_class = 'Compressor::Base64Delta16'
> >     cxx_header = "mem/cache/compressors/base_delta.hh"
> >
> >     class Base64Delta32(BaseDictionaryCompressor):
> >     type = 'Base64Delta32'
> >     - cxx_class = 'Base64Delta32'
> >     + cxx_class = 'Compressor::Base64Delta32'
> >     cxx_header = "mem/cache/compressors/base_delta.hh"
> >
> >     class Base32Delta8(BaseDictionaryCompressor):
> >     type = 'Base32Delta8'
> >     - cxx_class = 'Base32Delta8'
> >     + cxx_class = 'Compressor::Base32Delta8'
> >     cxx_header = "mem/cache/compressors/base_delta.hh"
> >
> >     class Base32Delta16(BaseDictionaryCompressor):
> >     type = 'Base32Delta16'
> >     - cxx_class = 'Base32Delta16'
> >     + cxx_class = 'Compressor::Base32Delta16'
> >     cxx_header = "mem/cache/compressors/base_delta.hh"
> >
> >     class Base16Delta8(BaseDictionaryCompressor):
> >     type = 'Base16Delta8'
> >     - cxx_class = 'Base16Delta8'
> >     + cxx_class = 'Compressor::Base16Delta8'
> >     cxx_header = "mem/cache/compressors/base_delta.hh"
> >
> >     class CPack(BaseDictionaryCompressor):
> >     type = 'CPack'
> >     - cxx_class = 'CPack'
> >     + cxx_class = 'Compressor::CPack'
> >     cxx_header = "mem/cache/compressors/cpack.hh"
> >
> >     class FPCD(BaseDictionaryCompressor):
> >     type = 'FPCD'
> >     - cxx_class = 'FPCD'
> >     + cxx_class = 'Compressor::FPCD'
> >     cxx_header = "mem/cache/compressors/fpcd.hh"
> >
> >     dictionary_size = 2
> >
> >     class MultiCompressor(BaseCacheCompressor):
> >     type = 'MultiCompressor'
> >     - cxx_class = 'MultiCompressor'
> >     + cxx_class = 'Compressor::Multi'
> >     cxx_header = "mem/cache/compressors/multi.hh"
> >
> >     # Dummy default compressor list. This might not be an optimal choice,
> >     @@ -100,7 +102,7 @@
> >
> >     class PerfectCompressor(BaseCacheCompressor):
> >     type = 'PerfectCompressor'
> >     - cxx_class = 'PerfectCompressor'
> >     + cxx_class = 'Compressor::Perfect'
> >     cxx_header = "mem/cache/compressors/perfect.hh"
> >
> >     max_compression_ratio = Param.Int(2,
> >     @@ -112,12 +114,12 @@
> >
> >     class RepeatedQwordsCompressor(BaseDictionaryCompressor):
> >     type = 'RepeatedQwordsCompressor'
> >     - cxx_class = 'RepeatedQwordsCompressor'
> >     + cxx_class = 'Compressor::RepeatedQwords'
> >     cxx_header = "mem/cache/compressors/repeated_qwords.hh"
> >
> >     class ZeroCompressor(BaseDictionaryCompressor):
> >     type = 'ZeroCompressor'
> >     - cxx_class = 'ZeroCompressor'
> >     + cxx_class = 'Compressor::Zero'
> >     cxx_header = "mem/cache/compressors/zero.hh"
> >
> >     class BDI(MultiCompressor):
> >     diff --git a/src/mem/cache/compressors/base.cc
> >     b/src/mem/cache/compressors/base.cc
> >     index d08a5b9..f8fda81 100644
> >     --- a/src/mem/cache/compressors/base.cc
> >     +++ b/src/mem/cache/compressors/base.cc
> >     @@ -1,5 +1,5 @@
> >     /*
> >     - * Copyright (c) 2018 Inria
> >     + * Copyright (c) 2018-2020 Inria
> >     * All rights reserved.
> >     *
> >     * Redistribution and use in source and binary forms, with or without
> >     @@ -42,37 +42,39 @@
> >     #include "mem/cache/tags/super_blk.hh"
> >     #include "params/BaseCacheCompressor.hh"
> >
> >     +namespace Compressor {
> >     +
> >     // Uncomment this line if debugging compression
> >     //#define DEBUG_COMPRESSION
> >
> >     -BaseCacheCompressor::CompressionData::CompressionData()
> >     +Base::CompressionData::CompressionData()
> >     : _size(0)
> >     {
> >     }
> >
> >     -BaseCacheCompressor::CompressionData::~CompressionData()
> >     +Base::CompressionData::~CompressionData()
> >     {
> >     }
> >
> >     void
> >     -BaseCacheCompressor::CompressionData::setSizeBits(std::size_t size)
> >     +Base::CompressionData::setSizeBits(std::size_t size)
> >     {
> >     _size = size;
> >     }
> >
> >     std::size_t
> >     -BaseCacheCompressor::CompressionData::getSizeBits() const
> >     +Base::CompressionData::getSizeBits() const
> >     {
> >     return _size;
> >     }
> >
> >     std::size_t
> >     -BaseCacheCompressor::CompressionData::getSize() const
> >     +Base::CompressionData::getSize() const
> >     {
> >     return std::ceil(_size/8);
> >     }
> >
> >     -BaseCacheCompressor::BaseCacheCompressor(const Params *p)
> >     +Base::Base(const Params *p)
> >     : SimObject(p), blkSize(p->block_size),
> >     sizeThreshold(p->size_threshold),
> >     stats(*this)
> >     {
> >     @@ -80,7 +82,7 @@
> >     }
> >
> >     void
> >     -BaseCacheCompressor::compress(const uint64_t* data, Cycles&
> comp_lat,
> >     +Base::compress(const uint64_t* data, Cycles& comp_lat,
> >     Cycles& decomp_lat, std::size_t& comp_size_bits)
> >     {
> >     // Apply compression
> >     @@ -119,7 +121,7 @@
> >     }
> >
> >     Cycles
> >     -BaseCacheCompressor::getDecompressionLatency(const CacheBlk* blk)
> >     +Base::getDecompressionLatency(const CacheBlk* blk)
> >     {
> >     const CompressionBlk* comp_blk = static_cast<const
> >     CompressionBlk*>(blk);
> >
> >     @@ -137,7 +139,7 @@
> >     }
> >
> >     void
> >     -BaseCacheCompressor::setDecompressionLatency(CacheBlk* blk, const
> >     Cycles lat)
> >     +Base::setDecompressionLatency(CacheBlk* blk, const Cycles lat)
> >     {
> >     // Sanity check
> >     assert(blk != nullptr);
> >     @@ -147,7 +149,7 @@
> >     }
> >
> >     void
> >     -BaseCacheCompressor::setSizeBits(CacheBlk* blk, const std::size_t
> >     size_bits)
> >     +Base::setSizeBits(CacheBlk* blk, const std::size_t size_bits)
> >     {
> >     // Sanity check
> >     assert(blk != nullptr);
> >     @@ -156,8 +158,7 @@
> >     static_cast<CompressionBlk*>(blk)->setSizeBits(size_bits);
> >     }
> >
> >
>  -BaseCacheCompressor::BaseCacheCompressorStats::BaseCacheCompressorStats(
> >     - BaseCacheCompressor& _compressor)
> >     +Base::BaseStats::BaseStats(Base& _compressor)
> >     : Stats::Group(&_compressor), compressor(_compressor),
> >     compressions(this, "compressions",
> >     "Total number of compressions"),
> >     @@ -173,7 +174,7 @@
> >     }
> >
> >     void
> >     -BaseCacheCompressor::BaseCacheCompressorStats::regStats()
> >     +Base::BaseStats::regStats()
> >     {
> >     Stats::Group::regStats();
> >
> >     @@ -189,3 +190,4 @@
> >     avgCompressionSizeBits = compressionSizeBits / compressions;
> >     }
> >
> >     +} // namespace Compressor
> >     diff --git a/src/mem/cache/compressors/base.hh
> >     b/src/mem/cache/compressors/base.hh
> >     index 61233c3..87cb0fc 100644
> >     --- a/src/mem/cache/compressors/base.hh
> >     +++ b/src/mem/cache/compressors/base.hh
> >     @@ -1,5 +1,5 @@
> >     /*
> >     - * Copyright (c) 2018 Inria
> >     + * Copyright (c) 2018-2020 Inria
> >     * All rights reserved.
> >     *
> >     * Redistribution and use in source and binary forms, with or without
> >     @@ -45,18 +45,20 @@
> >     class CacheBlk;
> >     struct BaseCacheCompressorParams;
> >
> >     +namespace Compressor {
> >     +
> >     /**
> >     * Base cache compressor interface. Every cache compressor must
> >     implement a
> >     * compression and a decompression method.
> >     */
> >     -class BaseCacheCompressor : public SimObject
> >     +class Base : public SimObject
> >     {
> >     protected:
> >     /**
> >     * This compressor must be able to access the protected functions of
> >     * its sub-compressors.
> >     */
> >     - friend class MultiCompressor;
> >     + friend class Multi;
> >
> >     /**
> >     * Forward declaration of compression data. Every new compressor must
> >     @@ -75,11 +77,11 @@
> >     */
> >     const std::size_t sizeThreshold;
> >
> >     - struct BaseCacheCompressorStats : public Stats::Group
> >     + struct BaseStats : public Stats::Group
> >     {
> >     - const BaseCacheCompressor& compressor;
> >     + const Base& compressor;
> >
> >     - BaseCacheCompressorStats(BaseCacheCompressor& compressor);
> >     + BaseStats(Base& compressor);
> >
> >     void regStats() override;
> >
> >     @@ -124,18 +126,9 @@
> >     uint64_t* cache_line) = 0;
> >
> >     public:
> >     - /** Convenience typedef. */
> >     - typedef BaseCacheCompressorParams Params;
> >     -
> >     - /**
> >     - * Default constructor.
> >     - */
> >     - BaseCacheCompressor(const Params *p);
> >     -
> >     - /**
> >     - * Default destructor.
> >     - */
> >     - virtual ~BaseCacheCompressor() {};
> >     + typedef BaseCacheCompressorParams Params;
> >     + Base(const Params *p);
> >     + virtual ~Base() = default;
> >
> >     /**
> >     * Apply the compression process to the cache line. Ignores
> compression
> >     @@ -174,7 +167,8 @@
> >     static void setSizeBits(CacheBlk* blk, const std::size_t size_bits);
> >     };
> >
> >     -class BaseCacheCompressor::CompressionData {
> >     +class Base::CompressionData
> >     +{
> >     private:
> >     /**
> >     * Compressed cache line size (in bits).
> >     @@ -214,4 +208,6 @@
> >     std::size_t getSize() const;
> >     };
> >
> >     +} // namespace Compressor
> >     +
> >     #endif //__MEM_CACHE_COMPRESSORS_BASE_HH__
> >     diff --git a/src/mem/cache/compressors/base_delta.cc
> >     b/src/mem/cache/compressors/base_delta.cc
> >     index 5af3b38..2d0aafe 100644
> >     --- a/src/mem/cache/compressors/base_delta.cc
> >     +++ b/src/mem/cache/compressors/base_delta.cc
> >     @@ -1,5 +1,5 @@
> >     /*
> >     - * Copyright (c) 2019 Inria
> >     + * Copyright (c) 2019-2020 Inria
> >     * All rights reserved.
> >     *
> >     * Redistribution and use in source and binary forms, with or without
> >     @@ -39,6 +39,8 @@
> >     #include "params/Base64Delta32.hh"
> >     #include "params/Base64Delta8.hh"
> >
> >     +namespace Compressor {
> >     +
> >     Base64Delta8::Base64Delta8(const Params *p)
> >     : BaseDelta<uint64_t, 8>(p)
> >     {
> >     @@ -69,38 +71,40 @@
> >     {
> >     }
> >
> >     -Base64Delta8*
> >     +} // namespace Compressor
> >     +
> >     +Compressor::Base64Delta8*
> >     Base64Delta8Params::create()
> >     {
> >     - return new Base64Delta8(this);
> >     + return new Compressor::Base64Delta8(this);
> >     }
> >
> >     -Base64Delta16*
> >     +Compressor::Base64Delta16*
> >     Base64Delta16Params::create()
> >     {
> >     - return new Base64Delta16(this);
> >     + return new Compressor::Base64Delta16(this);
> >     }
> >
> >     -Base64Delta32*
> >     +Compressor::Base64Delta32*
> >     Base64Delta32Params::create()
> >     {
> >     - return new Base64Delta32(this);
> >     + return new Compressor::Base64Delta32(this);
> >     }
> >
> >     -Base32Delta8*
> >     +Compressor::Base32Delta8*
> >     Base32Delta8Params::create()
> >     {
> >     - return new Base32Delta8(this);
> >     + return new Compressor::Base32Delta8(this);
> >     }
> >
> >     -Base32Delta16*
> >     +Compressor::Base32Delta16*
> >     Base32Delta16Params::create()
> >     {
> >     - return new Base32Delta16(this);
> >     + return new Compressor::Base32Delta16(this);
> >     }
> >
> >     -Base16Delta8*
> >     +Compressor::Base16Delta8*
> >     Base16Delta8Params::create()
> >     {
> >     - return new Base16Delta8(this);
> >     + return new Compressor::Base16Delta8(this);
> >     }
> >     diff --git a/src/mem/cache/compressors/base_delta.hh
> >     b/src/mem/cache/compressors/base_delta.hh
> >     index 6c54acd..1e4b70e 100644
> >     --- a/src/mem/cache/compressors/base_delta.hh
> >     +++ b/src/mem/cache/compressors/base_delta.hh
> >     @@ -1,5 +1,5 @@
> >     /*
> >     - * Copyright (c) 2019 Inria
> >     + * Copyright (c) 2019-2020 Inria
> >     * All rights reserved.
> >     *
> >     * Redistribution and use in source and binary forms, with or without
> >     @@ -49,6 +49,8 @@
> >     struct Base32Delta16Params;
> >     struct Base16Delta8Params;
> >
> >     +namespace Compressor {
> >     +
> >     /**
> >     * Base class for all base-delta-immediate compressors. Although not
> >     proposed
> >     * like this in the original paper, the sub-compressors of BDI are
> >     dictionary
> >     @@ -113,7 +115,7 @@
> >
> >     void addToDictionary(DictionaryEntry data) override;
> >
> >     - std::unique_ptr<BaseCacheCompressor::CompressionData>
> >     + std::unique_ptr<Base::CompressionData>
> >     compress(const uint64_t* data, Cycles& comp_lat,
> >     Cycles& decomp_lat) override;
> >
> >     @@ -201,4 +203,6 @@
> >     ~Base16Delta8() = default;
> >     };
> >
> >     +} // namespace Compressor
> >     +
> >     #endif //__MEM_CACHE_COMPRESSORS_BASE_DELTA_HH__
> >     diff --git a/src/mem/cache/compressors/base_delta_impl.hh
> >     b/src/mem/cache/compressors/base_delta_impl.hh
> >     index fb3dfec..97ab1cf 100644
> >     --- a/src/mem/cache/compressors/base_delta_impl.hh
> >     +++ b/src/mem/cache/compressors/base_delta_impl.hh
> >     @@ -1,5 +1,5 @@
> >     /*
> >     - * Copyright (c) 2019 Inria
> >     + * Copyright (c) 2019-2020 Inria
> >     * All rights reserved.
> >     *
> >     * Redistribution and use in source and binary forms, with or without
> >     @@ -37,6 +37,8 @@
> >     #include "mem/cache/compressors/base_delta.hh"
> >     #include "mem/cache/compressors/dictionary_compressor_impl.hh"
> >
> >     +namespace Compressor {
> >     +
> >     template <class BaseType, std::size_t DeltaSizeBits>
> >     BaseDelta<BaseType, DeltaSizeBits>::BaseDelta(const Params *p)
> >     : DictionaryCompressor<BaseType>(p)
> >     @@ -64,11 +66,11 @@
> >     }
> >
> >     template <class BaseType, std::size_t DeltaSizeBits>
> >     -std::unique_ptr<BaseCacheCompressor::CompressionData>
> >     +std::unique_ptr<Base::CompressionData>
> >     BaseDelta<BaseType, DeltaSizeBits>::compress(const uint64_t* data,
> >     Cycles& comp_lat, Cycles& decomp_lat)
> >     {
> >     - std::unique_ptr<BaseCacheCompressor::CompressionData> comp_data =
> >     + std::unique_ptr<Base::CompressionData> comp_data =
> >     DictionaryCompressor<BaseType>::compress(data);
> >
> >     // If there are more bases than the maximum, the compressor failed.
> >     @@ -98,4 +100,6 @@
> >     return comp_data;
> >     }
> >
> >     +} // namespace Compressor
> >     +
> >     #endif //__MEM_CACHE_COMPRESSORS_BASE_DELTA_IMPL_HH__
> >     diff --git a/src/mem/cache/compressors/base_dictionary_compressor.cc
> >     b/src/mem/cache/compressors/base_dictionary_compressor.cc
> >     index e454bbd..d6af8ee 100644
> >     --- a/src/mem/cache/compressors/base_dictionary_compressor.cc
> >     +++ b/src/mem/cache/compressors/base_dictionary_compressor.cc
> >     @@ -1,5 +1,5 @@
> >     /*
> >     - * Copyright (c) 2018-2019 Inria
> >     + * Copyright (c) 2018-2020 Inria
> >     * All rights reserved.
> >     *
> >     * Redistribution and use in source and binary forms, with or without
> >     @@ -34,15 +34,17 @@
> >     #include "mem/cache/compressors/dictionary_compressor.hh"
> >     #include "params/BaseDictionaryCompressor.hh"
> >
> >     +namespace Compressor {
> >     +
> >     BaseDictionaryCompressor::BaseDictionaryCompressor(const Params *p)
> >     - : BaseCacheCompressor(p), dictionarySize(p->dictionary_size),
> >     numEntries(0)
> >     + : Base(p), dictionarySize(p->dictionary_size), numEntries(0)
> >     {
> >     }
> >
> >     void
> >     BaseDictionaryCompressor::regStats()
> >     {
> >     - BaseCacheCompressor::regStats();
> >     + Base::regStats();
> >
> >     // We store the frequency of each pattern
> >     patternStats
> >     @@ -57,3 +59,5 @@
> >     getName(i));
> >     }
> >     }
> >     +
> >     +} // namespace Compressor
> >     diff --git a/src/mem/cache/compressors/cpack.cc
> >     b/src/mem/cache/compressors/cpack.cc
> >     index b99bf62..40e983a 100644
> >     --- a/src/mem/cache/compressors/cpack.cc
> >     +++ b/src/mem/cache/compressors/cpack.cc
> >     @@ -1,5 +1,5 @@
> >     /*
> >     - * Copyright (c) 2018-2019 Inria
> >     + * Copyright (c) 2018-2020 Inria
> >     * All rights reserved.
> >     *
> >     * Redistribution and use in source and binary forms, with or without
> >     @@ -35,6 +35,8 @@
> >     #include "mem/cache/compressors/dictionary_compressor_impl.hh"
> >     #include "params/CPack.hh"
> >
> >     +namespace Compressor {
> >     +
> >     CPack::CPack(const Params *p)
> >     : DictionaryCompressor<uint32_t>(p)
> >     {
> >     @@ -47,10 +49,10 @@
> >     dictionary[numEntries++] = data;
> >     }
> >
> >     -std::unique_ptr<BaseCacheCompressor::CompressionData>
> >     +std::unique_ptr<Base::CompressionData>
> >     CPack::compress(const uint64_t* data, Cycles& comp_lat, Cycles&
> >     decomp_lat)
> >     {
> >     - std::unique_ptr<BaseCacheCompressor::CompressionData> comp_data =
> >     + std::unique_ptr<Base::CompressionData> comp_data =
> >     DictionaryCompressor<uint32_t>::compress(data);
> >
> >     // Set compression latency (Accounts for pattern matching, length
> >     @@ -64,8 +66,10 @@
> >     return comp_data;
> >     }
> >
> >     -CPack*
> >     +} // namespace Compressor
> >     +
> >     +Compressor::CPack*
> >     CPackParams::create()
> >     {
> >     - return new CPack(this);
> >     + return new Compressor::CPack(this);
> >     }
> >     diff --git a/src/mem/cache/compressors/cpack.hh
> >     b/src/mem/cache/compressors/cpack.hh
> >     index a7ffe11..2925b54 100644
> >     --- a/src/mem/cache/compressors/cpack.hh
> >     +++ b/src/mem/cache/compressors/cpack.hh
> >     @@ -1,5 +1,5 @@
> >     /*
> >     - * Copyright (c) 2018-2019 Inria
> >     + * Copyright (c) 2018-2020 Inria
> >     * All rights reserved.
> >     *
> >     * Redistribution and use in source and binary forms, with or without
> >     @@ -43,6 +43,8 @@
> >
> >     struct CPackParams;
> >
> >     +namespace Compressor {
> >     +
> >     class CPack : public DictionaryCompressor<uint32_t>
> >     {
> >     private:
> >     @@ -104,7 +106,7 @@
> >     * @param decomp_lat Decompression latency in number of cycles.
> >     * @return Cache line after compression.
> >     */
> >     - std::unique_ptr<BaseCacheCompressor::CompressionData> compress(
> >     + std::unique_ptr<Base::CompressionData> compress(
> >     const uint64_t* data, Cycles& comp_lat, Cycles& decomp_lat) override;
> >
> >     public:
> >     @@ -178,4 +180,6 @@
> >     }
> >     };
> >
> >     +} // namespace Compressor
> >     +
> >     #endif //__MEM_CACHE_COMPRESSORS_CPACK_HH__
> >     diff --git a/src/mem/cache/compressors/dictionary_compressor.hh
> >     b/src/mem/cache/compressors/dictionary_compressor.hh
> >     index 06a90cb..fce79d5 100644
> >     --- a/src/mem/cache/compressors/dictionary_compressor.hh
> >     +++ b/src/mem/cache/compressors/dictionary_compressor.hh
> >     @@ -1,5 +1,5 @@
> >     /*
> >     - * Copyright (c) 2018-2019 Inria
> >     + * Copyright (c) 2018-2020 Inria
> >     * All rights reserved.
> >     *
> >     * Redistribution and use in source and binary forms, with or without
> >     @@ -56,7 +56,9 @@
> >
> >     struct BaseDictionaryCompressorParams;
> >
> >     -class BaseDictionaryCompressor : public BaseCacheCompressor
> >     +namespace Compressor {
> >     +
> >     +class BaseDictionaryCompressor : public Base
> >     {
> >     protected:
> >     /** Dictionary size. */
> >     @@ -225,8 +227,7 @@
> >     * @param data The cache line to be compressed.
> >     * @return Cache line after compression.
> >     */
> >     - std::unique_ptr<BaseCacheCompressor::CompressionData> compress(
> >     - const uint64_t* data);
> >     + std::unique_ptr<Base::CompressionData> compress(const uint64_t*
> data);
> >
> >     using BaseDictionaryCompressor::compress;
> >
> >     @@ -725,4 +726,6 @@
> >     }
> >     };
> >
> >     +} // namespace Compressor
> >     +
> >     #endif //__MEM_CACHE_COMPRESSORS_DICTIONARY_COMPRESSOR_HH__
> >     diff --git a/src/mem/cache/compressors/dictionary_compressor_impl.hh
> >     b/src/mem/cache/compressors/dictionary_compressor_impl.hh
> >     index d771d52..0b486e3 100644
> >     --- a/src/mem/cache/compressors/dictionary_compressor_impl.hh
> >     +++ b/src/mem/cache/compressors/dictionary_compressor_impl.hh
> >     @@ -1,5 +1,5 @@
> >     /*
> >     - * Copyright (c) 2018-2019 Inria
> >     + * Copyright (c) 2018-2020 Inria
> >     * All rights reserved.
> >     *
> >     * Redistribution and use in source and binary forms, with or without
> >     @@ -40,6 +40,8 @@
> >     #include "mem/cache/compressors/dictionary_compressor.hh"
> >     #include "params/BaseDictionaryCompressor.hh"
> >
> >     +namespace Compressor {
> >     +
> >     template <class T>
> >     DictionaryCompressor<T>::CompData::CompData()
> >     : CompressionData()
> >     @@ -113,10 +115,10 @@
> >     }
> >
> >     template <class T>
> >     -std::unique_ptr<BaseCacheCompressor::CompressionData>
> >     +std::unique_ptr<Base::CompressionData>
> >     DictionaryCompressor<T>::compress(const uint64_t* data)
> >     {
> >     - std::unique_ptr<BaseCacheCompressor::CompressionData> comp_data =
> >     + std::unique_ptr<Base::CompressionData> comp_data =
> >     std::unique_ptr<CompData>(new CompData());
> >
> >     // Reset dictionary
> >     @@ -209,4 +211,6 @@
> >     return value;
> >     }
> >
> >     +} // namespace Compressor
> >     +
> >     #endif //__MEM_CACHE_COMPRESSORS_DICTIONARY_COMPRESSOR_IMPL_HH__
> >     diff --git a/src/mem/cache/compressors/fpcd.cc
> >     b/src/mem/cache/compressors/fpcd.cc
> >     index e3529e5..ba46379 100644
> >     --- a/src/mem/cache/compressors/fpcd.cc
> >     +++ b/src/mem/cache/compressors/fpcd.cc
> >     @@ -1,5 +1,5 @@
> >     /*
> >     - * Copyright (c) 2019 Inria
> >     + * Copyright (c) 2019-2020 Inria
> >     * All rights reserved.
> >     *
> >     * Redistribution and use in source and binary forms, with or without
> >     @@ -35,6 +35,8 @@
> >     #include "mem/cache/compressors/dictionary_compressor_impl.hh"
> >     #include "params/FPCD.hh"
> >
> >     +namespace Compressor {
> >     +
> >     FPCD::FPCD(const Params *p)
> >     : DictionaryCompressor<uint32_t>(p)
> >     {
> >     @@ -52,10 +54,10 @@
> >     }
> >     }
> >
> >     -std::unique_ptr<BaseCacheCompressor::CompressionData>
> >     +std::unique_ptr<Base::CompressionData>
> >     FPCD::compress(const uint64_t* data, Cycles& comp_lat, Cycles&
> >     decomp_lat)
> >     {
> >     - std::unique_ptr<BaseCacheCompressor::CompressionData> comp_data =
> >     + std::unique_ptr<Base::CompressionData> comp_data =
> >     DictionaryCompressor<uint32_t>::compress(data);
> >
> >     // Set compression latency (Accounts for zero checks, ones check,
> match
> >     @@ -71,8 +73,10 @@
> >     return comp_data;
> >     }
> >
> >     -FPCD*
> >     +} // namespace Compressor
> >     +
> >     +Compressor::FPCD*
> >     FPCDParams::create()
> >     {
> >     - return new FPCD(this);
> >     + return new Compressor::FPCD(this);
> >     }
> >     diff --git a/src/mem/cache/compressors/fpcd.hh
> >     b/src/mem/cache/compressors/fpcd.hh
> >     index 61785bc..8aed461 100644
> >     --- a/src/mem/cache/compressors/fpcd.hh
> >     +++ b/src/mem/cache/compressors/fpcd.hh
> >     @@ -1,5 +1,5 @@
> >     /*
> >     - * Copyright (c) 2019 Inria
> >     + * Copyright (c) 2019-2020 Inria
> >     * All rights reserved.
> >     *
> >     * Redistribution and use in source and binary forms, with or without
> >     @@ -49,6 +49,8 @@
> >
> >     struct FPCDParams;
> >
> >     +namespace Compressor {
> >     +
> >     class FPCD : public DictionaryCompressor<uint32_t>
> >     {
> >     private:
> >     @@ -137,7 +139,7 @@
> >
> >     void addToDictionary(DictionaryEntry data) override;
> >
> >     - std::unique_ptr<BaseCacheCompressor::CompressionData> compress(
> >     + std::unique_ptr<Base::CompressionData> compress(
> >     const uint64_t* data, Cycles& comp_lat, Cycles& decomp_lat) override;
> >
> >     public:
> >     @@ -318,4 +320,6 @@
> >     }
> >     };
> >
> >     +} // namespace Compressor
> >     +
> >     #endif //__MEM_CACHE_COMPRESSORS_FPCD_HH__
> >     diff --git a/src/mem/cache/compressors/multi.cc
> >     b/src/mem/cache/compressors/multi.cc
> >     index d1e7fbc..f42602e 100644
> >     --- a/src/mem/cache/compressors/multi.cc
> >     +++ b/src/mem/cache/compressors/multi.cc
> >     @@ -1,5 +1,5 @@
> >     /*
> >     - * Copyright (c) 2019 Inria
> >     + * Copyright (c) 2019-2020 Inria
> >     * All rights reserved.
> >     *
> >     * Redistribution and use in source and binary forms, with or without
> >     @@ -41,45 +41,47 @@
> >     #include "debug/CacheComp.hh"
> >     #include "params/MultiCompressor.hh"
> >
> >     -MultiCompressor::MultiCompData::MultiCompData(unsigned index,
> >     - std::unique_ptr<BaseCacheCompressor::CompressionData> comp_data)
> >     +namespace Compressor {
> >     +
> >     +Multi::MultiCompData::MultiCompData(unsigned index,
> >     + std::unique_ptr<Base::CompressionData> comp_data)
> >     : CompressionData(), index(index), compData(std::move(comp_data))
> >     {
> >     setSizeBits(compData->getSizeBits());
> >     }
> >
> >     uint8_t
> >     -MultiCompressor::MultiCompData::getIndex() const
> >     +Multi::MultiCompData::getIndex() const
> >     {
> >     return index;
> >     }
> >
> >     -MultiCompressor::MultiCompressor(const Params *p)
> >     - : BaseCacheCompressor(p), compressors(p->compressors)
> >     +Multi::Multi(const Params *p)
> >     + : Base(p), compressors(p->compressors)
> >     {
> >     fatal_if(compressors.size() == 0, "There must be at least one
> >     compressor");
> >     }
> >
> >     -MultiCompressor::~MultiCompressor()
> >     +Multi::~Multi()
> >     {
> >     for (auto& compressor : compressors) {
> >     delete compressor;
> >     }
> >     }
> >
> >     -std::unique_ptr<BaseCacheCompressor::CompressionData>
> >     -MultiCompressor::compress(const uint64_t* cache_line, Cycles&
> comp_lat,
> >     +std::unique_ptr<Base::CompressionData>
> >     +Multi::compress(const uint64_t* cache_line, Cycles& comp_lat,
> >     Cycles& decomp_lat)
> >     {
> >     struct Results
> >     {
> >     unsigned index;
> >     - std::unique_ptr<BaseCacheCompressor::CompressionData> compData;
> >     + std::unique_ptr<Base::CompressionData> compData;
> >     Cycles decompLat;
> >     uint8_t compressionFactor;
> >
> >     Results(unsigned index,
> >     - std::unique_ptr<BaseCacheCompressor::CompressionData> comp_data,
> >     + std::unique_ptr<Base::CompressionData> comp_data,
> >     Cycles decomp_lat, std::size_t blk_size)
> >     : index(index), compData(std::move(comp_data)),
> >     decompLat(decomp_lat)
> >     @@ -147,7 +149,7 @@
> >     }
> >
> >     void
> >     -MultiCompressor::decompress(const CompressionData* comp_data,
> >     +Multi::decompress(const CompressionData* comp_data,
> >     uint64_t* cache_line)
> >     {
> >     const MultiCompData* casted_comp_data =
> >     @@ -157,9 +159,9 @@
> >     }
> >
> >     void
> >     -MultiCompressor::regStats()
> >     +Multi::regStats()
> >     {
> >     - BaseCacheCompressor::regStats();
> >     + Base::regStats();
> >
> >     rankStats
> >     .init(compressors.size(), compressors.size())
> >     @@ -177,8 +179,10 @@
> >     }
> >     }
> >
> >     -MultiCompressor*
> >     +} // namespace Compressor
> >     +
> >     +Compressor::Multi*
> >     MultiCompressorParams::create()
> >     {
> >     - return new MultiCompressor(this);
> >     + return new Compressor::Multi(this);
> >     }
> >     diff --git a/src/mem/cache/compressors/multi.hh
> >     b/src/mem/cache/compressors/multi.hh
> >     index 3c96d4d..db4f376 100644
> >     --- a/src/mem/cache/compressors/multi.hh
> >     +++ b/src/mem/cache/compressors/multi.hh
> >     @@ -1,5 +1,5 @@
> >     /*
> >     - * Copyright (c) 2019 Inria
> >     + * Copyright (c) 2019-2020 Inria
> >     * All rights reserved.
> >     *
> >     * Redistribution and use in source and binary forms, with or without
> >     @@ -42,7 +42,9 @@
> >
> >     struct MultiCompressorParams;
> >
> >     -class MultiCompressor : public BaseCacheCompressor
> >     +namespace Compressor {
> >     +
> >     +class Multi : public Base
> >     {
> >     protected:
> >     /**
> >     @@ -53,7 +55,7 @@
> >     class MultiCompData;
> >
> >     /** List of sub-compressors. */
> >     - std::vector<BaseCacheCompressor*> compressors;
> >     + std::vector<Base*> compressors;
> >
> >     /**
> >     * @defgroup CompressionStats Compression specific statistics.
> >     @@ -68,24 +70,19 @@
> >     */
> >
> >     public:
> >     - /** Convenience typedef. */
> >     - typedef MultiCompressorParams Params;
> >     -
> >     - /** Default constructor. */
> >     - MultiCompressor(const Params *p);
> >     -
> >     - /** Default destructor. */
> >     - ~MultiCompressor();
> >     + typedef MultiCompressorParams Params;
> >     + Multi(const Params *p);
> >     + ~Multi();
> >
> >     void regStats() override;
> >
> >     - std::unique_ptr<BaseCacheCompressor::CompressionData> compress(
> >     + std::unique_ptr<Base::CompressionData> compress(
> >     const uint64_t* data, Cycles& comp_lat, Cycles& decomp_lat) override;
> >
> >     void decompress(const CompressionData* comp_data, uint64_t* data)
> >     override;
> >     };
> >
> >     -class MultiCompressor::MultiCompData : public CompressionData
> >     +class Multi::MultiCompData : public CompressionData
> >     {
> >     private:
> >     /** Index of the compressor that provided these compression results.
> */
> >     @@ -93,7 +90,7 @@
> >
> >     public:
> >     /** Compression data of the best compressor. */
> >     - std::unique_ptr<BaseCacheCompressor::CompressionData> compData;
> >     + std::unique_ptr<Base::CompressionData> compData;
> >
> >     /**
> >     * Default constructor.
> >     @@ -102,7 +99,7 @@
> >     * @param comp_data Compression data of the best compressor.
> >     */
> >     MultiCompData(unsigned index,
> >     - std::unique_ptr<BaseCacheCompressor::CompressionData> comp_data);
> >     + std::unique_ptr<Base::CompressionData> comp_data);
> >
> >     /** Default destructor. */
> >     ~MultiCompData() = default;
> >     @@ -111,4 +108,6 @@
> >     uint8_t getIndex() const;
> >     };
> >
> >     +} // namespace Compressor
> >     +
> >     #endif //__MEM_CACHE_COMPRESSORS_MULTI_HH__
> >     diff --git a/src/mem/cache/compressors/perfect.cc
> >     b/src/mem/cache/compressors/perfect.cc
> >     index b53e1f9..41a7e6d 100644
> >     --- a/src/mem/cache/compressors/perfect.cc
> >     +++ b/src/mem/cache/compressors/perfect.cc
> >     @@ -1,5 +1,5 @@
> >     /*
> >     - * Copyright (c) 2019 Inria
> >     + * Copyright (c) 2019-2020 Inria
> >     * All rights reserved.
> >     *
> >     * Redistribution and use in source and binary forms, with or without
> >     @@ -38,26 +38,28 @@
> >     #include "debug/CacheComp.hh"
> >     #include "params/PerfectCompressor.hh"
> >
> >     -PerfectCompressor::CompData::CompData(const uint64_t* data,
> >     +namespace Compressor {
> >     +
> >     +Perfect::CompData::CompData(const uint64_t* data,
> >     std::size_t num_entries)
> >     : CompressionData(), entries(data, data + num_entries)
> >     {
> >     }
> >
> >     -PerfectCompressor::PerfectCompressor(const Params *p)
> >     - : BaseCacheCompressor(p),
> >     +Perfect::Perfect(const Params *p)
> >     + : Base(p),
> >     compressedSize(8 * blkSize / p->max_compression_ratio),
> >     compressionLatency(p->compression_latency),
> >     decompressionLatency(p->decompression_latency)
> >     {
> >     }
> >
> >     -std::unique_ptr<BaseCacheCompressor::CompressionData>
> >     -PerfectCompressor::compress(const uint64_t* cache_line, Cycles&
> >     comp_lat,
> >     +std::unique_ptr<Base::CompressionData>
> >     +Perfect::compress(const uint64_t* cache_line, Cycles& comp_lat,
> >     Cycles& decomp_lat)
> >     {
> >     // Compress every word sequentially
> >     - std::unique_ptr<BaseCacheCompressor::CompressionData> comp_data(
> >     + std::unique_ptr<Base::CompressionData> comp_data(
> >     new CompData(cache_line, blkSize/8));
> >
> >     // Set relevant metadata
> >     @@ -69,7 +71,7 @@
> >     }
> >
> >     void
> >     -PerfectCompressor::decompress(const CompressionData* comp_data,
> >     +Perfect::decompress(const CompressionData* comp_data,
> >     uint64_t* data)
> >     {
> >     // Decompress every entry sequentially
> >     @@ -79,8 +81,10 @@
> >     std::copy(entries.begin(), entries.end(), data);
> >     }
> >
> >     -PerfectCompressor*
> >     +} // namespace Compressor
> >     +
> >     +Compressor::Perfect*
> >     PerfectCompressorParams::create()
> >     {
> >     - return new PerfectCompressor(this);
> >     + return new Compressor::Perfect(this);
> >     }
> >     diff --git a/src/mem/cache/compressors/perfect.hh
> >     b/src/mem/cache/compressors/perfect.hh
> >     index 0ef8d13..e279ec6 100644
> >     --- a/src/mem/cache/compressors/perfect.hh
> >     +++ b/src/mem/cache/compressors/perfect.hh
> >     @@ -1,5 +1,5 @@
> >     /*
> >     - * Copyright (c) 2019 Inria
> >     + * Copyright (c) 2019-2020 Inria
> >     * All rights reserved.
> >     *
> >     * Redistribution and use in source and binary forms, with or without
> >     @@ -43,7 +43,9 @@
> >
> >     struct PerfectCompressorParams;
> >
> >     -class PerfectCompressor : public BaseCacheCompressor
> >     +namespace Compressor {
> >     +
> >     +class Perfect : public Base
> >     {
> >     protected:
> >     class CompData;
> >     @@ -64,11 +66,11 @@
> >
> >     public:
> >     typedef PerfectCompressorParams Params;
> >     - PerfectCompressor(const Params *p);
> >     - ~PerfectCompressor() {};
> >     + Perfect(const Params *p);
> >     + ~Perfect() = default;
> >     };
> >
> >     -class PerfectCompressor::CompData : public CompressionData
> >     +class Perfect::CompData : public CompressionData
> >     {
> >     public:
> >     /** The original data is simply copied over to this vector. */
> >     @@ -84,4 +86,6 @@
> >     ~CompData() = default;
> >     };
> >
> >     +} // namespace Compressor
> >     +
> >     #endif //__MEM_CACHE_COMPRESSORS_PERFECT_COMPRESSOR_HH__
> >     diff --git a/src/mem/cache/compressors/repeated_qwords.cc
> >     b/src/mem/cache/compressors/repeated_qwords.cc
> >     index a51c05f..db19b26 100644
> >     --- a/src/mem/cache/compressors/repeated_qwords.cc
> >     +++ b/src/mem/cache/compressors/repeated_qwords.cc
> >     @@ -1,5 +1,5 @@
> >     /*
> >     - * Copyright (c) 2019 Inria
> >     + * Copyright (c) 2019-2020 Inria
> >     * All rights reserved.
> >     *
> >     * Redistribution and use in source and binary forms, with or without
> >     @@ -38,23 +38,25 @@
> >     #include "mem/cache/compressors/dictionary_compressor_impl.hh"
> >     #include "params/RepeatedQwordsCompressor.hh"
> >
> >     -RepeatedQwordsCompressor::RepeatedQwordsCompressor(const Params *p)
> >     +namespace Compressor {
> >     +
> >     +RepeatedQwords::RepeatedQwords(const Params *p)
> >     : DictionaryCompressor<uint64_t>(p)
> >     {
> >     }
> >
> >     void
> >     -RepeatedQwordsCompressor::addToDictionary(DictionaryEntry data)
> >     +RepeatedQwords::addToDictionary(DictionaryEntry data)
> >     {
> >     assert(numEntries < dictionarySize);
> >     dictionary[numEntries++] = data;
> >     }
> >
> >     -std::unique_ptr<BaseCacheCompressor::CompressionData>
> >     -RepeatedQwordsCompressor::compress(const uint64_t* data, Cycles&
> >     comp_lat,
> >     +std::unique_ptr<Base::CompressionData>
> >     +RepeatedQwords::compress(const uint64_t* data, Cycles& comp_lat,
> >     Cycles& decomp_lat)
> >     {
> >     - std::unique_ptr<BaseCacheCompressor::CompressionData> comp_data =
> >     + std::unique_ptr<Base::CompressionData> comp_data =
> >     DictionaryCompressor::compress(data);
> >
> >     // Since there is a single value repeated over and over, there
> should be
> >     @@ -75,8 +77,10 @@
> >     return comp_data;
> >     }
> >
> >     -RepeatedQwordsCompressor*
> >     +} // namespace Compressor
> >     +
> >     +Compressor::RepeatedQwords*
> >     RepeatedQwordsCompressorParams::create()
> >     {
> >     - return new RepeatedQwordsCompressor(this);
> >     + return new Compressor::RepeatedQwords(this);
> >     }
> >     diff --git a/src/mem/cache/compressors/repeated_qwords.hh
> >     b/src/mem/cache/compressors/repeated_qwords.hh
> >     index 3af63dc..c361900 100644
> >     --- a/src/mem/cache/compressors/repeated_qwords.hh
> >     +++ b/src/mem/cache/compressors/repeated_qwords.hh
> >     @@ -1,5 +1,5 @@
> >     /*
> >     - * Copyright (c) 2019 Inria
> >     + * Copyright (c) 2019-2020 Inria
> >     * All rights reserved.
> >     *
> >     * Redistribution and use in source and binary forms, with or without
> >     @@ -43,7 +43,9 @@
> >
> >     struct RepeatedQwordsCompressorParams;
> >
> >     -class RepeatedQwordsCompressor : public
> DictionaryCompressor<uint64_t>
> >     +namespace Compressor {
> >     +
> >     +class RepeatedQwords : public DictionaryCompressor<uint64_t>
> >     {
> >     protected:
> >     using DictionaryEntry =
> DictionaryCompressor<uint64_t>::DictionaryEntry;
> >     @@ -89,16 +91,16 @@
> >
> >     void addToDictionary(DictionaryEntry data) override;
> >
> >     - std::unique_ptr<BaseCacheCompressor::CompressionData> compress(
> >     + std::unique_ptr<Base::CompressionData> compress(
> >     const uint64_t* data, Cycles& comp_lat, Cycles& decomp_lat) override;
> >
> >     public:
> >     typedef RepeatedQwordsCompressorParams Params;
> >     - RepeatedQwordsCompressor(const Params *p);
> >     - ~RepeatedQwordsCompressor() = default;
> >     + RepeatedQwords(const Params *p);
> >     + ~RepeatedQwords() = default;
> >     };
> >
> >     -class RepeatedQwordsCompressor::PatternX
> >     +class RepeatedQwords::PatternX
> >     : public DictionaryCompressor::UncompressedPattern
> >     {
> >     public:
> >     @@ -108,7 +110,7 @@
> >     }
> >     };
> >
> >     -class RepeatedQwordsCompressor::PatternM
> >     +class RepeatedQwords::PatternM
> >     : public
> >     DictionaryCompressor::LocatedMaskedPattern<0xFFFFFFFFFFFFFFFF, 0>
> >     {
> >     public:
> >     @@ -119,4 +121,6 @@
> >     }
> >     };
> >
> >     +} // namespace Compressor
> >     +
> >     #endif //__MEM_CACHE_COMPRESSORS_REPEATED_QWORDS_HH__
> >     diff --git a/src/mem/cache/compressors/zero.cc
> >     b/src/mem/cache/compressors/zero.cc
> >     index 45675e6..db80679 100644
> >     --- a/src/mem/cache/compressors/zero.cc
> >     +++ b/src/mem/cache/compressors/zero.cc
> >     @@ -1,5 +1,5 @@
> >     /*
> >     - * Copyright (c) 2019 Inria
> >     + * Copyright (c) 2019-2020 Inria
> >     * All rights reserved.
> >     *
> >     * Redistribution and use in source and binary forms, with or without
> >     @@ -38,23 +38,25 @@
> >     #include "mem/cache/compressors/dictionary_compressor_impl.hh"
> >     #include "params/ZeroCompressor.hh"
> >
> >     -ZeroCompressor::ZeroCompressor(const Params *p)
> >     +namespace Compressor {
> >     +
> >     +Zero::Zero(const Params *p)
> >     : DictionaryCompressor<uint64_t>(p)
> >     {
> >     }
> >
> >     void
> >     -ZeroCompressor::addToDictionary(DictionaryEntry data)
> >     +Zero::addToDictionary(DictionaryEntry data)
> >     {
> >     assert(numEntries < dictionarySize);
> >     dictionary[numEntries++] = data;
> >     }
> >
> >     -std::unique_ptr<BaseCacheCompressor::CompressionData>
> >     -ZeroCompressor::compress(const uint64_t* data, Cycles& comp_lat,
> >     +std::unique_ptr<Base::CompressionData>
> >     +Zero::compress(const uint64_t* data, Cycles& comp_lat,
> >     Cycles& decomp_lat)
> >     {
> >     - std::unique_ptr<BaseCacheCompressor::CompressionData> comp_data =
> >     + std::unique_ptr<Base::CompressionData> comp_data =
> >     DictionaryCompressor::compress(data);
> >
> >     // If there is any non-zero entry, the compressor failed
> >     @@ -73,8 +75,10 @@
> >     return comp_data;
> >     }
> >
> >     -ZeroCompressor*
> >     +} // namespace Compressor
> >     +
> >     +Compressor::Zero*
> >     ZeroCompressorParams::create()
> >     {
> >     - return new ZeroCompressor(this);
> >     + return new Compressor::Zero(this);
> >     }
> >     diff --git a/src/mem/cache/compressors/zero.hh
> >     b/src/mem/cache/compressors/zero.hh
> >     index dd9ca06..f45a639 100644
> >     --- a/src/mem/cache/compressors/zero.hh
> >     +++ b/src/mem/cache/compressors/zero.hh
> >     @@ -1,5 +1,5 @@
> >     /*
> >     - * Copyright (c) 2019 Inria
> >     + * Copyright (c) 2019-2020 Inria
> >     * All rights reserved.
> >     *
> >     * Redistribution and use in source and binary forms, with or without
> >     @@ -43,7 +43,9 @@
> >
> >     struct ZeroCompressorParams;
> >
> >     -class ZeroCompressor : public DictionaryCompressor<uint64_t>
> >     +namespace Compressor {
> >     +
> >     +class Zero : public DictionaryCompressor<uint64_t>
> >     {
> >     protected:
> >     using DictionaryEntry =
> DictionaryCompressor<uint64_t>::DictionaryEntry;
> >     @@ -89,16 +91,16 @@
> >
> >     void addToDictionary(DictionaryEntry data) override;
> >
> >     - std::unique_ptr<BaseCacheCompressor::CompressionData> compress(
> >     + std::unique_ptr<Base::CompressionData> compress(
> >     const uint64_t* data, Cycles& comp_lat, Cycles& decomp_lat) override;
> >
> >     public:
> >     typedef ZeroCompressorParams Params;
> >     - ZeroCompressor(const Params *p);
> >     - ~ZeroCompressor() = default;
> >     + Zero(const Params *p);
> >     + ~Zero() = default;
> >     };
> >
> >     -class ZeroCompressor::PatternX
> >     +class Zero::PatternX
> >     : public DictionaryCompressor::UncompressedPattern
> >     {
> >     public:
> >     @@ -109,7 +111,7 @@
> >     }
> >     };
> >
> >     -class ZeroCompressor::PatternZ
> >     +class Zero::PatternZ
> >     : public DictionaryCompressor::MaskedValuePattern<0,
> 0xFFFFFFFFFFFFFFFF>
> >     {
> >     public:
> >     @@ -120,4 +122,6 @@
> >     }
> >     };
> >
> >     +} // namespace Compressor
> >     +
> >     #endif //__MEM_CACHE_COMPRESSORS_ZERO_HH__
> >
> >     To view, visit change 33294
> >     <https://gem5-review.googlesource.com/c/public/gem5/+/33294>. To
> >     unsubscribe, or for help writing mail filters, visit settings
> >     <https://gem5-review.googlesource.com/settings>.
> >
> >     Gerrit-Project: public/gem5
> >     Gerrit-Branch: develop
> >     Gerrit-Change-Id: I78cb3b6fb8e3e50a52a04268e0e08dd664d81230
> >     Gerrit-Change-Number: 33294
> >     Gerrit-PatchSet: 2
> >     Gerrit-Owner: Daniel Carvalho <[email protected]
> >     <mailto:[email protected]>>
> >     Gerrit-Reviewer: Daniel Carvalho <[email protected]
> >     <mailto:[email protected]>>
> >     Gerrit-Reviewer: Nikos Nikoleris <[email protected]
> >     <mailto:[email protected]>>
> >     Gerrit-Reviewer: kokoro <[email protected]
> >     <mailto:noreply%[email protected]>>
> >     Gerrit-MessageType: merged
> >     _______________________________________________
> >     gem5-dev mailing list -- [email protected] <mailto:[email protected]
> >
> >     To unsubscribe send an email to [email protected]
> >     <mailto:[email protected]>
> >     %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
> >
> > _______________________________________________
> > gem5-dev mailing list -- [email protected] <mailto:[email protected]>
> > To unsubscribe send an email to [email protected]
> > <mailto:[email protected]>
> > %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
> >
> > _______________________________________________
> > gem5-dev mailing list -- [email protected]
> > To unsubscribe send an email to [email protected]
> > %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
> >
> IMPORTANT NOTICE: The contents of this email and any attachments are
> confidential and may also be privileged. If you are not the intended
> recipient, please notify the sender immediately and do not disclose the
> contents to any other person, use it for any purpose, or store or copy the
> information in any medium. Thank you.
> _______________________________________________
> gem5-dev mailing list -- [email protected]
> To unsubscribe send an email to [email protected]
> %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
>
> _______________________________________________
> gem5-dev mailing list -- [email protected]
> To unsubscribe send an email to [email protected]
> %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
>
> _______________________________________________
> gem5-dev mailing list -- [email protected]
> To unsubscribe send an email to [email protected]
> %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
>
_______________________________________________
gem5-dev mailing list -- [email protected]
To unsubscribe send an email to [email protected]
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

Reply via email to