aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2014-02-11 17:03:23 -0800
committerAlon Zakai <alonzakai@gmail.com>2014-02-11 17:03:23 -0800
commit95c142a60924eede921a2ba9e92c7db21128e5d1 (patch)
tree5cf1b245aa5c3ef97b4d2e1b446552e6c4313218
parente22e4a8192810891c7b3ff0b5790cd63ce5119ae (diff)
silly little llvm debug tool
-rw-r--r--tools/stubify_ll.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/tools/stubify_ll.py b/tools/stubify_ll.py
new file mode 100644
index 00000000..1e10ae4e
--- /dev/null
+++ b/tools/stubify_ll.py
@@ -0,0 +1,28 @@
+
+# given a file of ll and a list of names to retain, makes all other functions into stubs.
+# you can then build with -s LINKABLE=1 and see any compilation errors on the specific functions
+
+import os, sys
+
+kill = False
+
+valids = sys.argv[2].split(',')
+
+for line in open(sys.argv[1]).readlines():
+ line = line.replace('\n', '')
+ if line.startswith('define ') and line.endswith('{'):
+ ok = False
+ for valid in valids:
+ if valid in line: ok = True
+ if not ok:
+ line = line.replace('define ', 'declare ').replace(' internal ', ' ').replace(' weak ', ' ')[:-1]
+ kill = True
+ else:
+ line = line.replace(' internal ', ' ')
+ print line
+ else:
+ if not kill:
+ print line
+ else:
+ if line == '}': kill = False
+