changeset 342c0eaab188 in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=342c0eaab188
description:
python: Don't use Swig to cast stats
Call the stat visitor from the stat itself rather than casting stats
in Python. This reduces the number of ways visitors are called.
Change-Id: Ic4d0b7b32e3ab9897b9a34cd22d353f4da62d738
Signed-off-by: Andreas Sandberg <[email protected]>
Reviewed-by: Sascha Bischoff <[email protected]>
Reviewed-by: Curtis Dunham <[email protected]>
Reviewed-by: Jason Lowe-Power <[email protected]>
Reviewed-by: Joe Gross <[email protected]>
diffstat:
src/python/m5/stats/__init__.py | 18 +++---------------
src/python/swig/stats.i | 16 ----------------
2 files changed, 3 insertions(+), 31 deletions(-)
diffs (73 lines):
diff -r af41594e9b3c -r 342c0eaab188 src/python/m5/stats/__init__.py
--- a/src/python/m5/stats/__init__.py Tue Jan 03 12:03:06 2017 +0000
+++ b/src/python/m5/stats/__init__.py Tue Jan 03 12:03:45 2017 +0000
@@ -49,25 +49,13 @@
names = []
stats_dict = {}
stats_list = []
-raw_stats_list = []
def enable():
'''Enable the statistics package. Before the statistics package is
enabled, all statistics must be created and initialized and once
the package is enabled, no more statistics can be created.'''
- __dynamic_cast = []
- for k, v in internal.stats.__dict__.iteritems():
- if k.startswith('dynamic_'):
- __dynamic_cast.append(v)
- for stat in internal.stats.statsList():
- for cast in __dynamic_cast:
- val = cast(stat)
- if val is not None:
- stats_list.append(val)
- raw_stats_list.append(val)
- break
- else:
- fatal("unknown stat type %s", stat)
+ global stats_list
+ stats_list = list(internal.stats.statsList())
for stat in stats_list:
if not stat.check() or not stat.baseCheck():
@@ -116,7 +104,7 @@
if output.valid():
output.begin()
for stat in stats_list:
- output.visit(stat)
+ stat.visit(output)
output.end()
def reset():
diff -r af41594e9b3c -r 342c0eaab188 src/python/swig/stats.i
--- a/src/python/swig/stats.i Tue Jan 03 12:03:06 2017 +0000
+++ b/src/python/swig/stats.i Tue Jan 03 12:03:45 2017 +0000
@@ -46,12 +46,6 @@
#include "sim/stat_register.hh"
namespace Stats {
-template <class T>
-inline T
-cast_info(Info *info)
-{
- return dynamic_cast<T>(info);
-}
inline FlagsType
Stats_Info_flags_get(Info *info)
@@ -124,16 +118,6 @@
namespace Stats {
-template <class T> T cast_info(Info *info);
-
-%template(dynamic_ScalarInfo) cast_info<ScalarInfo *>;
-%template(dynamic_VectorInfo) cast_info<VectorInfo *>;
-%template(dynamic_DistInfo) cast_info<DistInfo *>;
-%template(dynamic_VectorDistInfo) cast_info<VectorDistInfo *>;
-%template(dynamic_Vector2dInfo) cast_info<Vector2dInfo *>;
-%template(dynamic_FormulaInfo) cast_info<FormulaInfo *>;
-%template(dynamic_SparseHistInfo) cast_info<SparseHistInfo *>;
-
void initSimStats();
Output *initText(const std::string &filename, bool desc);
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev