[PATCH] D63461: [Util] Add a helper script for converting -print-before-all output into a file based equivelent

Philip Reames via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jun 19 15:02:43 PDT 2019


This revision was automatically updated to reflect the committed changes.
Closed by commit rL363884: [Util] Add a helper script for converting -print-before-all output into a fileā€¦ (authored by reames, committed by ).

Changed prior to commit:
  https://reviews.llvm.org/D63461?vs=205197&id=205682#toc

Repository:
  rL LLVM

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D63461/new/

https://reviews.llvm.org/D63461

Files:
  llvm/trunk/utils/chunk-print-before-all.py


Index: llvm/trunk/utils/chunk-print-before-all.py
===================================================================
--- llvm/trunk/utils/chunk-print-before-all.py
+++ llvm/trunk/utils/chunk-print-before-all.py
@@ -0,0 +1,42 @@
+#!/usr/bin/env python
+# Given a -print-before-all -print-module-scope log from an opt invocation,
+# chunk it into a series of individual IR files, one for each pass invocation.
+# If the log ends with an obvious stack trace, try to split off a separate
+# "crashinfo.txt" file leaving only the valid input IR in the last chunk.
+# Files are written to current working directory.
+
+import sys
+
+basename = "chunk-"
+chunk_id = 0
+
+def print_chunk(lines):
+    global chunk_id
+    global basename
+    fname = basename + str(chunk_id) + ".ll"
+    chunk_id = chunk_id + 1
+    print "writing chunk " + fname + " (" + str(len(lines)) + " lines)"
+    with open(fname, "w") as f:
+        f.writelines(lines)
+
+is_dump = False
+cur = []
+for line in sys.stdin:
+    if line.startswith("*** IR Dump Before ") and len(cur) != 0:
+        print_chunk(cur);
+        cur = []
+        cur.append("; " + line)
+    elif line.startswith("Stack dump:"):
+        print_chunk(cur);
+        cur = []
+        cur.append(line)
+        is_dump = True
+    else:
+        cur.append(line)
+
+if is_dump:
+    print "writing crashinfo.txt (" + str(len(cur)) + " lines)"
+    with open("crashinfo.txt", "w") as f:
+        f.writelines(cur)
+else:
+    print_chunk(cur);


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D63461.205682.patch
Type: text/x-patch
Size: 1492 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190619/7c6d5009/attachment.bin>


More information about the llvm-commits mailing list