On Tue, 14 Sep 2010 11:21:51 -0600
Marcus Daniels <mdani...@lanl.gov> wrote:

>   On 9/14/10 10:58 AM, Basile Starynkevitch wrote:
> >> It seems to me a "source to source" compiler should definitely retain
> >> high level constructs like array operators, DO ALL, OpenMP directives, etc
> > One can use #pragma-s&  builtin-s&  attributes for these. This is why I was 
> > trying to push the idea of plugin hooks for builtins.
> In this use case, what is the GCC middle-end *for* if it does not 
> understand data parallel operations?  Even GENERIC lacks the notion, 
> right?  (We've been working directly from the Fortran parse tree.)
> 

The GCC middle end use is for me mandatory (since it is contractual). I
am expecting to work on Gimple to OpenCL translation, whatever that
means. The saling point it that starting from GCC & gimple gives the
hypothetical enduser all the power of GCC.

I cannot answer precisely more today to that question. However, Albert
Cohen, IIRC, told me that some future improved Graphite-type polyhedric
optimisation might perhaps help.

My builtin plugin hook was from the intuition that to make such
parallel operations, I'll probably need some _Pragma-s & builtin-s
(very suitably hidden in macros or whatever).

I'm just trying to figure out what are the features in 4.6 which will
be useful to my work. I know that in a couple of weeks, they are frozen
(since 4.6 is ending stage 1). The gengtype patch series
http://gcc.gnu.org/ml/gcc-patches/2010-09/msg01029.html I am trying to
push with Jeremie Salvucci is also almost needed for MELT (and for any
plugin using GTY). I have no idea if it will make into 4.6, because I
still don't understand which *reviewer* is interested by them.

So my current feeling is that within a two year timeframe, no more
plugins hooks (even small ones like the builtin hooks I was thinking
about) are possible in practice. This is probably bad news for my work,
but I will have to do without! I am apparently the only one thinking
that there are not enough plugin hooks [the popular opinion being that
there are too much of them; I am in the minority against that opinion],
and that they structure wisely the GCC programming interface.  Besides
plugins hook have at least a tiny documentation, which most of GCC API
don't have yet.

I really do not understand the philosophy of: work hard for one or two
years making a plugin, and the GCC community will perhaps eventually
consider -and only after the work is completed- adding the tiny hook
which would have saved you 6 months of work. [I am speaking of course
of small hooks which can be incorporated into the trunk by a single
small patch and which have no measurable effect on GCC performance when
not used]

Some nice people privately emailed me that plugin don't catch since
they are disabled by many Linux distributions (however it seems to me
that Ubuntu/Maeverick, i.e. the future 10.10 currently in beta, has GCC
4.5 with plugins enabled and provide even a  gcc-4.5-plugin-dev
package, and so does Debian/Sid which is the real source of many Ubuntu
packages), but I cannot understand how plugins could catch if adding a
small hook is nearly impossible. This is a typical chicken & egg
situation or catch-22.  

Cheers

-- 
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 mine, sont seulement les miennes} ***

Reply via email to