/** Stat for the total number of squashed instructions discarded by commit.
*/
Stats::Scalar commitSquashedInsts;
- /** Stat for the total number of times commit is told to squash.
- * @todo: Actually increment this stat.
- */
- Stats::Scalar commitSquashEvents;
/** Stat for the total number of times commit has had to stall due to a non-
* speculative instruction reaching the head of the ROB.
*/
/** Number of cycles where the commit bandwidth limit is reached. */
Stats::Scalar commitEligibleSamples;
- /** Number of instructions not committed due to bandwidth limits. */
- Stats::Vector commitEligible;
};
#endif // __CPU_O3_COMMIT_HH__
.name(name() + ".commitSquashedInsts")
.desc("The number of squashed insts skipped by commit")
.prereq(commitSquashedInsts);
- commitSquashEvents
- .name(name() + ".commitSquashEvents")
- .desc("The number of times commit is told to squash")
- .prereq(commitSquashEvents);
+
commitNonSpecStalls
.name(name() + ".commitNonSpecStalls")
.desc("The number of times commit has been forced to stall to "
"communicate backwards")
.prereq(commitNonSpecStalls);
+
branchMispredicts
.name(name() + ".branchMispredicts")
.desc("The number of times a branch was mispredicted")
.prereq(branchMispredicts);
+
numCommittedDist
.init(0,commitWidth,1)
.name(name() + ".committed_per_cycle")
;
statCommittedInstType.ysubnames(Enums::OpClassStrings);
- commitEligible
- .init(cpu->numThreads)
- .name(name() + ".bw_limited")
- .desc("number of insts not committed due to BW limits")
- .flags(total)
- ;
-
commitEligibleSamples
.name(name() + ".bw_lim_events")
.desc("number cycles where commit BW limit reached")
if (interrupt != NoFault)
handleInterrupt();
- int commit_thread = getCommittingThread();
+ ThreadID commit_thread = getCommittingThread();
if (commit_thread == -1 || !rob->isHeadReady(commit_thread))
break;