brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.0 KiB · 610439d Raw
40 lines · python
1#!/usr/bin/env python2 3desc = """4A script to extract ConstraintElimination's reproducer remarks. The extracted5modules are written as textual LLVM IR to files named reproducerXXXX.ll in the6current directory.7"""8 9import optrecord10import argparse11 12if __name__ == "__main__":13    parser = argparse.ArgumentParser(description=desc)14    parser.add_argument(15        "yaml_dirs_or_files",16        nargs="+",17        help="List of optimization record files or directories searched "18        "for optimization record files.",19    )20 21    args = parser.parse_args()22 23    print_progress = False24    jobs = 125 26    files = optrecord.find_opt_files(*args.yaml_dirs_or_files)27    if not files:28        parser.error("No *.opt.yaml files found")29        sys.exit(1)30 31    all_remarks, file_remarks, _ = optrecord.gather_results(files, jobs, True)32 33    i = 034    for r in all_remarks:35        if r[1] != "constraint-elimination" or r[2] != "Reproducer":36            continue37        with open("reproducer{}.ll".format(i), "wt") as f:38            f.write(r[7][1][0][1])39        i += 140