1#!/usr/bin/env python3 2""" 3Merge .stats files generated by llvm tools 4 5merge-stats.py takes as argument a list of stats files to merge 6and output the result on stdout 7 8Usage: 9 merge-stats.py $(find ./builddir/ -name "*.stats") > total.stats 10""" 11 12import json 13import sys 14 15result = {} 16 17for arg in range(1, len(sys.argv)): 18 with open(sys.argv[arg], "r", encoding="utf-8", errors="ignore") as f: 19 text = f.read() 20 try: 21 data = json.loads(text) 22 except: 23 print("ignored %s: failed to parse" % sys.argv[arg], file=sys.stderr) 24 continue 25 for key in data: 26 if key in result: 27 result[key] += data[key] 28 else: 29 result[key] = data[key] 30 31out = json.dumps(result, indent=2) 32print(out) 33