Skip test earlier if metric is not found in compare.py
This speeds up processing for inputs with lots of missing metrics, by
avoiding adding them to names.
Reviewed By: paquette
Differential Revision: https://reviews.llvm.org/D64065
llvm-svn: 366999
diff --git a/utils/compare.py b/utils/compare.py
index 287e117..71f4215 100755
--- a/utils/compare.py
+++ b/utils/compare.py
@@ -32,10 +32,10 @@
if name in names:
sys.stderr.write("Error: Multiple tests with name '%s'\n" % name)
sys.exit(1)
- names.add(name)
if "metrics" not in test:
- print("Warning: '%s' has No metrics!" % test['name'])
+ print("Warning: '%s' has no metrics, skipping!" % test['name'])
continue
+ names.add(name)
for name in test["metrics"].keys():
if name not in columnindexes:
columnindexes[name] = len(columns)
@@ -50,15 +50,16 @@
data = []
testnames = []
for test in jsondata['tests']:
+ if "metrics" not in test:
+ continue
name = test['name']
if 'shortname' in test:
name = test['shortname']
testnames.append(name)
datarow = [nan] * len(columns)
- if "metrics" in test:
- for (metricname, value) in test['metrics'].items():
- datarow[columnindexes[metricname]] = value
+ for (metricname, value) in test['metrics'].items():
+ datarow[columnindexes[metricname]] = value
for (name, value) in test.items():
index = columnindexes.get(name)
if index is not None: