diff options
author | Curtis Dunham <Curtis.Dunham@arm.com> | 2014-05-09 18:58:47 -0400 |
---|---|---|
committer | Curtis Dunham <Curtis.Dunham@arm.com> | 2014-05-09 18:58:47 -0400 |
commit | 1028c03320c6c7822b8f5a32da2297c1be2d1487 (patch) | |
tree | 1b1688d2b4fbc9e5009af54a200243805169d820 /src/cpu/simple/base.cc | |
parent | a15b713cba52d9d4d2c1204fef050fb3856ca33e (diff) | |
download | gem5-1028c03320c6c7822b8f5a32da2297c1be2d1487.tar.xz |
cpu: add more instruction mix statistics
For the o3, add instruction mix (OpClass) histogram at commit (stats
also already collected at issue). For the simple CPUs we add a
histogram of executed instructions
Diffstat (limited to 'src/cpu/simple/base.cc')
-rw-r--r-- | src/cpu/simple/base.cc | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/cpu/simple/base.cc b/src/cpu/simple/base.cc index 3adf6d27f..f022d05e0 100644 --- a/src/cpu/simple/base.cc +++ b/src/cpu/simple/base.cc @@ -286,6 +286,16 @@ BaseSimpleCPU::regStats() .prereq(dcacheRetryCycles) ; + statExecutedInstType + .init(Enums::Num_OpClass) + .name(name() + ".op_class") + .desc("Class of executed instruction") + .flags(total | pdf | dist) + ; + for (unsigned i = 0; i < Num_OpClasses; ++i) { + statExecutedInstType.subname(i, Enums::OpClassStrings[i]); + } + idleFraction = constant(1.0) - notIdleFraction; numIdleCycles = idleFraction * numCycles; numBusyCycles = (notIdleFraction)*numCycles; @@ -532,6 +542,8 @@ BaseSimpleCPU::postExecute() } /* End power model statistics */ + statExecutedInstType[curStaticInst->opClass()]++; + if (FullSystem) traceFunctions(instAddr); |