<div id="edo-message"><div>Part of the problem is behavioral changes. If you implement tail call recursion, your tracebacks change. Common subexpression elimination will also have subtle behavioral changes.<br><br><br><div id="edo-signature"><pre>--
Ryan (ライアン)
Yoko Shimomura, ryo (supercell/EGOIST), Hiroyuki Sawano >> everyone else
<a href="http://refi64.com">http://refi64.com</a></pre></div></div></div><div id="edo-original"><div><blockquote type="cite"><div id="edo-meta">On Jul 9, 2017 at 8:11 PM, <<a href="mailto:rb@dustyfeet.com">Rocky Bernstein</a>> wrote: <br><br></div><div dir="ltr"><div><div><div><div><div><div><div>In looking at Python bytecode over the years, I've noticed that it does very little to no traditional static-compiler optimization. Specifically: <br><br></div>* Dead code elmination (most of the time)<br></div>* Jumps to Jumps or Jumps to the next instruction<br></div>* Constant propagation (most of the time)<br></div>* Common subexpression elimination<br></div>* Tail recursion<br></div>* Code hoisting/sinking <br><br></div><div>Yes, over the years more compiler optimization has been done but it's still pretty sparse. <br></div><div><br></div><div>The little that I've looked at pypy, it is pretty much the same thing at the Python bytecode level. That's why a python decompiler for say 2.7 will work largely unmodified for he corresponding pypy 2.7 version. Same is true 3.2 versus pypy 3.2. <br><br></div><div>I understand though that pypy can do and probably does some of the optimization when it JITs. But my question is: if traditional compiler optimization were done would this hinder, be neutral, or help pypy's optimization. <br><br></div><div>Of course, if there were static compiler optimization of the type described above, that might be a win when JITing doesn't kick in. (And perhaps then who cares) <br><br></div><div>But I'm interested in the other situation where both are in play. <br></div></div>
_______________________________________________
pypy-dev mailing list
<a href="mailto:pypy-dev@python.org">pypy-dev@python.org</a>
<a href="https://mail.python.org/mailman/listinfo/pypy-dev">https://mail.python.org/mailman/listinfo/pypy-dev</a>
</blockquote></div></div>