This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: [plugins-ici-cloning-instrumentation] new GCC plugin developements
- From: Basile STARYNKEVITCH <basile at starynkevitch dot net>
- To: Joern Rennecke <amylaar at spamcop dot net>
- Cc: Grigori Fursin <grigori dot fursin at inria dot fr>, 'Ian Lance Taylor' <iant at google dot com>, 'Yuanjie Huang' <huangyuanjie at ict dot ac dot cn>, 'Liang Peng' <pengliang at ict dot ac dot cn>, 'Zbigniew Chamski' <zbigniew dot chamski at gmail dot com>, 'GCC Mailing List' <gcc at gcc dot gnu dot org>, ctuning-discussions at googlegroups dot com, 'Yuri Kashnikoff' <yuri dot kashnikoff at gmail dot com>, 'Diego Novillo' <dnovillo at google dot com>
- Date: Fri, 06 Nov 2009 16:54:38 +0100
- Subject: Re: [plugins-ici-cloning-instrumentation] new GCC plugin developements
- References: <4AE6E471.4020200@starynkevitch.net> <4AE6E5D0.4010401@starynkevitch.net> <mcrvdi1klsb.fsf@dhcp-172-17-9-151.mtv.corp.google.com> <4AE7014A.1000903@starynkevitch.net> <mcr3a54lwb4.fsf@dhcp-172-17-9-151.mtv.corp.google.com> <4AE70C5E.4050005@starynkevitch.net> <84fc9c000910270839v2d9efe0dw829c8647f361c96f@mail.gmail.com> <4AE7164D.9010200@starynkevitch.net> <84fc9c000910270855w736df367qe511d8db280aaeb4@mail.gmail.com> <2dc303d60910271056h17038110ib63c53cfa374f5c7@mail.gmail.com> <002c01ca5746$9dd43da0$d97cb8e0$@fursin@inria.fr> <20091102074959.p8410ulv28sg0w44-nzlynne@webmail.spamcop.net> <008601ca5e09$93164fb0$b942ef10$@fursin@inria.fr> <20091105082557.75c2estyoog8ss0c-nzlynne@webmail.spamcop.net> <00b101ca5e1f$6ecf31b0$4c6d9510$@fursin@inria.fr> <mcrocng1r8s.fsf@dhcp-172-17-9-151.mtv.corp.google.com> <019b01ca5eea$c70e45c0$552ad140$@fursin@inria.fr> <20091106095419.fvs0otmbwowg0scw-nzlynne@webmail.spamcop.net>
Joern Rennecke wrote:
Quoting Grigori Fursin <grigori.fursin@inria.fr>:
Sure, thanks for the info, Ian.
The ICI changes are very small and seems that they already had been
pre-reviewed.
Joern is taking care of that now.
After the pass-name changes are taken out (this is the pre-reviewed bit
I'm currently trying to contribute to mainline), there is about 65 KB of
unidiff left from the ICI 2.0 branch. That code needs a bit of GNU
reformatting, so I doubt it has been reviewed in its entirety.
As it looks like the pass-name changes can go into mainline soon, I want
to hold off creating a branch for the rest of the code till the former
changes are in mainline.
My suggestion would be to try pushing the minimal missing plugin hooks needed for ICI into the trunk (that could perhaps
happen in gcc 4.5 timeframe), and adjust your ICI 2.x branch to make it a plugin (perhaps dlopen-ing itself other code).
What I am thinking of is just adding a few more PLUGIN_* events. Even adding a single event take much time in practice.
http://gcc.gnu.org/ml/gcc/2009-10/msg00547.html http://gcc.gnu.org/ml/gcc/2009-10/msg00548.html
You'll need to
1.) convince the GCC community that your event is useful. This is sometimes not as easy as it seems.
(and I Basile did try a bit to explain what possible hooks could be useful to *ICI* & also MELT).
http://gcc.gnu.org/ml/gcc/2009-10/msg00549.html
2.) propose a small patch to add it
2.1) add your PLUGIN_* event in gcc/gcc-plugin.h & gcc/plugin.c
2.2) just a call to invoke_plugin_callbacks (at the place you need).
2.3) document it in gcc/doc/plugins.texi
2.4) make a testcase [this means understanding dejagnu]
3.) wait for your patch to be accepted.
My feeling is that ICI should have a small steps strategy to add the minimal hooks required, and be [like MELT] mostly a
plugin and/or an experimental branch nobody really cares about.
I am not sure it is realistic to try to push (at least for gcc 4.5, and perhaps even gcc 4.6) a multithousand lines ICI
patch.... Better push several smaller patches, each adding a PLUGIN_* event, and make most of ICI a plugin itself.
Regards.
--
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} ***