Пример #1
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('--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)
Пример #2
0
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]
Пример #3
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]
Пример #4
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)
Пример #5
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('--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)
Пример #6
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.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)
Пример #7
0
def parse_transforms(input):
  return [Transformation(*o) for o in parse_opt_file(input)]