From: Andreas Hansson Date: Thu, 16 Oct 2014 09:49:49 +0000 (-0400) Subject: o3: Use shared_ptr for MemDepEntry X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=a769963d16b7b259580fa2da1e84f62aae0a5a42;p=gem5.git o3: Use shared_ptr for MemDepEntry This patch transitions the o3 MemDepEntry from the ad-hoc RefCountingPtr to the c++11 shared_ptr. There are no changes in behaviour, and the code modifications are mainly replacing "new" with "make_shared". --- diff --git a/src/cpu/o3/mem_dep_unit.hh b/src/cpu/o3/mem_dep_unit.hh index a42aa13ce..3cc1d88fe 100644 --- a/src/cpu/o3/mem_dep_unit.hh +++ b/src/cpu/o3/mem_dep_unit.hh @@ -44,10 +44,10 @@ #define __CPU_O3_MEM_DEP_UNIT_HH__ #include +#include #include #include "base/hashmap.hh" -#include "base/refcnt.hh" #include "base/statistics.hh" #include "cpu/inst_seq.hh" #include "debug/MemDepUnit.hh" @@ -164,13 +164,13 @@ class MemDepUnit class MemDepEntry; - typedef RefCountingPtr MemDepEntryPtr; + typedef std::shared_ptr MemDepEntryPtr; /** Memory dependence entries that track memory operations, marking * when the instruction is ready to execute and what instructions depend * upon it. */ - class MemDepEntry : public RefCounted { + class MemDepEntry { public: /** Constructs a memory dependence entry. */ MemDepEntry(DynInstPtr &new_inst) diff --git a/src/cpu/o3/mem_dep_unit_impl.hh b/src/cpu/o3/mem_dep_unit_impl.hh index 1e794d488..6684e4ff0 100644 --- a/src/cpu/o3/mem_dep_unit_impl.hh +++ b/src/cpu/o3/mem_dep_unit_impl.hh @@ -162,7 +162,7 @@ MemDepUnit::insert(DynInstPtr &inst) { ThreadID tid = inst->threadNumber; - MemDepEntryPtr inst_entry = new MemDepEntry(inst); + MemDepEntryPtr inst_entry = std::make_shared(inst); // Add the MemDepEntry to the hash. memDepHash.insert( @@ -259,7 +259,7 @@ MemDepUnit::insertNonSpec(DynInstPtr &inst) { ThreadID tid = inst->threadNumber; - MemDepEntryPtr inst_entry = new MemDepEntry(inst); + MemDepEntryPtr inst_entry = std::make_shared(inst); // Insert the MemDepEntry into the hash. memDepHash.insert( @@ -310,7 +310,7 @@ MemDepUnit::insertBarrier(DynInstPtr &barr_inst) ThreadID tid = barr_inst->threadNumber; - MemDepEntryPtr inst_entry = new MemDepEntry(barr_inst); + MemDepEntryPtr inst_entry = std::make_shared(barr_inst); // Add the MemDepEntry to the hash. memDepHash.insert(