This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Help with identifing all cost models in GCC to make it adaptable ?..
- From: "Grigori Fursin" <grigori dot fursin at inria dot fr>
- To: "'gcc'" <gcc at gcc dot gnu dot org>
- Cc: "'David Edelsohn'" <edelsohn at gmail dot com>, <dnovillo at google dot com>, <iant at google dot com>, "'Kenneth Zadeck'" <zadeck at naturalbridge dot com>, "'Abid Muslim Malik'" <abidmuslim at gmail dot com>
- Date: Thu, 31 Jul 2008 21:09:10 +0200
- Subject: Help with identifing all cost models in GCC to make it adaptable ?..
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