From cTuning.org
![]() |
Interactive Compilation Interface |
| Enabling Collaborative Interactive Research Compilers |
Web shortcut: http://cTuning.org/ici
Navigation: cTuning.org > CTools
NOTES:
- Grigori Fursin is back to INRIA after exciting 1.5 year sabbatical at Intel Exascale Lab in France and will be gradually resuming various R&D activities, particularly related to cTuning, so stay tuned ;) !
- 2 new reference journal publications with more scientific aspects/details on cTuning.org are now available online: collective optimization (ACM TACO'10) and machine learning enabled self-tuning compiler for multi-objective optimizations (IJPP'11)
cTuning Google discussions list
cTuning Google announcements list
cTuning is based on the following reference publications: CPE'04, GCC Summit'09, HiPEAC'05, PhD thesis, PLDI'10, HiPEAC'09, IJPP'11, ACM TACO'10
The Interactive Compilation Interface (or 'ICI' for short) is a plugin system with a high-level compiler-independent and low-level compiler-dependent API to transform current compilers into collaborative open modular interactive toolsets. The ICI framework acts as a "middleware" interface between the compiler and the user-definable plugins. It opens up and reuses the production-quality compiler infrastructure to enable program analysis and instrumentation, fine-grain program optimizations, simple prototyping of new development and research ideas while avoiding building new compilation tools from scratch. For example, it is used in MILEPOST GCC to automate compiler and architecture design and program optimizations based on statistical analysis and machine learning. It should enable universal self-tuning compilers adaptable to heterogeneous, reconfigurable, multi-core architectures ranging from supercomputers to embedded systems.
At the beginning of 2010, parts of ICI and related plugin frameworks have been finally included in mainline GCC 4.5!
- Background:
- Current development - source code repository, bug reports, discussions
- Documentation and API - functionality, API reference guide, features, FAQ
- Projects to extend ICI, plugins and compilers - more than 15 projects currently

ICI is an open collaborative community-driven project. You are welcome to join and participate in developments, discussions, provide feedback or suggestions to extend ICI or add new features. We develop ICI for GCC at the moment, but trying to keep it compiler independent in case someone would like to port it to other compilers to extend collaborative tools.














