Skip to content

Conversation

@undingen
Copy link
Contributor

@undingen undingen commented May 26, 2016

First patch of baseline JIT improvements.
the major changes are:

  • it reenables the optimization that we don't use the vregs for compiler generated vars which don't get used after the current basic block
  • allows usage of r12 and r15 in the bjit
  • jit bjit code into 31bit address space

This makes the generated code look much more reasonable and is a good foundation for further improvements.

I have a second tier of patches which I will put into another PR which makes the bjit reuse some of the vregs which improves the performance further.

                                   upstream/master:    origin/bjit_opt2:
           django_template3.py             2.8s (4)             2.6s (4)  -6.5%
                 pyxl_bench.py             2.8s (4)             2.4s (4)  -13.7%
     sqlalchemy_imperative2.py             2.7s (4)             2.7s (4)  -2.7%
                pyxl_bench2.py             1.2s (4)             1.2s (4)  -2.9%
       django_template3_10x.py            13.8s (4)            13.5s (4)  -2.5%
             pyxl_bench_10x.py            18.3s (4)            18.1s (4)  -0.9%
 sqlalchemy_imperative2_10x.py            19.3s (4)            19.3s (4)  +0.0%
            pyxl_bench2_10x.py            10.7s (4)            10.2s (4)  -4.5%
                       geomean                 5.8s                 5.6s  -4.3%

some of the minibenchmarks in -SI mode:
raytrace.py        21.29s -> 15.22s
django_template.py  3.75s ->  3.24s
richards.py         4.57s ->  3.20s

@undingen undingen added the wip label May 26, 2016
@undingen undingen force-pushed the bjit_opt2 branch 9 times, most recently from e18c60a to acb0f79 Compare June 1, 2016 10:01
@undingen undingen force-pushed the bjit_opt2 branch 2 times, most recently from d8305e3 to 6b29ad6 Compare June 4, 2016 19:23
@undingen undingen changed the title wip: misc bjit improvements major bjit improvements Jun 4, 2016
@undingen undingen removed the wip label Jun 4, 2016
@undingen
Copy link
Contributor Author

undingen commented Jun 4, 2016

should be ready for review

@kmod
Copy link
Collaborator

kmod commented Jun 7, 2016

lgtm too :) but let's run it through the CI as well

@kmod kmod added the accepted label Jun 7, 2016
@undingen undingen merged commit e717448 into pyston:master Jun 8, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants