aboutsummaryrefslogtreecommitdiff
path: root/tools/scan_ll.py
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2012-03-11 18:17:53 -0700
committerAlon Zakai <alonzakai@gmail.com>2012-03-11 18:17:53 -0700
commitf5403671bbbd6e52b41f380ac9b21a4063bc2254 (patch)
treecc6e84f5615df63d175a61e630cbb4e4db5a95da /tools/scan_ll.py
parent44161f79bdb949534faa50b38979310ed7d93ce4 (diff)
add llvm function size scanner
Diffstat (limited to 'tools/scan_ll.py')
-rw-r--r--tools/scan_ll.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/tools/scan_ll.py b/tools/scan_ll.py
new file mode 100644
index 00000000..d7d42057
--- /dev/null
+++ b/tools/scan_ll.py
@@ -0,0 +1,18 @@
+'''
+Finds why an .ll file is large by printing functions by size
+'''
+
+import os, sys
+
+funcs = []
+i = 0
+for line in open(sys.argv[1]):
+ i += 1
+ if line.startswith('define '):
+ inside = line.replace('define ', '').replace('\n', '')
+ start = i
+ elif line.startswith('}'):
+ funcs.append((inside, i-start))
+
+print '\n'.join(map(lambda func: str(func[1]) + ':' + func[0], sorted(funcs, key=lambda func: -func[1])))
+