- 18 Jun, 2015 3 commits
-
-
Travis Hance authored
-
Marius Wachtler authored
- Reuse a register if it already contains the specified value - Generate LEA when beneficial --> Generated code is smaller and has same or better performance
-
Kevin Modzelewski authored
Rewrite "a in b" expressions
-
- 17 Jun, 2015 12 commits
-
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
add a stat for the number of times we abort a callattr rewrite because we had to call into python
-
Kevin Modzelewski authored
-
Chris Toshok authored
-
Kevin Modzelewski authored
add per-python line exception stats
-
Kevin Modzelewski authored
Optimize creating tuples from lists
-
Chris Toshok authored
add logByCurrentPythonLine, and use it for skipped ics and exceptions (if the proper STAT_*_LOCATION #defines are enabled) also adds two scripts (tools/ic_stats.py and tools/exception_stats.py) make the stats a little more manageable for these cases.
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
small optimization to sre_compile._compile()
-
Kevin Modzelewski authored
Skip initializing exc fields inside JITed code
-
- 16 Jun, 2015 10 commits
-
-
Kevin Modzelewski authored
Switch from expensive old-style-class iteration to our faster iteration. We could/should probably make old-style iteration much faster than it currently is for us (10x slower than CPython), but this is a pretty targeted change and makes compiling regular expressions much faster: it cuts (non-LLVM) _compile() time by 2x.
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
cache + reuse 1-length strings
-
Kevin Modzelewski authored
Switch those to just calling 'new BoxedString' instead.
-
Kevin Modzelewski authored
Not sure how much it helps, but it's mostly just a wrapper around new boxedstring. Also, I don't think it needs to be in inline/ any more since we will always box strings during codegen rather than emit calls to boxString.
-
Kevin Modzelewski authored
CPython does this and seems like a good thing to do. Otherwise iterating over a string would cause lots of allocations. One difference between this implementation and cpython's is that cpython doesn't eagerly create them, and so it checks to see if they've been created or not.
-
Kevin Modzelewski authored
Even this is 2x slower
-
Kevin Modzelewski authored
Temporarily disable type speculation
-
Kevin Modzelewski authored
Unfortunately our type speculation strategy has bit-rot over time, to the point that it's not super helpful. Deopt (the flip side of the speculation) also has some bugs in it which I was starting to trigger, so just disable the whole thing for now. Turning it off should just be a temporary measure and I'll look soon into what we need to do to get it back on.
-
- 12 Jun, 2015 5 commits
-
-
Chris Toshok authored
-
Kevin Modzelewski authored
cmake change default build directory, configure script, Fedora support
-
Daniel Agar authored
-pyston build using the copied headers that include the generated pyconfig.h
-
Daniel Agar authored
Conflicts: .travis.yml
-
Kevin Modzelewski authored
New benchmarks
-
- 11 Jun, 2015 1 commit
-
-
Kevin Modzelewski authored
Use BoxedString in codegen
-
- 10 Jun, 2015 9 commits
-
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
Convert to BoxedString much sooner, and have any functions that might need to box a string take a BoxedString. This means that on some paths, we will need to box when previously we didn't, but for callsites that we control we can just intern the string and not have to box again. The much more common case is that we passed in unboxed string data, but then ran into a branch that required boxing. BoxedString shouldn't be that much more costly than std::string, and this should cut down on string allocations. For django-template.py, the number of strings allocated drops from 800k to 525k; for virtualenv_test.py, it goes from 1.25M to 1.0M A couple things made this not 100% mechanical: - taking advantage of places that we could eliminate unbox/rebox pairs - different null-termination assumptions between StringRef and the c api.
-
Chris Toshok authored
-
Chris Toshok authored
-
Chris Toshok authored
-
Chris Toshok authored
-
Kevin Modzelewski authored
Based on what Rudi says he was doing (sorry rudi)
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
Gives you just the top 40 lines. For use in combination with watch_%
-