Tech Support > Computers & Technology > Programming > Iterative Interactive Compiler
Iterative Interactive Compiler
Posted by Grigori Fursin on March 7th, 2007


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:

http://gcc-ici.sourceforge.net

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

http://pathscale-ici.sourceforge.net

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, http://fursin.net/research

Posted by CBFalconer on March 7th, 2007


Grigori Fursin wrote:

Why are you multi-posting this? Do you like to annoy by making
people read the same thing over and over? An elementary
optimization is to cross-post.

--
<http://www.cs.auckland.ac.nz/~pgut001/pubs/vista_cost.txt>
<http://www.securityfocus.com/columnists/423>

"A man who is right every time is not likely to do very much."
-- Francis Crick, co-discover of DNA
"There is nothing more amazing than stupidity in action."
-- Thomas Matthews



Similar Posts