llvm-project/llvm/tools/opt-viewer/extract-reproducers.py
Tobias Hieta b71edfaa4e
[NFC][Py Reformat] Reformat python files in llvm
This is the first commit in a series that will reformat
all the python files in the LLVM repository.

Reformatting is done with `black`.

See more information here:

https://discourse.llvm.org/t/rfc-document-and-standardize-python-code-style

Reviewed By: jhenderson, JDevlieghere, MatzeB

Differential Revision: https://reviews.llvm.org/D150545
2023-05-17 10:48:52 +02:00

40 lines
1.0 KiB
Python

#!/usr/bin/env python
desc = """
A script to extract ConstraintElimination's reproducer remarks. The extracted
modules are written as textual LLVM IR to files named reproducerXXXX.ll in the
current directory.
"""
import optrecord
import argparse
if __name__ == "__main__":
parser = argparse.ArgumentParser(description=desc)
parser.add_argument(
"yaml_dirs_or_files",
nargs="+",
help="List of optimization record files or directories searched "
"for optimization record files.",
)
args = parser.parse_args()
print_progress = False
jobs = 1
files = optrecord.find_opt_files(*args.yaml_dirs_or_files)
if not files:
parser.error("No *.opt.yaml files found")
sys.exit(1)
all_remarks, file_remarks, _ = optrecord.gather_results(files, jobs, True)
i = 0
for r in all_remarks:
if r[1] != "constraint-elimination" or r[2] != "Reproducer":
continue
with open("reproducer{}.ll".format(i), "wt") as f:
f.write(r[7][1][0][1])
i += 1