annotate pyrect/pyrect/llvm_bench.py @ 9:493c96d030c0

add pyrect
author nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
date Tue, 14 Jun 2011 17:24:03 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9
493c96d030c0 add pyrect
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 #!/usr/bin/env python
493c96d030c0 add pyrect
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
2
493c96d030c0 add pyrect
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 import sys,re
493c96d030c0 add pyrect
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 from optparse import OptionParser
493c96d030c0 add pyrect
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 from timeit import Timer
493c96d030c0 add pyrect
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 from pyrect.regexp import Regexp
493c96d030c0 add pyrect
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 from pyrect.llvm_translator import LLVMTranslator
493c96d030c0 add pyrect
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
8
493c96d030c0 add pyrect
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 myusage = "%prog [-O] [-p] [-s string] [-r regexp] [-E]"
493c96d030c0 add pyrect
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 psr = OptionParser(usage=myusage)
493c96d030c0 add pyrect
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 psr.add_option("-O", action="store_true", dest="optimize", default=False, help="optimimzation")
493c96d030c0 add pyrect
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 psr.add_option("-E", action="store_true", dest="execute", default=False, help="execute Module")
493c96d030c0 add pyrect
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 psr.add_option("-p", action="store_true", dest="print_", default=False, help="print module")
493c96d030c0 add pyrect
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 psr.add_option("-g", action="store_true", dest="debug", default=False, help="add debug stmt to module")
493c96d030c0 add pyrect
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 psr.add_option("-v", action="store_true", dest="verbose", default=False, help="verbose mode")
493c96d030c0 add pyrect
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 psr.add_option("-n", action="store", type="int", dest="number", default=1000, help="number of eval", metavar="INT")
493c96d030c0 add pyrect
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 psr.add_option("-r", action="store", type="string", dest="regexp", default="(A|B)*C", help="regexp", metavar="FILE")
493c96d030c0 add pyrect
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 psr.add_option("-s", action="store", type="string", dest="string", default="A"+"B"*500+"C", help="string", metavar="FILE")
493c96d030c0 add pyrect
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 (opts, args) = psr.parse_args(sys.argv)
493c96d030c0 add pyrect
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
20
493c96d030c0 add pyrect
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 if opts.verbose: print "regexp = \"%s\", string = \"%s\", loop = %d" % (opts.regexp, opts.string, opts.number)
493c96d030c0 add pyrect
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
22
493c96d030c0 add pyrect
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 reg = Regexp(opts.regexp)
493c96d030c0 add pyrect
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 llvmt = LLVMTranslator(reg)
493c96d030c0 add pyrect
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 llvmt.string = opts.string
493c96d030c0 add pyrect
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 llvmt.debug = opts.debug
493c96d030c0 add pyrect
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 llvmt.optimize = opts.optimize
493c96d030c0 add pyrect
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
28
493c96d030c0 add pyrect
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 if opts.print_: llvmt.translate()
493c96d030c0 add pyrect
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
30
493c96d030c0 add pyrect
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 if opts.execute:
493c96d030c0 add pyrect
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 print "LLVM :", Timer(setup='from __main__ import llvmt', stmt='llvmt.execute()').timeit(opts.number)
493c96d030c0 add pyrect
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
33
493c96d030c0 add pyrect
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 reg = re.compile("^%s$" % opts.regexp)
493c96d030c0 add pyrect
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 print "re :", Timer(setup='from __main__ import reg', stmt='reg.search("%s")' % opts.string).timeit(opts.number)
493c96d030c0 add pyrect
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
36
493c96d030c0 add pyrect
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 reg = Regexp(opts.regexp)
493c96d030c0 add pyrect
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 print "pyrect:", Timer(setup='from __main__ import reg', stmt='reg.matches("%s")' % opts.string).timeit(opts.number)