From: Emily Brickey Date: Tue, 1 Sep 2020 21:52:59 +0000 (-0700) Subject: cpu: convert statistical_corrector to new style stats X-Git-Tag: v20.1.0.0~151 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=ef5ac775aa9dca50cfeadf6e5dab58431aa3c631;p=gem5.git cpu: convert statistical_corrector to new style stats Change-Id: Id9e075fb45babeeafe65105679c8bf2135823d41 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/33936 Reviewed-by: Jason Lowe-Power Maintainer: Jason Lowe-Power Tested-by: kokoro --- diff --git a/src/cpu/pred/statistical_corrector.cc b/src/cpu/pred/statistical_corrector.cc index 8ddae9be2..305959504 100644 --- a/src/cpu/pred/statistical_corrector.cc +++ b/src/cpu/pred/statistical_corrector.cc @@ -65,7 +65,8 @@ extraWeightsWidth(p->extraWeightsWidth), scCountersWidth(p->scCountersWidth), firstH(0), - secondH(0) + secondH(0), + stats(this) { wb.resize(1 << logSizeUps, 4); @@ -376,9 +377,9 @@ void StatisticalCorrector::updateStats(bool taken, BranchInfo *bi) { if (taken == bi->scPred) { - scPredictorCorrect++; + stats.correct++; } else { - scPredictorWrong++; + stats.wrong++; } } @@ -396,16 +397,12 @@ StatisticalCorrector::getSizeInBits() const return 0; } -void -StatisticalCorrector::regStats() +StatisticalCorrector::StatisticalCorrectorStats::StatisticalCorrectorStats( + Stats::Group *parent) + : Stats::Group(parent), + ADD_STAT(correct, "Number of time the SC predictor is the" + " provider and the prediction is correct"), + ADD_STAT(wrong, "Number of time the SC predictor is the" + " provider and the prediction is wrong") { - scPredictorCorrect - .name(name() + ".scPredictorCorrect") - .desc("Number of time the SC predictor is the provider and " - "the prediction is correct"); - - scPredictorWrong - .name(name() + ".scPredictorWrong") - .desc("Number of time the SC predictor is the provider and " - "the prediction is wrong"); } diff --git a/src/cpu/pred/statistical_corrector.hh b/src/cpu/pred/statistical_corrector.hh index 2e8e50240..b61f0d8fe 100644 --- a/src/cpu/pred/statistical_corrector.hh +++ b/src/cpu/pred/statistical_corrector.hh @@ -182,9 +182,12 @@ class StatisticalCorrector : public SimObject int8_t firstH; int8_t secondH; - // stats - Stats::Scalar scPredictorCorrect; - Stats::Scalar scPredictorWrong; + struct StatisticalCorrectorStats : public Stats::Group { + StatisticalCorrectorStats(Stats::Group *parent); + Stats::Scalar correct; + Stats::Scalar wrong; + } stats; + public: struct BranchInfo { @@ -260,7 +263,6 @@ class StatisticalCorrector : public SimObject int64_t phist) = 0; void init() override; - void regStats() override; void updateStats(bool taken, BranchInfo *bi); virtual void condBranchUpdate(ThreadID tid, Addr branch_pc, bool taken,