The Interactive Compilation Interface (ICI) is a plugin system with a high-level compiler-independent and low-level compiler-dependent API to transform current black-box compilers into collaborative modular interactive toolsets. It was developed by
Grigori Fursin during
MILEPOST project.
[Grigori Fursin. Collective Tuning Initiative:
automating and accelerating development and optimization of computing systems. Proceedings of the GCC Summit'09, Montreal, Canada,
June 2009]
link
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
{{Infobox software
, name = MILEPOST GCC
, logo =
, developer = cTuning foundation / MILEPOST consortium
, released = 2009
, latest release version = 4.4.x
, latest release date ...
to automate compiler and architecture design and program optimizations based on statistical analysis and machine learning, and predict profitable optimization to improve program execution time, code size and compilation time.
Developments
ICI is now available in mainline
GCC since version 4.5
Collaborative development websiteGoogle Summer of Code'2009 extensions enabling fine-grain program optimizations including polyhedral transformations, function level run-time adaptation and collective optimization]
Development mailing list
Downloads
ICI 2.0- released for GCC in May, 2009.
ICI 1.0- released for GCC in 2008.
ICI beta- developed for GCC in 2006–2008.
ICI beta- developed for Open64/PathScale compilers in 2004–2006.
References
{{Reflist
Interfaces