stats: fix duplicate statistics names.
authorNathan Binkert <nate@binkert.org>
Sat, 7 Mar 2009 22:30:54 +0000 (14:30 -0800)
committerNathan Binkert <nate@binkert.org>
Sat, 7 Mar 2009 22:30:54 +0000 (14:30 -0800)
This generally requires providing a more meaningful name() function for a
class.

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

index 44f9bea79726c69d207084ebb8bb795a9281839d..b32d2bd23c8dbfbbd23e6c64623d276d5cda8220 100644 (file)
@@ -62,6 +62,8 @@ class BPredUnit
 
     PredType predictor;
 
+    const std::string _name;
+
   public:
 
     /**
@@ -69,6 +71,8 @@ class BPredUnit
      */
     BPredUnit(DerivO3CPUParams *params);
 
+    const std::string &name() const { return _name; }
+
     /**
      * Registers statistics.
      */
index ded72a1b5944c6120b0a18dc665e66984c12dad1..2fa59280dc4b0b9185bb928d7197cfeee61491ad 100644 (file)
 
 template<class Impl>
 BPredUnit<Impl>::BPredUnit(DerivO3CPUParams *params)
-  : BTB(params->BTBEntries,
-        params->BTBTagSize,
-        params->instShiftAmt)
+    : _name(params->name + ".BPredUnit"),
+      BTB(params->BTBEntries,
+          params->BTBTagSize,
+          params->instShiftAmt)
 {
     // Setup the selected predictor.
     if (params->predType == "local") {
@@ -73,43 +74,43 @@ void
 BPredUnit<Impl>::regStats()
 {
     lookups
-        .name(name() + ".BPredUnit.lookups")
+        .name(name() + ".lookups")
         .desc("Number of BP lookups")
         ;
 
     condPredicted
-        .name(name() + ".BPredUnit.condPredicted")
+        .name(name() + ".condPredicted")
         .desc("Number of conditional branches predicted")
         ;
 
     condIncorrect
-        .name(name() + ".BPredUnit.condIncorrect")
+        .name(name() + ".condIncorrect")
         .desc("Number of conditional branches incorrect")
         ;
 
     BTBLookups
-        .name(name() + ".BPredUnit.BTBLookups")
+        .name(name() + ".BTBLookups")
         .desc("Number of BTB lookups")
         ;
 
     BTBHits
-        .name(name() + ".BPredUnit.BTBHits")
+        .name(name() + ".BTBHits")
         .desc("Number of BTB hits")
         ;
 
     BTBCorrect
-        .name(name() + ".BPredUnit.BTBCorrect")
+        .name(name() + ".BTBCorrect")
         .desc("Number of correct BTB predictions (this stat may not "
               "work properly.")
         ;
 
     usedRAS
-        .name(name() + ".BPredUnit.usedRAS")
+        .name(name() + ".usedRAS")
         .desc("Number of times the RAS was used to get a target.")
         ;
 
     RASIncorrect
-        .name(name() + ".BPredUnit.RASInCorrect")
+        .name(name() + ".RASInCorrect")
         .desc("Number of incorrect RAS predictions.")
         ;
 }
index fa1c333207dc5f5206bb4a57df1ece9c19f520ea..4f9e7c9f7ff5644ef17159363ac8111d0d321f14 100644 (file)
@@ -65,7 +65,11 @@ class InstructionQueue;
  * dependence prediction schemes.
  */
 template <class MemDepPred, class Impl>
-class MemDepUnit {
+class MemDepUnit
+{
+  protected:
+    std::string _name;
+
   public:
     typedef typename Impl::DynInstPtr DynInstPtr;
 
@@ -79,7 +83,7 @@ class MemDepUnit {
     ~MemDepUnit();
 
     /** Returns the name of the memory dependence unit. */
-    std::string name() const;
+    std::string name() const { return _name; }
 
     /** Initializes the unit with parameters and a thread id. */
     void init(DerivO3CPUParams *params, int tid);
index 124c087f8450230eeaf0a42a18f42fd4dcd10890..8754539f99374bf6957e021fa3c475142bd7a2dc 100644 (file)
@@ -44,7 +44,8 @@ MemDepUnit<MemDepPred, Impl>::MemDepUnit()
 
 template <class MemDepPred, class Impl>
 MemDepUnit<MemDepPred, Impl>::MemDepUnit(DerivO3CPUParams *params)
-    : depPred(params->SSITSize, params->LFSTSize), loadBarrier(false),
+    : _name(params->name + ".memdepunit"),
+      depPred(params->SSITSize, params->LFSTSize), loadBarrier(false),
       loadBarrierSN(0), storeBarrier(false), storeBarrierSN(0), iqPtr(NULL)
 {
     DPRINTF(MemDepUnit, "Creating MemDepUnit object.\n");
@@ -75,19 +76,13 @@ MemDepUnit<MemDepPred, Impl>::~MemDepUnit()
 #endif
 }
 
-template <class MemDepPred, class Impl>
-std::string
-MemDepUnit<MemDepPred, Impl>::name() const
-{
-    return "memdepunit";
-}
-
 template <class MemDepPred, class Impl>
 void
 MemDepUnit<MemDepPred, Impl>::init(DerivO3CPUParams *params, int tid)
 {
     DPRINTF(MemDepUnit, "Creating MemDepUnit %i object.\n",tid);
 
+    _name = csprintf("%s.memDep%d", params->name, tid);
     id = tid;
 
     depPred.init(params->SSITSize, params->LFSTSize);
@@ -98,19 +93,19 @@ void
 MemDepUnit<MemDepPred, Impl>::regStats()
 {
     insertedLoads
-        .name(name() + ".memDep.insertedLoads")
+        .name(name() + ".insertedLoads")
         .desc("Number of loads inserted to the mem dependence unit.");
 
     insertedStores
-        .name(name() + ".memDep.insertedStores")
+        .name(name() + ".insertedStores")
         .desc("Number of stores inserted to the mem dependence unit.");
 
     conflictingLoads
-        .name(name() + ".memDep.conflictingLoads")
+        .name(name() + ".conflictingLoads")
         .desc("Number of conflicting loads.");
 
     conflictingStores
-        .name(name() + ".memDep.conflictingStores")
+        .name(name() + ".conflictingStores")
         .desc("Number of conflicting stores.");
 }