o3: Use shared_ptr for MemDepEntry
authorAndreas Hansson <andreas.hansson@arm.com>
Thu, 16 Oct 2014 09:49:49 +0000 (05:49 -0400)
committerAndreas Hansson <andreas.hansson@arm.com>
Thu, 16 Oct 2014 09:49:49 +0000 (05:49 -0400)
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".

src/cpu/o3/mem_dep_unit.hh
src/cpu/o3/mem_dep_unit_impl.hh

index a42aa13ced7d28450cf567b5101f1bd7c468cfe0..3cc1d88fe02ad816879f1729c6a7fba38adf0734 100644 (file)
 #define __CPU_O3_MEM_DEP_UNIT_HH__
 
 #include <list>
+#include <memory>
 #include <set>
 
 #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<MemDepEntry> MemDepEntryPtr;
+    typedef std::shared_ptr<MemDepEntry> 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)
index 1e794d4881643d3508dfc12b5c183a7a69ffc6c2..6684e4ff0374fa84465553ff28a2af10967175ab 100644 (file)
@@ -162,7 +162,7 @@ MemDepUnit<MemDepPred, Impl>::insert(DynInstPtr &inst)
 {
     ThreadID tid = inst->threadNumber;
 
-    MemDepEntryPtr inst_entry = new MemDepEntry(inst);
+    MemDepEntryPtr inst_entry = std::make_shared<MemDepEntry>(inst);
 
     // Add the MemDepEntry to the hash.
     memDepHash.insert(
@@ -259,7 +259,7 @@ MemDepUnit<MemDepPred, Impl>::insertNonSpec(DynInstPtr &inst)
 {
     ThreadID tid = inst->threadNumber;
 
-    MemDepEntryPtr inst_entry = new MemDepEntry(inst);
+    MemDepEntryPtr inst_entry = std::make_shared<MemDepEntry>(inst);
 
     // Insert the MemDepEntry into the hash.
     memDepHash.insert(
@@ -310,7 +310,7 @@ MemDepUnit<MemDepPred, Impl>::insertBarrier(DynInstPtr &barr_inst)
 
     ThreadID tid = barr_inst->threadNumber;
 
-    MemDepEntryPtr inst_entry = new MemDepEntry(barr_inst);
+    MemDepEntryPtr inst_entry = std::make_shared<MemDepEntry>(barr_inst);
 
     // Add the MemDepEntry to the hash.
     memDepHash.insert(