Interactive Compilation Interface (GCC-ICI)

Comparison of different plugin APIs

The main aim of the Interactive Compilation Interface (ICI) is to enable external access to GCC transformations to be able to tune default optimization heuristic to improve program execution time, code size, etc using external plugins and tools without Makefile changes. Current ICI version support compile-time selection and reordering of passes. Additional information and publicationsComparison of different plugin APIs can be found at the development website. MILEPOST project uses ICI and static feature extractor pass with a long term goal to develop a modular, extensible, machine-learning based self-optimizing compiler that automatically learns the best optimization heuristics based on the behavior of the platform.

http://gcc-ici.sourceforge.net/images/gcc-ici-structure.gif

Here is our current patch against GCC 4.3. Current version allows function-level optimization and specialization by selecting or reordering only appropriate passes. It uses external plugins to monitor and improve default compiler optimization heuristic. We plan to combine it with the Function Adaptation to make statically-compiled programs adaptable to changing inputs, program behavior and environments (architecture, OS, virtual layers, libraries, etc) at run-time based on static function versioning and dynamic monitoring of performance counters.

We are currently extending ICI with the following:

Related projects:

None: InteractiveCompilationInterface (last edited 2009-02-12 22:30:36 by 103)