Interactive Compilation Interface (ICI)
DeveloperGrigori Fursin
Initial release2007; 19 years ago (2007)
Stable release
2.0.1 (development discontinued after this project was integrated with the GNU_Compiler_Collection[1]) / May 29, 2009 (2009-05-29)
Written inC++
Operating systemLinux, Mac OS X, Microsoft Windows, Android
TypeOptimizing_compiler, Interfaces, Plug-in_(computing), API
LicenseGNU_General_Public_License
Websitesourceforge.net/projects/gcc-ici

The Interactive Compilation Interface (ICI) is a plugin system with a high-level compiler-independent and low-level compiler-dependent API to transform production compilers into interactive research toolsets. It was developed by Grigori Fursin during the MILEPOST project.[2][3] 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, and predict profitable optimization to improve program execution time, code size and compilation time.

Developments

edit

ICI is now available in mainline GCC since version 4.5[1]

ICI was extended during the Google Summer of Code'2009 to enable fine-grain program optimizations including polyhedral transformations, function level run-time adaptation and collective optimization.

References

edit
  1. ^ a b "GCC plugins". Retrieved 2017-05-30.
  2. ^ 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)
  3. ^ Grigori Fursin, Yuriy Kashnikov, Abdul Wahid Memon, Zbigniew Chamski, Olivier Temam, Mircea Namolaru, Elad Yom-Tov, Bilha Mendelson, Ayal Zaks, Eric Courtois, Francois Bodin, Phil Barnard, Elton Ashton, Edwin Bonilla, John Thomson, Chris Williams, Michael O'Boyle. Milepost gcc: Machine learning enabled self-tuning compiler International journal of parallel programming, Volume 39, Issue 3, pp. 296-327, June 2011 (link)

📚 Artikel Terkait di Wikipedia

ICI

(International Channel/Canal International), Montreal, Canada Interactive Compilation Interface Intracervical insemination NATO Istanbul Cooperation Initiative

MILEPOST GCC

self-tuning compiler that combines stable production-quality GCC, Interactive Compilation Interface and machine learning plugins to adapt to any given architecture

List of compilers

Interactive Compilation Interface that transforms production compilers into interactive research toolsets. Interactive Compilation Interface – a plugin system

Collective Tuning Initiative

auto-tuning across multiple users Interactive Compilation Interface: converts production compilers into interactive research toolsets using an event-driven

Grigori Fursin

open-source technology to build machine learning based compilers. Interactive Compilation Interface – plugin framework to expose internal features and optimisation

KDE Plasma

systems. It serves as the interface layer between the user and the operating system, providing a graphical user interface (GUI) and workspace environment

Mortal Kombat Arcade Kollection

game compilation co-developed by NetherRealm Studios, Other Ocean Interactive and Code Mystics and published by Warner Bros. Games. It is a compilation of

Read–eval–print loop

read–eval–print loop (REPL), also termed an interactive toplevel or language shell, is a simple interactive computer programming environment that takes