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