Ayaz Akram has uploaded this change for review. ( https://gem5-review.googlesource.com/c/public/gem5/+/37397 )

Change subject: stats: Update Ticked class stats
......................................................................

stats: Update Ticked class stats

This change updates the Ticked class to
use new style stats.

Change-Id: Iaf244e436cadb51f3684d4dd4a18012bc46fd9ee
---
M src/cpu/minor/cpu.cc
M src/cpu/minor/ticked.cc
M src/cpu/minor/ticked.hh
3 files changed, 14 insertions(+), 26 deletions(-)



diff --git a/src/cpu/minor/cpu.cc b/src/cpu/minor/cpu.cc
old mode 100644
new mode 100755
index 18a3fee..8319a69
--- a/src/cpu/minor/cpu.cc
+++ b/src/cpu/minor/cpu.cc
@@ -114,7 +114,6 @@
 {
     BaseCPU::regStats();
     stats.regStats(name(), *this);
-    pipeline->regStats();
 }

 void
diff --git a/src/cpu/minor/ticked.cc b/src/cpu/minor/ticked.cc
old mode 100644
new mode 100755
index 0448a16..c09a9b4
--- a/src/cpu/minor/ticked.cc
+++ b/src/cpu/minor/ticked.cc
@@ -37,7 +37,6 @@

 #include "cpu/minor/ticked.hh"

-#include "params/Ticked.hh"
 #include "sim/clocked_object.hh"

 Ticked::Ticked(ClockedObject &object_,
@@ -47,15 +46,14 @@
     event([this]{ processClockEvent(); }, object_.name(), false, priority),
     running(false),
     lastStopped(0),
-    /* Allocate numCycles if an external stat wasn't passed in */
-    numCyclesLocal((imported_num_cycles ? NULL : new Stats::Scalar)),
-    numCycles((imported_num_cycles ? *imported_num_cycles :
-        *numCyclesLocal))
+    // Pass the external cycles stat to numCycles.
+    numCycles(*imported_num_cycles),
+    stats(&object_, numCycles)
 { }

 void
 Ticked::processClockEvent() {
-    ++tickCycles;
+    ++stats.tickCycles;
     ++numCycles;
     countCycles(Cycles(1));
     evaluate();
@@ -63,23 +61,14 @@
         object.schedule(event, object.clockEdge(Cycles(1)));
 }

-void
-Ticked::regStats()
+Ticked::TickedStats::TickedStats(ClockedObject *parent,
+    Stats::Scalar &numCycles) : Stats::Group(parent),
+      ADD_STAT(tickCycles,
+                    "Number of cycles that the object actually ticked."),
+      ADD_STAT(idleCycles, "Total number of cycles that the object"
+                    "has spent stopped.", numCycles - tickCycles)
 {
-    if (numCyclesLocal) {
-        numCycles
-            .name(object.name() + ".totalTickCycles")
- .desc("Number of cycles that the object ticked or was stopped");
-    }

-    tickCycles
-        .name(object.name() + ".tickCycles")
-        .desc("Number of cycles that the object actually ticked");
-
-    idleCycles
-        .name(object.name() + ".idleCycles")
-        .desc("Total number of cycles that the object has spent stopped");
-    idleCycles = numCycles - tickCycles;
 }

 void
diff --git a/src/cpu/minor/ticked.hh b/src/cpu/minor/ticked.hh
old mode 100644
new mode 100755
index b89befe..bc4a231
--- a/src/cpu/minor/ticked.hh
+++ b/src/cpu/minor/ticked.hh
@@ -78,11 +78,15 @@
     /** Total number of cycles either ticked or spend stopped */
     Stats::Scalar &numCycles;

+    struct TickedStats : public Stats::Group {
+      TickedStats(ClockedObject *parent, Stats::Scalar &numCycles);
+
     /** Number of cycles ticked */
     Stats::Scalar tickCycles;

     /** Number of cycles stopped */
     Stats::Formula idleCycles;
+    } stats;

   public:
     Ticked(ClockedObject &object_,
@@ -91,10 +95,6 @@

     virtual ~Ticked() { }

-    /** Register {num,ticks}Cycles if necessary.  If numCycles is
-     *  imported, be sure to register it *before* calling this regStats */
-    void regStats();
-
     /** Start ticking */
     void
     start()

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/37397
To unsubscribe, or for help writing mail filters, visit https://gem5-review.googlesource.com/settings

Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: Iaf244e436cadb51f3684d4dd4a18012bc46fd9ee
Gerrit-Change-Number: 37397
Gerrit-PatchSet: 1
Gerrit-Owner: Ayaz Akram <yazak...@ucdavis.edu>
Gerrit-MessageType: newchange
_______________________________________________
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

Reply via email to