# Node ID ebef608a11db99fd354ccdbdac6b4e85d93bd671 # Parent 131f09c0c29c2db6cdb20ea64bd865c66054cb76 diff --git a/src/cpu/minor/execute.cc b/src/cpu/minor/execute.cc --- a/src/cpu/minor/execute.cc +++ b/src/cpu/minor/execute.cc @@ -854,6 +854,7 @@ thread->numOp++; thread->numOps++; cpu.stats.numOps++; + cpu.stats.committedInstType[inst->id.threadId][inst->staticInst->opClass()]++; /* Set the CP SeqNum to the numOps commit number */ if (inst->traceData) diff --git a/src/cpu/minor/stats.hh b/src/cpu/minor/stats.hh --- a/src/cpu/minor/stats.hh +++ b/src/cpu/minor/stats.hh @@ -76,6 +76,9 @@ Stats::Formula cpi; Stats::Formula ipc; + /** Number of instructions by type (OpClass) */ + Stats::Vector2d committedInstType; + public: MinorStats(); diff --git a/src/cpu/minor/stats.cc b/src/cpu/minor/stats.cc --- a/src/cpu/minor/stats.cc +++ b/src/cpu/minor/stats.cc @@ -82,6 +82,13 @@ .desc("IPC: instructions per cycle") .precision(6); ipc = numInsts / baseCpu.numCycles; + + committedInstType + .init(baseCpu.numThreads, Enums::Num_OpClass) + .name(name + ".op_class") + .desc("Class of committed instruction") + .flags(Stats::total | Stats::pdf | Stats::dist); + committedInstType.ysubnames(Enums::OpClassStrings); } };