Hi all,

Just a small update, that after some discussions with Joern we think that based 
on our 
time constraints and the current state of GCC, instead of trying to push full 
ICI into GCC
we start from the opposite approach:
We take all our plugins (support pass selection and reordering from MILEPOST;
generic function cloning and fine-grain optimizations from GSOC'09) and trying
to see which low-level GCC functionality is missing to support them.
Then we provide a few hooks to support them, provide a few small updates to GCC 
and rewrite 
our plugins to support low-level plugin system. Joern will continue 
communicating
about a few extensions to the plugin system we need to make it happen.

This is a pragmatic step and should require minimal changes in GCC and will 
help us already 
use current plugin system for our work. However, I think there is still a 
benefit
of ICI in separating GCC and plugins when using internal data structures, i.e. 
currently
the referencing of data structures in GCC is hardwired in plugins. If one day 
these
data structures change, we will need to rewrite all plugins. Using referencing 
mechanism
in ICI (data is used in plugins indirectly through parameter registering) 
allows us
to insure plugins compatibility but with the performance degradation. We can 
discuss
that later after GCC 4.5 release and when we get some more experience from the 
users
about plugins ...

By the way, due to that, I think that maybe besides documenting all the data 
structures
we should maybe also start providing info if they are used in some plugins. 
This maybe will 
help clearning up the internals of the compiler and will prevent careless 
changes of the data 
structures in GCC to keep plugins compatible?..

Anyway, Joern will continue communicating about the progress and extensions to 
the plugin
system ...

Take care and have a good weekend,
Grigori


Reply via email to