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

This is an on-going project funded by Google Summer of Code'09:

We would like to be able to create function clones on demand, apply different fine-grain optimizations through Interactive Compilation Interface (or generate code for different architectures) and provide instrumentation through ICI to be able to select different clones using externally linked libraries (for hardware counters monitoring for example).

We beleive that it's critical to have universal function cloning in compilers since it can enable the following:

  • statically enable self-tuning binaries and libraries adaptable to different program and system behavior at run-time (FCOP2005)
  • adaptive libraries that select different optimizations based on dataset features (LCWP2009)
  • adaptive binaries and libraries for heterogeneous multi-core systems or virtual environments (JGVP2009)
  • transparent collection of profiling statistics for collective optimization (FT2010, FT2009)

Some very basic prototypes already existed for older GCC versions (Link1, Link2), however due to considerable internal changes in newer GCC, we would like to implement the new function cloning and program instrumentation in GCC 4.4. We will use ICI that allows quick prototyping of research ideas and enable selection and tuning of optimizations on a function level or finer-grain level.

When implemented, we would like to extend all the above techniques, but at the first step we would like to extend (LCWP2009) to develop statistical and machine learning techniques to select appropriate function clones (with different optimizations) based on static and dynamic program and dataset features.

Who is interested: Grigori Fursin, Chengyong Wu, Cupertino Miranda, ...

Who would like to help with implementation:

Locations of visitors to this page