Iterative Interactive Compiler

Dear all,

Just wanted to announce that we are working on the GCC Interactive Compilation Interface to enable automatic tuning of optimization heuristic to optimize programs for different constraints (performance, code size, power consumption, DSE). This interface is used in HiPEAC, MilePost, SARC and GCCC projects.

Here is the development website with patches, software, forums, mailing lists and publications:

formatting link

It is based on our previous work on Interactive Interface for PathScale(ORC/Open64) compilers:

formatting link

Current prototype of GCC-ICI has an ability to reorder compiler optimization phases and fine-tune several transformations. We are currently working on the following issues:

  • incrementally modifying Tree-SSA to support dynamic pass reordering
  • splitting analysis and optimization code
  • extracting program features
  • adding support for fine-grain tuning of most of the GCC optimizations
  • developing a component model for passes to enable dynamic linking of external optimization plugins
  • developing a scripting language inside GCC to simplify and automatize transformations & optimization process

We presented our preliminary work at the SMART'07 workshop and GCC HiPEAC Tutorial where I had a chat with Diego Novillo, David Whalley, guys from IBM and Rice University about further GCC-ICI developments. We now plan to have an open discussion at the GCC-ICI forum about further developments and will be happy for any comments and suggestions.

Here is the formal motivation for our research and developments:

Current innovations in science and industry demand ever-increasing computing resources while placing strict requirements on system performance, power consumption, code size, response, reliability, portability and design time. However compilers often fail to deliver satisfactory levels of performance on modern processors, due to rapidly evolving hardware, lack/cost of expert resources, fixed and black-box optimization heuristics, simplistic hardware models, inability to fine-tune the application of transformations, and highly dynamic behavior of the system.

Recently, we started developing an Interactive Compilation Interface (ICI) to connect external optimization drivers to the GCC. This interface is meant to facilitate the prototyping and evaluation of iterative optimization, fine-grain customization and design-space exploration strategies. The early design to enable non-intrusive feature extraction and meddling with heuristic's decisions was presented at the SMART'07 workshop. Currently, we are working on a more advanced design, incrementally modifying Tree-SSA to support dynamic pass reordering, structured split of analysis and optimization code, and a component model for passes to enable dynamic linking of external optimization plugins. We believe these modification will simplify the tuning process of new optimization heuristics and will eventually simplify the whole compiler design where compiler heuristics will be learned automatically, continuously and transparently for a user using statistical and machine learning techniques.

Looking forward to your input, Grigori Fursin

====================================================== Grigori Fursin, PhD, INRIA,

formatting link

Reply to
Grigori Fursin
Loading thread data ...

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.