stats: fix duplicate statistics names.
This generally requires providing a more meaningful name() function for a class.
This commit is contained in:
@@ -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.
|
||||
*/
|
||||
|
||||
@@ -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.")
|
||||
;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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.");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user