[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Does CPython already has Peephole optimizations?

On 2/17/14 3:59 AM, Steven D'Aprano wrote:
> On Mon, 17 Feb 2014 13:54:25 +0530, Laxmikant Chitare wrote:
>> I read about this article:
>> http://www.python.org/workshops/1998-11/proceedings/papers/montanaro/
> montanaro.html
>> Just wanted to clarify whether CPython already includes these kind of
>> byte code optimizations? Are all the temporary variables removed when
>> byte code is generated?
> You can check these things for yourself:
> import dis
> dis.dis(function)
> will show you the byte code.
> But in general, I would expect not. CPython (that's the Python you
> probably use) doesn't do a lot of optimization apart from some simple
> constant folding. If you're interested in optimizing Python, you should
> look at the JIT optimizing Python compiler, PyPy.

CPython does some constant folding, and also jump optimizations.  In my 
role as coverage.py maintainer, I would love to see a way to disable all 
those optimizations.  I tried filing a bug about it 
(http://bugs.python.org/issue2506), but it did not win the popular 
support I had hoped for.

Ned Batchelder, http://nedbatchelder.com