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: GCC 5 & modularity


On Tue, 20 Mar 2012 18:39:40 +1000
Peter Dolding <oiaohm@gmail.com> wrote:
> 
> The top level modules already exist and are named. 


Not really. I see nowhere on the GCC site a picture as clear as 
the "plateform overview" figure on http://developer.gnome.org/
And I am not able to list and name corresponding modules.
If you do, please send a link or make an exhaustive list.

The internal executables like cc1 are too high.

For example, my feeling is that GCC (actually cc1) is made of three layers

front-ends  |  middle-end    |  back-ends

and I might consider that the middle-end contains perhaps the following modules

   the pass manager
   the simple gimple passes
   the IPA gimple passes

(but I am not even sure).

I really would like some global reviewer propose a whole list of (say a dozen or two, but
no more) modules to start the discussion.

If we had a picture like the platform overview picture for Gnome/GTK we could tell that
proeminently on our web site.

In some of the slides on http://gcc-melt.org/ you could find the attached picture (I
don't know if gcc@gcc.gnu.org accept attachments, apparently not in PDF) which you could
browse at http://gcc-melt.org/cc1-internals.pdf or http://gcc-melt.org/cc1-internals.svg
(CC BY SA license)

And this picture contain no module names, because I don't know of any. It is sadly not
enough precise because I am unable to list the set of modules making GCC (or just cc1)

Most importantly, no text inside our source distribution or our SVN repository seems to
list clearly an exhaustive list of *named* modules, and for each module the directory (or
set of source file names) making that module.

At last, I do feel important that every source file should be documented as part of a
given named module (e.g. by a comment just after the GPLv3 license paragraph), and
preferably that we would use some device -either a prefix à le GTK, or just a C++
namespace to remind to which module any public identifier belongs.

We have none of them. Actually, I even don't understand if we have a tentative list of
(one or two dozen) modules; with a name and a one sentence description or title. I am
not aware of such a list. If you have it, please publish it (or a link to it). And if
that list already exist, I strongly suggest that it should be added into the svn trunk
repository, as a README-GCC-MODULES file or whatever.


If you have an exhaustive list of modules making cc1, please tell.

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

Attachment: cc1-internals.svg
Description: image/svg


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