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