stats: fix duplicate statistics names.

This generally requires providing a more meaningful name() function for a
class.
This commit is contained in:
Nathan Binkert
2009-03-07 14:30:54 -08:00
parent fcaf1b74b0
commit ac7bda0212
4 changed files with 29 additions and 25 deletions

View 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.
*/

View File

@@ -38,9 +38,10 @@
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.")
;
}

View 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);

View 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.");
}