This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: new plugin events


Richard Guenther wrote:
On Sat, Nov 7, 2009 at 1:24 PM, Grigori Fursin <grigori.fursin@inria.fr> wrote:
Hi Basile et al,

My suggestion to ICI friends is : just propose quickly your needed plugin events, and make
your ICI a GPLv3 plugin.
When you can show that your ICI plugin to an *unmodified* gcc-4.5 brings some value, GCC
people will perhaps start to
listen and look inside.

Just to mention that I am a bit confused because I actually don't expect to have problems moving
ICI to the mainline unless we find some big bugs that can change GCC behavior (but I really don't
think so).
We had many online and offline discussions to move ICI to the mainline GCC in the last few years
with GCC
colleagues/maintainers. We just sadly got delayed at INRIA this summer due to different reasons but
Joern
is now working with us for 2 months fully time to clean and test ICI and submit patches as soon as
they are ready.

It's true that we actually need a few hooks and Joern will communicate about that shortly BUT these
hooks are
already used in real plugins for real performance tuning (in a way as current hooks are used in
Dehydra
for real program analysis in several companies).

And I don't expect problems in adding hooks that ICI needs. I expect that ICI is a reason to improve GCCs pass manager - and I expect that we will improve GCCs pass manager not by simply adding hooks to it to "fix" it from inside plugins, but I expect that we'll get a more powerful pass manager _inside_ GCC. I also expect or at least hope that more parts of the compilation process get driven by the pass manager rather than by ad-hoc code gluing several phases of pass manager driven stages.

We probably all agree on goals, but perhaps less on timeline.


My feeling (but I admit I don't understand well what stage 3 means precisely for gcc 4.5.0, in particular w.r.t. plugins & pass management, and why exactly stage 2 was skipped in 4.5) was up to now:

1. Only very small patches can go into 4.5. So ICI pass manager won't go into 4.5.0, and any improved pass manager won't go into 4.5.0, only in 4.6.0. This probably means in last quarter of 2010 or first quarter of 2011, since 4.4.0 was released in april 2009, and 4.3.0 was released in march 2008 and 4.2.0 was released in may 2007 and 4.1.0 at end of february 2006. I am guessing 4.5.0 would be released for christmas 2009 at the earliest, so 4.6.0 would go out at end of 2010 in the best case.

2. I was hoping that the few PLUGIN_* hooks absolutely needed by ICI could go into 4.5. My intuition is that it really means small unobtrusive patches which might be accepted before Christmas 2009.

In other words, are there hope to delay 4.5.0 release for a month to get the ICI-improved pass manager inside it? In case the answer is yes, will we keep the same interface, so that the interface for PLUGIN_PASS_MANAGER_SETUP won't change with the improved pass manager?
register_callback (plugin_info->base_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &pass_info);
with the same pass_info as documented today in http://gcc.gnu.org/onlinedocs/gccint/Plugins.html#Plugins ?



So perhaps I am simply not understanding what means the current stage 3 of trunk (ie future 4.5). I admit I did not understood exactly why stage 2 disappeared (or perhaps we call today stage 3 what was called stage 2 or stage 3 a year ago?). And perhaps I am wrongly guessing the release date of 4.5.0. Of course, if 4.5.0 is released in june 2010 things are different!


I suppose that ICI friends will be happy if they can hope to push a new pass manager inside 4.5. My personal guess was that this is hopeless - they need to wait for 4.6. I would be delighted to be wrong, and as Richard and others I would be extremely happy with a new pass manager.

I think MELT can cope with any reasonable evolution of the pass manager.

I believe (only my opinion) that ICI people care a lot about being able or not to push an improved pass manager inside 4.5 or only inside 4.6. That makes a one year difference, and I guess one year is not insignificant to them.

Regards.

PS. BTW, I find that speaking of stages with number is confusing (especially since now stage 3 goes right after stage 1). I would much prefer named stages, like "major change stage", "minor improvement stage", "bug fix stage".
--
Basile STARYNKEVITCH http://starynkevitch.net/Basile/
email: basile<at>starynkevitch<dot>net mobile: +33 6 8501 2359
8, rue de la Faiencerie, 92340 Bourg La Reine, France
*** opinions {are only mines, sont seulement les miennes} ***



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]