Dear all, I got a few minutes between vacations and wanted to give you a small update on the GSOC'09 developments for GCC by Liang Peng and Yunajie Huang from ICT, China (in CC).
The projects were about extending GCC to enable fine-grain optimization selection (GRAPHITE optimizations, unrolling, vectorization, inliing etc) and reordering through ICI and plugins, provide XML representation of the compilation flow. Another project was about enabling generic function cloning, fine-grain optimization of clones and program instrumentation (i.e. adding call-backs during compilation) to enable run-time selection of optimizations (using standard machine learning techniques such as decision trees and predictive modelling). I think students did a very good job and though not everything was implemented, I think it was a very good start. The students documented their developments here: http://ctuning.org/wiki/index.php/CTools:ICI:Projects:GSOC09:Function_cloning_and_program_instrument ation http://ctuning.org/wiki/index.php/CTools:ICI:Projects:GSOC09:Fine_grain_tuning We use cTuning (performance tuning) collaborative website since many techniques originate from there and they are still a bit experimental but since the developments were successful and my colleagues are now extending MILEPOST GCC to improve program execution time, code size and compilation time automatically, since now on we plan to sync everything with GCC mainline and continue this work using GCC mailing list and the website. We will continue using cTuning more for collaborative program optimizations and tuning of GCC optimization heuristic. When Liang and Yuanjie are back from vacations and I am back from the wedding trip in 3 weeks, we will continue discussions about that ... In the mean time, you can check the developments here using GCC ICI SVN branch called adapt for GCC 4.4.0: http://gcc-ici.svn.sourceforge.net/viewvc/gcc-ici/branches/gcc-4.4.0-ici-2.0-adapt/ (again we hope to move all the developments from the external places to the GCC main site and to the mainline shortly). If you are interested in performance tuning and some iterative optimization results for GCC (and comparison with other compilers) including profitable cases for SPEC and EEMBC benchmarks that improve program execution time, code size and compilation time, you can check the Collective Optimization Repository here: http://ctuning.org/cdatabase The comments about those developments and suggestions to Yunajie and Liang are welcome! By the way, I think the important part of GSOC'09 was that the students got much more familiar with GCC and I hope that they and their research group in ICT will continue using and extending GCC from now on, and we will hopefully see some more interesting research results soon as well on automating program fine-grain optimization and compiler optimization heuristic construction using collective compilation and machine learning techniques ... I have to leave now and will get back in touch at the end of September ;) ... Take care, Grigori