Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #66632
| References | <mailman.7086.1392625473.18130.python-list@python.org> <5301cf82$0$29985$c3e8da3$5496439d@news.astraweb.com> <ldt455$7d2$1@ger.gmane.org> |
|---|---|
| Date | 2014-02-18 10:41 +0530 |
| Subject | Re: Does CPython already has Peephole optimizations? |
| From | Laxmikant Chitare <laxmikant.general@gmail.com> |
| Newsgroups | comp.lang.python |
| Message-ID | <mailman.7115.1392700274.18130.python-list@python.org> (permalink) |
[Multipart message — attachments visible in raw view] - view raw
Thank you all for the enlightening inputs. I have learnt a lot just with this one question. Great to know about dis library. Ned, from explanation I now realize how important it is to do impact analysis. Things are not always rosy :). I have always appreciated everyone over this list. This is just another opportunity. Best regards, Laxmikant On Mon, Feb 17, 2014 at 7:21 PM, Terry Reedy <tjreedy@udel.edu> wrote: > On 2/17/2014 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? >>> >> > Most of the easily seen and obviously safe low-hanging fruits for the > compile step have been plucked. Note that the effect of the peephole > process would only save a few percent, if any, for real apps*. Improving > the C code invoked by bytecode has resulted in much larger gains. > > * We now have a much better benchmark suite with some real apps. This is > thanks in part to the pypy project. > > > 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. >> > > For CPython, new optimization has mostly moved to AST tranformations prior > to compilation. (Python ASTs are new since Skip started the peephole work.) > I believe there are some open issues on the tracker. > > Once optimization constraint Skip did not mention is the correspondence > between source lines and blocks of bytecode, which is used by profiling, > tracing, and tracebacks. Effectively transforming > > if type(a) == types.ComplexType: > x = cmath.sin(a) > foo(x) > else: > x = math.sin(a) > foo(x) > > into > > if type(a) == types.ComplexType: > x = cmath.sin(a) > else: > x = math.sin(a) > foo(x) > > breaks the correspondence. If foo(x) raises, which original line should be > reported as the source of the exception? > > -- > Terry Jan Reedy > > -- > https://mail.python.org/mailman/listinfo/python-list >
Back to comp.lang.python | Previous | Next — Previous in thread | Find similar | Unroll thread
Does CPython already has Peephole optimizations? Laxmikant Chitare <laxmikant.general@gmail.com> - 2014-02-17 13:54 +0530
Re: Does CPython already has Peephole optimizations? Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2014-02-17 08:59 +0000
Re: Does CPython already has Peephole optimizations? Ned Batchelder <ned@nedbatchelder.com> - 2014-02-17 07:48 -0500
Re: Does CPython already has Peephole optimizations? Terry Reedy <tjreedy@udel.edu> - 2014-02-17 08:51 -0500
Re: Does CPython already has Peephole optimizations? Laxmikant Chitare <laxmikant.general@gmail.com> - 2014-02-18 10:41 +0530
csiph-web