def main(): parser = argparse.ArgumentParser() parser.add_argument('-m', '--match', action='append', metavar='name', help='run tests containing this text') parser.add_argument('--infer-flags', action='store_true', default=False, help='Infer NSW/NUW/exact flags automaically', dest='infer_flags') parser.add_argument('--hide-progress', action='store_true', default=False, help='Do not display a Done: NN% progress status', dest='hide_progress') parser.add_argument('-V', '--verify', action='store_true', default=True, help='check correctness of optimizations (default: True)') parser.add_argument('--no-verify', action='store_false', dest='verify') parser.add_argument('-o', '--output', type=argparse.FileType('w'), metavar='file', help='Write generated code to <file> ("-" for stdout)') parser.add_argument('--use-array-th', action='store_true', default=False, help='Use array theory to encode memory operations (default: False)', dest='array_th') parser.add_argument('--new-sema', action='store_true', default=False, help='Use new semantics (default: False)', dest='new_sem') parser.add_argument('file', type=argparse.FileType('r'), nargs='*', default=[sys.stdin], help='optimization file (read from stdin if none given)',) args = os.getenv('ALIVE_EXTRA_ARGS', '').split() + sys.argv[1:] args = parser.parse_args(args) set_infer_flags(args.infer_flags) set_use_array_theory(args.array_th) set_use_new_semantics(args.new_sem) gen = [] for f in args.file: if f.isatty(): sys.stderr.write('[Reading from terminal...]\n') opts = parse_opt_file(f.read()) for opt in opts: if not args.match or any(pat in opt[0] for pat in args.match): if args.output: gen.append(opt) if args.verify: check_opt(opt, hide_progress=args.hide_progress) elif not args.output: print opt[0] if args.output: generate_switched_suite(gen, args.output)
def main(): parser = argparse.ArgumentParser() parser.add_argument('-m', '--match', action='append', metavar='name', help='run tests containing this text') parser.add_argument('-V', '--verify', action='store_true', default=True, help='check correctness of optimizations (default: True)') parser.add_argument('--no-verify', action='store_false', dest='verify') parser.add_argument('file', type=file, nargs='*', default=[sys.stdin], help='optimization file (read from stdin if none given)',) args = parser.parse_args() for f in args.file: opts = parse_opt_file(f.read()) for opt in opts: if not args.match or any(pat in opt[0] for pat in args.match): if args.verify: check_opt(opt) else: print opt[0]
def main(): parser = argparse.ArgumentParser() parser.add_argument('-m', '--match', action='append', metavar='name', help='run tests containing this text') parser.add_argument('--infer-flags', action='store_true', default=False, help='Infer NSW/NUW/exact flags automaically', dest='infer_flags') parser.add_argument( '-V', '--verify', action='store_true', default=True, help='check correctness of optimizations (default: True)') parser.add_argument('--no-verify', action='store_false', dest='verify') parser.add_argument( 'file', type=file, nargs='*', default=[sys.stdin], help='optimization file (read from stdin if none given)', ) args = parser.parse_args() set_infer_flags(args.infer_flags) for f in args.file: opts = parse_opt_file(f.read()) for opt in opts: if not args.match or any(pat in opt[0] for pat in args.match): if args.verify: check_opt(opt) else: print opt[0]
out.write(' switch (I->getOpcode()) {\n default: break;\n') # sort opts by root opcode for opt in opts: root_opts[get_root(opt[1][4]).getOpName()].append(opt) for root, opts in root_opts.iteritems(): if root not in llvm_opcode: continue out.write(' case {0}:\n'.format(llvm_opcode[root])) for rule, opt in opts: generate_opt(rule, opt, out) out.write('\n break;\n\n') out.write(''' } return nullptr; } ''') if __name__ == '__main__': input = sys.stdin.read() generate_switched_suite(parse_opt_file(input), sys.stdout)
def main(): parser = argparse.ArgumentParser() parser.add_argument('-m', '--match', action='append', metavar='name', help='run tests containing this text') parser.add_argument('--infer-flags', action='store_true', default=False, help='Infer NSW/NUW/exact flags automaically', dest='infer_flags') parser.add_argument('--hide-progress', action='store_true', default=False, help='Do not display a Done: NN% progress status', dest='hide_progress') parser.add_argument( '-V', '--verify', action='store_true', default=True, help='check correctness of optimizations (default: True)') parser.add_argument('--no-verify', action='store_false', dest='verify') parser.add_argument('-o', '--output', type=argparse.FileType('w'), metavar='file', help='Write generated code to <file> ("-" for stdout)') parser.add_argument( '--use-array-th', action='store_true', default=False, help='Use array theory to encode memory operations (default: False)', dest='array_th') parser.add_argument('--new-sema', action='store_true', default=False, help='Use new semantics (default: False)', dest='new_sem') parser.add_argument( 'file', type=argparse.FileType('r'), nargs='*', default=[sys.stdin], help='optimization file (read from stdin if none given)', ) args = os.getenv('ALIVE_EXTRA_ARGS', '').split() + sys.argv[1:] args = parser.parse_args(args) set_infer_flags(args.infer_flags) set_use_array_theory(args.array_th) set_use_new_semantics(args.new_sem) gen = [] for f in args.file: if f.isatty(): sys.stderr.write('[Reading from terminal...]\n') opts = parse_opt_file(f.read()) for opt in opts: if not args.match or any(pat in opt[0] for pat in args.match): if args.output: gen.append(opt) if args.verify: check_opt(opt, hide_progress=args.hide_progress) elif not args.output: print opt[0] if args.output: generate_switched_suite(gen, args.output)
out.write(' switch (I->getOpcode()) {\n default: break;\n') # sort opts by root opcode for opt in opts: root_opts[get_root(opt[1][4]).getOpName()].append(opt) for root, opts in root_opts.items(): if root not in llvm_opcode: continue out.write(' case {0}:\n'.format(llvm_opcode[root])) for rule, opt in opts: generate_opt(rule, opt, out) out.write('\n break;\n\n') out.write(''' } return nullptr; } ''') if __name__ == '__main__': input = sys.stdin.read() generate_switched_suite(parse_opt_file(input), sys.stdout)
def parse_transforms(input): return [Transformation(*o) for o in parse_opt_file(input)]