Jump to: navigation, search
Navigation: > CTools > MilepostGCC

MILEPOST V1.0 GCC 4.4.0 with ICI v2.0 (Interactive Compilation Interface) and feature extractor v1.0



This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

If you found this software useful, you are welcome to reference website and these publications FMTP2008,Fur2009,FT2009 in your derivative works.


  • Grigori Fursin (INRIA, France) - original R&D for MILEPOST framework/ICI prototypes/CCC framework/Collective Optimization Database and


  • beta versions, V1.0 (2006-2009):
    • Grigori Fursin (INRIA, France) - original design of the MILEPOST/ICI/cTuning framework
    • Mircea Namolaru (IBM Research Lab, Israel) - feature extractor pass
    • Cupertino Miranda (INRIA, France) - ICI extensions
    • Zbigniew Chamski (INRIA, France) - ICI extensions

Includes ICI and CCC frameworks - you can find more information about those framework in the associated READMEs.

Framework high-level overview



  • MILEPOST GCC 4.4.0 - 20090629 - New official version of MILEPOST GCC with new ICI v2.0 and updated static feature extractor.
  • MILEPOST GCC 4.2.2 - 20080613 - Stable MILEPOST GCC version used in most MILEPOST Year 3 experiments.


In order to install MILEPOST GCC, you will need:

  • C compiler that can compile GCC 4.x.
  • uuid or uudigen tool to generate unique identifiers.
  • PHP (needed to communicate with cTuning web-services).

Directory structure

gcc-4.4.0                       - MILEPOST GCC 4.4.0 source directory (core + gfortran)
src-third-party                 - Third party support tools
 +-- gmp-4.3.0                  - GMP library
 +-- mpfr-2.4.1                 - MPFR library
 +-- ppl-0.10.2                 - PPL library (for GRAPHITE)
 +-- cloog                      - CLOOG library (for GRAPHITE)
 +-- XSB                        - Prolog for machine learning tools (MILEPOST, UNIDAPT, cTuning)
plugins-ici-2.0                 - Plugins for GCC 4.4.0 ICI 2.0 (see README inside this directory)
install                         - Directory with installed binaries


  • ./ will build GCC with all the third-party tools.
  • ./ will build all non-machine learning plugins.
  • ./ will build all machine learning plugins.

Now you can test the plugin system using self-explanatory tests in plugins-ici-2.0/tests directory.

Full ICI documentation is available here

Related links

Collective Tuning Center is a community-driven collaborative portal that enables sharing of optimization knowledge among multiple users and development of common R&D tools with open APIs to automate program optimization, compiler design and architecture tuning using empirical, statistical and machine learning techniques.

Collective Optimization Database to share optimization cases from the community, provide web-services and plugins to analyze collective optimization data and predict good program optimizations based on statistical and machine learning techniques, and improve the quality and reproducibility of the compiler and architecture research.

Online ML program optimization predictor (web-service) to suggest good optimizations that improve execution time/code size, etc based on similarities between programs (program features).

Continuous Collective Compilation Framework to automate and distribute iterative feedback-directed exploration of large optimization spaces by multiple users.

Interactive Compilation Interface to "open up" and transform production compilers into stable interactive research toolsets using event-driven plugin system instead of developing new research compilers from scratch.

Collective Benchmark with multiple datasets to enable realistic benchmarking and research on iterative compilation and run-time adaptation.

Universal Adaptation Framework to enable run-time adaptation and optimization of statically-compiled programs for heterogeneous multi-core architectures.

cTuning/ICI/MILEPOST GCC mailing lists (feedback, comments and bug reports):

Acknowledgments (MILEPOST GCC and Interactive Compilation Interface)

MILEPOST project (
HiPEAC network of excellence (
* Fabio Arnone (STMicro, France)
* Phil Barnard (ARC, UK)
* Francois Bodin (CAPS Entreprise, France)
* Zbigniew Chamski (InfraSoft IT Solutions, Poland)
* Bjorn Franke (University of Edinburgh, UK)
* Grigori Fursin (INRIA, France)
* Taras Glek (Mozilla, USA)
* Cupertino Miranda (INRIA, France)
* Mircea Namolaru (IBM, Israel)
* Diego Novillo (Google, USA)
* Sebastian Pop (AMD, USA)
* Basile Starynkevitch (CEA, France)
* Ayal Zaks (IBM, Israel) 
Other colleagues from IBM, NXP, STMicro, ARC, CAPS Enterprise ...

Future work

It's now a community-driven project. You can find information
about extensions at
Since 2009 we are working with GCC community to move parts 
of the ICI to the mainline.

Locations of visitors to this page