Google's compiler team has developed MAO (http://code.google.com/p/mao), a
micro-architectural optimizer. It slots into the build process as an
assembly optimizer, for example, eliminating redundant zero-extension
instructions and improving code alignment, among other optimizations.
We should see if this can produce any speedups in Python. The MAO docs have
instructions for building [1] and integrating MAO into your project [2].
There's also an overview of the available optimization passes MAO offers [3].
A first milestone for integration with Unladen Swallow would be to run MAO
on the generated Python binary with a single pass (ZEE would be good). With
that in place, we can start experimenting with additional passes/orderings.
I think it would be fine to pull a copy of MAO into our vendor branch
(probably via svn:externals), since most people won't have it installed.
[1] - http://code.google.com/p/mao/wiki/BuildMao
[2] - http://code.google.com/p/mao/wiki/RunMao
[3] - http://code.google.com/p/mao/wiki/PassDescription
Original issue reported on code.google.com by collinw on 10 Jun 2009 at 11:15
Original issue reported on code.google.com by
collinw
on 10 Jun 2009 at 11:15