| #!/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 |