Dear All, We continue developing adaptable GCC (MILEPOST GCC) and we plan to have more results this fall on selecting good optimization passes and their orders to improve program execution time, reduce code size and compilation time across different architectures automatically using statistical techniques and machine learning.
As I mentioned during last GCC Summit, we are now ready to look at a finer-grain level optimizations, i.e. how to automatically tune all GCC optimization cost models within passes to decide whether to apply specific transformations and what should be their parameters. To do that, ideally we need to identify all the cost models within GCC with their dependencies, and add support to our Interactive Compilation Interface to be able to continuously monitor and bias their behavior to automatically (re)tune them on new architectures. I am afraid it will take me ages to find myself all the cost models within GCC, so I would be very grateful for any help in identifying those cost models (with the pass names and places in the source code) particularly that are known to be hard to tune manually or which may have complex interactions with other transformations (we should be able to capture those interactions automatically)! Ideally, we would like to make GCC a fully modular compiler which will be tuned (mostly) automatically to any particular architecture using a given set of related optimizations. We hope that it may simplify evolution of the compiler and it will be much easier to add new optimizations (even by end-user through plugins) since developers will have less problems thinking how to plug them into the current hardwired optimization heuristic. So I hope that with your help we can make GCC a best optimizing compiler, and not only for x86 but for any architecture ;) ... By the way, in case someone is interested, you can find some of our ideas on self-tuning MILEPOST GCC here: http://gcc-ici.sourceforge.net/papers/fmtp2008.pdf Sorry for bothering and looking forward to hearing from you, Grigori P.S. I will be on vacations soon so you can also contact Abid Malik from INRIA (in CC) who will help adding support to GCC-ICI to monitor optimization cost models ... ================================================ Grigori Fursin, PhD Research Scientist, INRIA Saclay, France http://unidapt.org - tackling the complexity of future computing systems using machine learning