Kenneth Hoste wrote on 02/07/07 08:56:
[1] Almagor et al., Finding effective compilation sequences (LCES'04)
[2] Cooper et al., Optimizing for Reduced Code Space using Genetic
Algorithms (LCTES'99)
[3] Almagor et al., Compilation Order Matters: Exploring the
Structure of the Space of Compilation Sequences Using Randomized
Search Algorithms (Tech.Report)
[3] Acovea: Using Natural Selection to Investigate Software
Complexities (http://www.coyotegulch.com/products/acovea/)
You should also contact Ben Elliston (CC'd) and Grigori Fursin (sorry,
no email).
Ben worked on dynamic reordering of passes, his thesis will have more
information about it.
Grigori is working on an API for iterative an adaptive optimization,
implemented in GCC. He presented at the last HiPEAC 2007 GCC workshop.
Their presentation should be available at http://www.hipeac.net/node/746
Some other questions:
* I'm planning to do this work on an x86 platform (i.e. Pentium4),
but richi told me that's probably not a good idea, because of the low
number of registers available on x86. Comments?
When deriving ideal flag combinations for -Ox, we will probably want
common sets for the more popular architectures, so I would definitely
include x86.
* Since we have done quite some analysis on the SPEC2k benchmarks,
we'll also be using them for this work. Other suggestions are highly
appreciated.
We have a collection of tests from several user communities that we use
as performance benchmarks (DLV, TRAMP3D, MICO). There should be links
to the testers somewhere in http://gcc.gnu.org/
* Since there has been some previous work on this, I wonder why none
of it has made it into GCC development. Were the methods proposed
unfeasible for some reason? What would be needed to make an approach
to automatically find suitable flags for -Ox interesting enough to
incorporate it into GCC? Any references to this previous work?
It's one of the things I would like to see implemented in GCC in the
near future. I've been chatting with Ben and Grigori about their work
and it would be a great idea if we could discuss this at the next GCC
Summit. I'm hoping someone will propose a BoF about it.