/** Updates commit stats based on this instruction. */
void updateComInstStats(DynInstPtr &inst);
- /** Stat for the total number of committed instructions. */
- Stats::Scalar commitCommittedInsts;
- /** Stat for the total number of committed ops. */
- Stats::Scalar commitCommittedOps;
/** Stat for the total number of squashed instructions discarded by commit.
*/
Stats::Scalar commitSquashedInsts;
DefaultCommit<Impl>::regStats()
{
using namespace Stats;
- commitCommittedInsts
- .name(name() + ".commitCommittedInsts")
- .desc("The number of committed instructions")
- .prereq(commitCommittedInsts);
- commitCommittedOps
- .name(name() + ".commitCommittedOps")
- .desc("The number of committed instructions")
- .prereq(commitCommittedInsts);
commitSquashedInsts
.name(name() + ".commitSquashedInsts")
.desc("The number of squashed insts skipped by commit")
// Set the doneSeqNum to the youngest committed instruction.
toIEW->commitInfo[tid].doneSeqNum = head_inst->seqNum;
- if (!head_inst->isMicroop() || head_inst->isLastMicroop())
- ++commitCommittedInsts;
- ++commitCommittedOps;
-
- // To match the old model, don't count nops and instruction
- // prefetches towards the total commit count.
- if (!head_inst->isNop() && !head_inst->isInstPrefetch()) {
- cpu->instDone(tid, head_inst);
- }
-
if (tid == 0) {
canHandleInterrupts = (!head_inst->isDelayedCommit()) &&
((THE_ISA != ALPHA_ISA) ||
instsCommitted[tid]++;
opsCommitted[tid]++;
+ // To match the old model, don't count nops and instruction
+ // prefetches towards the total commit count.
+ if (!inst->isNop() && !inst->isInstPrefetch()) {
+ cpu->instDone(tid, inst);
+ }
+
//
// Control Instructions
//