Dear all, We just finished and released the new Interactive Compilation Interface v2.0 for GCC 4.4.0, based on the official GCC 4.4.0 release code. Full source code, documentation and a variety of plugin examples are available on the cTuning.org website at http://ctuning.org/ici and http://ctuning.org/wiki/index.php/CTools:ICI:Documentation.
The ICI plugin infrastructure used in the ICI 2.0 release is complementary to the developments on the GCC plugins branch, and provides a high-level API aimed at supporting fast experimentation/prototyping of new analyses and optimizations. Specifically, the ICI API introduces: * an abstraction of compiler state through the "feature" mechanism (with possibility of limited adjustments to, e.g., the values of internal compiler parameters); * a simple interface for pass management: substitution of pass manager, overriding of pass gates, tracking of current/next pass; * dynamic registration of new plugin event kinds. The integration of ICI API with the GCC plugin support developed on the plugins-branch has already been demonstrated last February (cf. http://gcc.gnu.org/ml/gcc-patches/2009-02/msg01242.html). Future releases of ICI will be based on - and will extend - the mainstream GCC plugin infrastructure. We hope that using ICI will make GCC more attractive and more accessible for researchers. We currently use it to solve long term research objectives such as automatic tuning of compiler optimization heuristic or automatic program optimization for multiple architectures. There are several ICI extension projects that we hope to finish this summer, such as: * automatic selection and tuning of fine-grain program transformations, * generic function cloning for program run-time adaptation, * program instrumentation, * GCC4CLI split-compilation for VMs. You are warmly encouraged to use ICI and other collaborative tools of the cTuning project. Join the effort and follow the developments on the cTuning community mailing list: http://groups.google.com/group/ctuning-discussions Yours, Zbigniew Chamski and the cTuning.org community