This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: GCC 5 & modularity
- From: Richard Guenther <richard dot guenther at gmail dot com>
- To: Peter Dolding <oiaohm at gmail dot com>
- Cc: Basile Starynkevitch <basile at starynkevitch dot net>, joseph at codesourcery dot com, dnovillo at google dot com, gcc at gcc dot gnu dot org
- Date: Wed, 21 Mar 2012 10:57:08 +0100
- Subject: Re: GCC 5 & modularity
- References: <CANA3KFXqHAjXPi3VMuGSgk6TB1RdDfgEH4VkWUSf+uo2BZDScA@mail.gmail.com> <20120320070330.5a4b62206de0b713be1ee4fb@starynkevitch.net> <CANA3KFXh=uyjfkRiakYpgFVHTpyYB02w4PFXX1syyAE-ZJvRkA@mail.gmail.com> <20120320184724.d6356912654d810305679ebb@starynkevitch.net> <CANA3KFW41jvfA+xaUzwzShTSP0F8o-kJVEkkCfUedB41JP=VQA@mail.gmail.com>
On Wed, Mar 21, 2012 at 10:36 AM, Peter Dolding <oiaohm@gmail.com> wrote:
> On Wed, Mar 21, 2012 at 3:47 AM, Basile Starynkevitch
> <basile@starynkevitch.net> wrote:
>> 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
>
> Back-ends are shared between all languages gcc supports but can be
> target particular.. ?So they are already a kind of module in there own
> right.
>
> Middle-end is language neutral. ?Yes these are basically already a
> module just not broken down enough.
>
> front-ends part in cc1 is the only part that is fully unique to cc1.
> The middle-end and back-ends you will find used with other languages
> as is.
>
> This here is a very good read.
> http://www.cse.iitb.ac.in/grc/intdocs/gcc-conceptual-structure.html
>
> For the official harder to read form
> http://gcc.gnu.org/onlinedocs/gccint.pdf ? basically this really needs
> some graphics added. ?And a little sorting. ?But the same information
> is in there as the gcc conceptual structure write up.
>
> Even better gccint.pdf goes into what c files should be in each module.
>
> This is why you hitting the wall that gcc is already kinda module
> design. ?Everything is sorted to go into modules is just starting
> cutting.
>
> Note I said exist and named. ?I did not say they were into a simple to
> read graphic on the gcc site.
Indeed. There is also different module hierarchies that overlap. For
example ILs used in the different parts of the compiler.
I think Basile is mostly confused about what files belong to what module,
a question with not a single answer per file. It's been suggested before,
but moving files into subdirectories might help here, at least for those
which have a clearly defined module. The C frontend is one obvious
example, generator programs for machine descriptions another,
RTL optimization passes are harder, GIMPLE/SSA optimization
passes are somewhat hard, ... there is not always a good directory
to put things in. For example I absolutely hate the suggested gimple/
Richard.
> Peter Dolding