[gem5-dev] Change in gem5/gem5[develop]: cpu-o3: convert rename to new style stats
Jason Lowe-Power has submitted this change. ( https://gem5-review.googlesource.com/c/public/gem5/+/33397 ) Change subject: cpu-o3: convert rename to new style stats .. cpu-o3: convert rename to new style stats Change-Id: Id34a85e40ad7e83d5805a034df6e0c5ad9b9af82 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/33397 Reviewed-by: Jason Lowe-Power Maintainer: Jason Lowe-Power Tested-by: kokoro --- M src/cpu/o3/cpu.cc M src/cpu/o3/rename.hh M src/cpu/o3/rename_impl.hh 3 files changed, 150 insertions(+), 176 deletions(-) Approvals: Jason Lowe-Power: Looks good to me, approved; Looks good to me, approved kokoro: Regressions pass diff --git a/src/cpu/o3/cpu.cc b/src/cpu/o3/cpu.cc index bbc6b82..414913d 100644 --- a/src/cpu/o3/cpu.cc +++ b/src/cpu/o3/cpu.cc @@ -441,7 +441,6 @@ .precision(6); totalIpc = sum(committedInsts) / numCycles; -this->rename.regStats(); this->iew.regStats(); intRegfileReads diff --git a/src/cpu/o3/rename.hh b/src/cpu/o3/rename.hh index e3dc3e9..5b45218 100644 --- a/src/cpu/o3/rename.hh +++ b/src/cpu/o3/rename.hh @@ -133,9 +133,6 @@ /** Returns the name of rename. */ std::string name() const; -/** Registers statistics. */ -void regStats(); - /** Registers probes. */ void regProbePoints(); @@ -481,51 +478,62 @@ */ inline void incrFullStat(const FullSource ); -/** Stat for total number of cycles spent squashing. */ -Stats::Scalar renameSquashCycles; -/** Stat for total number of cycles spent idle. */ -Stats::Scalar renameIdleCycles; -/** Stat for total number of cycles spent blocking. */ -Stats::Scalar renameBlockCycles; -/** Stat for total number of cycles spent stalling for a serializing inst. */ -Stats::Scalar renameSerializeStallCycles; -/** Stat for total number of cycles spent running normally. */ -Stats::Scalar renameRunCycles; -/** Stat for total number of cycles spent unblocking. */ -Stats::Scalar renameUnblockCycles; -/** Stat for total number of renamed instructions. */ -Stats::Scalar renameRenamedInsts; -/** Stat for total number of squashed instructions that rename discards. */ -Stats::Scalar renameSquashedInsts; -/** Stat for total number of times that the ROB starts a stall in rename. */ -Stats::Scalar renameROBFullEvents; -/** Stat for total number of times that the IQ starts a stall in rename. */ -Stats::Scalar renameIQFullEvents; -/** Stat for total number of times that the LQ starts a stall in rename. */ -Stats::Scalar renameLQFullEvents; -/** Stat for total number of times that the SQ starts a stall in rename. */ -Stats::Scalar renameSQFullEvents; -/** Stat for total number of times that rename runs out of free registers - * to use to rename. */ -Stats::Scalar renameFullRegistersEvents; -/** Stat for total number of renamed destination registers. */ -Stats::Scalar renameRenamedOperands; -/** Stat for total number of source register rename lookups. */ -Stats::Scalar renameRenameLookups; -Stats::Scalar intRenameLookups; -Stats::Scalar fpRenameLookups; -Stats::Scalar vecRenameLookups; -Stats::Scalar vecPredRenameLookups; -/** Stat for total number of committed renaming mappings. */ -Stats::Scalar renameCommittedMaps; -/** Stat for total number of mappings that were undone due to a squash. */ -Stats::Scalar renameUndoneMaps; -/** Number of serialize instructions handled. */ -Stats::Scalar renamedSerializing; -/** Number of instructions marked as temporarily serializing. */ -Stats::Scalar renamedTempSerializing; -/** Number of instructions inserted into skid buffers. */ -Stats::Scalar renameSkidInsts; +struct RenameStats : public Stats::Group { +RenameStats(Stats::Group *parent); + +/** Stat for total number of cycles spent squashing. */ +Stats::Scalar squashCycles; +/** Stat for total number of cycles spent idle. */ +Stats::Scalar idleCycles; +/** Stat for total number of cycles spent blocking. */ +Stats::Scalar blockCycles; +/** Stat for total number of cycles spent stalling for a serializing + * inst. */ +Stats::Scalar serializeStallCycles; +/** Stat for total number of cycles spent running normally. */ +Stats::Scalar runCycles; +/** Stat for total number of cycles spent unblocking. */ +Stats::Scalar unblockCycles; +/** Stat for total number of renamed instructions. */ +Stats::Scalar renamedInsts; +/** Stat for total number of squashed instructions that rename + * discards. */ +Stats::Scalar squashedInsts; +/** Stat for total number of times that the ROB starts a stall in + * rename. */ +Stats::Scalar ROBFullEvents; +
[gem5-dev] Change in gem5/gem5[develop]: cpu-o3: convert rename to new style stats
Emily Brickey has uploaded this change for review. ( https://gem5-review.googlesource.com/c/public/gem5/+/33397 ) Change subject: cpu-o3: convert rename to new style stats .. cpu-o3: convert rename to new style stats Change-Id: Id34a85e40ad7e83d5805a034df6e0c5ad9b9af82 --- M src/cpu/o3/cpu.cc M src/cpu/o3/rename.hh M src/cpu/o3/rename_impl.hh 3 files changed, 150 insertions(+), 176 deletions(-) diff --git a/src/cpu/o3/cpu.cc b/src/cpu/o3/cpu.cc index 47caa67..b11dbbc 100644 --- a/src/cpu/o3/cpu.cc +++ b/src/cpu/o3/cpu.cc @@ -442,7 +442,6 @@ totalIpc = sum(committedInsts) / numCycles; this->fetch.regStats(); -this->rename.regStats(); this->iew.regStats(); this->rob.regStats(); diff --git a/src/cpu/o3/rename.hh b/src/cpu/o3/rename.hh index e3dc3e9..ac955b2 100644 --- a/src/cpu/o3/rename.hh +++ b/src/cpu/o3/rename.hh @@ -133,9 +133,6 @@ /** Returns the name of rename. */ std::string name() const; -/** Registers statistics. */ -void regStats(); - /** Registers probes. */ void regProbePoints(); @@ -481,51 +478,62 @@ */ inline void incrFullStat(const FullSource ); -/** Stat for total number of cycles spent squashing. */ -Stats::Scalar renameSquashCycles; -/** Stat for total number of cycles spent idle. */ -Stats::Scalar renameIdleCycles; -/** Stat for total number of cycles spent blocking. */ -Stats::Scalar renameBlockCycles; -/** Stat for total number of cycles spent stalling for a serializing inst. */ -Stats::Scalar renameSerializeStallCycles; -/** Stat for total number of cycles spent running normally. */ -Stats::Scalar renameRunCycles; -/** Stat for total number of cycles spent unblocking. */ -Stats::Scalar renameUnblockCycles; -/** Stat for total number of renamed instructions. */ -Stats::Scalar renameRenamedInsts; -/** Stat for total number of squashed instructions that rename discards. */ -Stats::Scalar renameSquashedInsts; -/** Stat for total number of times that the ROB starts a stall in rename. */ -Stats::Scalar renameROBFullEvents; -/** Stat for total number of times that the IQ starts a stall in rename. */ -Stats::Scalar renameIQFullEvents; -/** Stat for total number of times that the LQ starts a stall in rename. */ -Stats::Scalar renameLQFullEvents; -/** Stat for total number of times that the SQ starts a stall in rename. */ -Stats::Scalar renameSQFullEvents; -/** Stat for total number of times that rename runs out of free registers - * to use to rename. */ -Stats::Scalar renameFullRegistersEvents; -/** Stat for total number of renamed destination registers. */ -Stats::Scalar renameRenamedOperands; -/** Stat for total number of source register rename lookups. */ -Stats::Scalar renameRenameLookups; -Stats::Scalar intRenameLookups; -Stats::Scalar fpRenameLookups; -Stats::Scalar vecRenameLookups; -Stats::Scalar vecPredRenameLookups; -/** Stat for total number of committed renaming mappings. */ -Stats::Scalar renameCommittedMaps; -/** Stat for total number of mappings that were undone due to a squash. */ -Stats::Scalar renameUndoneMaps; -/** Number of serialize instructions handled. */ -Stats::Scalar renamedSerializing; -/** Number of instructions marked as temporarily serializing. */ -Stats::Scalar renamedTempSerializing; -/** Number of instructions inserted into skid buffers. */ -Stats::Scalar renameSkidInsts; +struct RenameStats : public Stats::Group { +RenameStats(Stats::Group *parent); + +/** Stat for total number of cycles spent squashing. */ +Stats::Scalar squashCycles; +/** Stat for total number of cycles spent idle. */ +Stats::Scalar idleCycles; +/** Stat for total number of cycles spent blocking. */ +Stats::Scalar blockCycles; +/** Stat for total number of cycles spent stalling for a serializing + * inst. */ +Stats::Scalar serializeStallCycles; +/** Stat for total number of cycles spent running normally. */ +Stats::Scalar runCycles; +/** Stat for total number of cycles spent unblocking. */ +Stats::Scalar unblockCycles; +/** Stat for total number of renamed instructions. */ +Stats::Scalar renamedInsts; +/** Stat for total number of squashed instructions that rename + * discards. */ +Stats::Scalar squashedInsts; +/** Stat for total number of times that the ROB starts a stall in + * rename. */ +Stats::Scalar ROBFullEvents; +/** Stat for total number of times that the IQ starts a stall in + * rename. */ +Stats::Scalar IQFullEvents; +/** Stat for total number of times that the LQ starts a stall in + * rename. */ +