This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: RFC - Alternatives to gengtype
- From: Basile Starynkevitch <basile at starynkevitch dot net>
- To: Xinliang David Li <davidxl at google dot com>
- Cc: "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>
- Date: Sat, 17 Nov 2012 09:35:36 +0100
- Subject: Re: RFC - Alternatives to gengtype
- References: <CAAkRFZJzksJVZm7yjkSGai6C57J3Q9EdkfkMz9T6kp1kAS+oDw@mail.gmail.com>
On Fri, Nov 16, 2012 at 07:44:12PM -0800, Xinliang David Li wrote:
> >
> >
> > My strong belief is that a compiler project as gigantic as GCC needs some kind
> > of garbage collection
>
> Can you name another compiler written in C/C++ using GC ? :)
First, C or C++ is not the best language to write a compiler in, and actually GCC is not entirely
hand written in C or C++; As http://www.cse.iitb.ac.in/grc/ (i.e. the great work of Uday Khedker and colleagues, India) demonstrate, GCC is a framework with a significant amount of meta-programs, i.e. specialized C code generators. So GCC is not entirely hand-written in C or C++
And several compilers or static analyzers of C programs have a garbage collected implementation,
in particular those written in Ocaml: the frama-c.com static analyzer and the CompCert certified compiler.
I know people working on these projects quite well (Frama-C is developped by my current colleagues at CEA, LIST; CompCert is leaded by Xavier Leroy, and I worked one year in his Cristal team in 2004).
They all say that the garbage collector of Ocaml is an essential piece.
And when I measure with -ftime-report some long, optimized, compilation by GCC I see that GC takes
a small fraction (often less than 5 or 10%) of the whole time.
And if we switch to memory pool, that will take time also. Actually, if every dynamic memory allocation
in GCC was done with malloc+free or new+delete, we may have issues in measuring them
(because libstdc++ might not have hooks to measure that)
but they won't be free.
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} ***