Index: tools/baseline.py
===================================================================
--- tools/baseline.py	(revision c6f1f3ebf65fd583f3f052ae0aed817e4ce7f4fc)
+++ tools/baseline.py	(revision c6f1f3ebf65fd583f3f052ae0aed817e4ce7f4fc)
@@ -0,0 +1,45 @@
+#!/usr/bin/python3
+
+import sys
+
+import urllib.request
+import re
+import json
+
+if len(sys.argv) != 3 :
+ 	sys.exit("Expected architecture and file name as arguments")
+
+build_cache = {}
+
+def build(number):
+	if number in build_cache:
+		return build_cache[number]
+
+	url = "https://cforall.uwaterloo.ca/jenkins/job/Cforall/job/master/%s/api/json?" % number
+	f = urllib.request.urlopen(url)
+	j = json.loads(f.read().decode("utf-8"))
+	res = re.search("([^:]+):(x86|x64)", j['description'])
+
+	build_cache.update({number : (res.group(1), res.group(2))})
+	return build_cache[number]
+
+content = {}
+try:
+	with open(sys.argv[2]) as f:
+		f.readline()
+		f.readline()
+
+		for l in f:
+			data = [d.replace('"', '') for d in l.split(',')]
+			number = data[2]
+			_, arch = build(number)
+			if arch == sys.argv[1]:
+				if not data[1] in content:
+					content.update({data[1] : []})
+
+				content[data[1]].append(float(data[0]))
+except IOError as e:
+	sys.exit(e.strerror)
+
+print(','.join(content.keys()))
+print(','.join([str(sum(vals) / len(vals)) for vals in content.values()]))
