From c8b1e8f1cfdb5b66bacbbbd23dcf9ebb5a0f3b95 Mon Sep 17 00:00:00 2001 From: Andreas Sandberg Date: Tue, 3 Jan 2017 12:03:45 +0000 Subject: 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 Reviewed-by: Sascha Bischoff Reviewed-by: Curtis Dunham Reviewed-by: Jason Lowe-Power Reviewed-by: Joe Gross --- src/python/m5/stats/__init__.py | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) (limited to 'src/python/m5') diff --git a/src/python/m5/stats/__init__.py b/src/python/m5/stats/__init__.py index 4defaf5c1..f3d394311 100644 --- a/src/python/m5/stats/__init__.py +++ b/src/python/m5/stats/__init__.py @@ -49,25 +49,13 @@ def initSimStats(): 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 @@ def dump(): if output.valid(): output.begin() for stat in stats_list: - output.visit(stat) + stat.visit(output) output.end() def reset(): -- cgit v1.2.3