changeset a3525ee464b8 in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=a3525ee464b8
description:
Ruby: Order profilers based on version
When Ruby stats are printed for events and transitions, they include
stats
for all of the controllers of the same type, but they are not
necessarily
printed in order of the controller ID "version", because of the way the
profilers were added to the profiler vector. This patch fixes the push
order
problem so that the stats are printed in ascending order 0->(#
controllers),
so statistics parsers may correctly assume the controller to which the
stats
belong.
diffstat:
src/mem/slicc/symbols/StateMachine.py | 11 ++++++++++-
1 files changed, 10 insertions(+), 1 deletions(-)
diffs (35 lines):
diff -r c52b4c5f46f8 -r a3525ee464b8 src/mem/slicc/symbols/StateMachine.py
--- a/src/mem/slicc/symbols/StateMachine.py Tue Apr 09 16:15:06 2013 -0500
+++ b/src/mem/slicc/symbols/StateMachine.py Tue Apr 09 16:25:29 2013 -0500
@@ -1346,7 +1346,9 @@
void
${ident}_ProfileDumper::registerProfiler(${ident}_Profiler* profiler)
{
- m_profilers.push_back(profiler);
+ if (profiler->getVersion() >= m_profilers.size())
+ m_profilers.resize(profiler->getVersion() + 1);
+ m_profilers[profiler->getVersion()] = profiler;
}
void
@@ -1413,6 +1415,7 @@
public:
${ident}_Profiler();
void setVersion(int version);
+ int getVersion();
void countTransition(${ident}_State state, ${ident}_Event event);
void possibleTransition(${ident}_State state, ${ident}_Event event);
uint64 getEventCount(${ident}_Event event);
@@ -1462,6 +1465,12 @@
m_version = version;
}
+int
+${ident}_Profiler::getVersion()
+{
+ return m_version;
+}
+
void
${ident}_Profiler::clearStats()
{
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev