[llvm] 7d0f691 - [NFC] Add utility to sum/merge stats files

via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 7 10:04:49 PDT 2020


Author: Tyker
Date: 2020-08-07T19:02:42+02:00
New Revision: 7d0f69118e61a86f4565ae372d6125cae4bc8d83

URL: https://github.com/llvm/llvm-project/commit/7d0f69118e61a86f4565ae372d6125cae4bc8d83
DIFF: https://github.com/llvm/llvm-project/commit/7d0f69118e61a86f4565ae372d6125cae4bc8d83.diff

LOG: [NFC] Add utility to sum/merge stats files

Add a small script to sum *.stats file given as input and output the totals
usage example:
    merge-stats.py $(find ./builddir/ -name "*.stats") > total.stats

Reviewed By: lebedev.ri

Differential Revision: https://reviews.llvm.org/D83505

Added: 
    llvm/utils/merge-stats.py

Modified: 
    

Removed: 
    


################################################################################
diff  --git a/llvm/utils/merge-stats.py b/llvm/utils/merge-stats.py
new file mode 100755
index 000000000000..342be3c9002e
--- /dev/null
+++ b/llvm/utils/merge-stats.py
@@ -0,0 +1,33 @@
+#!/usr/bin/env python3
+'''
+Merge .stats files generated by llvm tools
+
+merge-stats.py takes as argument a list of stats files to merge
+and output the result on stdout
+
+Usage:
+  merge-stats.py $(find ./builddir/ -name "*.stats") > total.stats
+'''
+
+import json
+import sys
+
+result = {}
+
+for arg in range(1, len(sys.argv)):
+  with open(sys.argv[arg], "r", encoding='utf-8',
+            errors='ignore') as f:
+    text = f.read()
+    try:
+      data = json.loads(text)
+    except:
+      print('ignored %s: failed to parse' % sys.argv[arg], file= sys.stderr)
+      continue
+    for key in data:
+      if key in result:
+        result[key] += data[key]
+      else:
+        result[key] = data[key]
+
+out = json.dumps(result, indent=2)
+print(out)


        


More information about the llvm-commits mailing list