public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: Geert Bosch <bosch@gnat.com>
To: Oliver.Kellogg@t-online.de (Oliver Kellogg)
Cc: gcc@gcc.gnu.org
Subject: Re: [gnat] reuse of ASTs already constructed
Date: Tue, 04 Mar 2003 20:07:00 -0000	[thread overview]
Message-ID: <69231374-4E7B-11D7-B872-00039344BF4A@gnat.com> (raw)
In-Reply-To: <18qFj3-1u9WtMC@fwd07.sul.t-online.com>


On Tuesday, Mar 4, 2003, at 11:57 America/New_York, Oliver Kellogg 
wrote:

> I think it's a terrible waste that gnat1 can only process
> one single file.
> If gnat1 could be invoked with (for example) all the files
> that gnatmake finds to need recompilation, that could
> give tremendous compilation time savings - by keeping the
> syntax trees of units compiled for reuse by further units.
>
> Many Ada projects have large package specs that tend
> to be pervasively used. (The GNAT compiler is itself
> an example of such a design.) These applications
> could benefit a lot from in-memory AST reuse.
>
> What do you think about this?

This is not a new idea, and indeed there have been
thoughts for implementing some sort of scheme like
this. However, even though this may seem relatively
simple at first, the problems are in the details
and this is a bigger project than you might think.

Also, in most typical development schemes, only a
few units are recompiled at a time, and the back end
takes significantly more time than the front end anyway.
This means potential speedup is not "tremendous".

For example, for the run time library, about 30% of the
time is spent in the front end. The time building AST's
is a fraction of that, say 70% at most. Even in the
hypothetical case we could speed this up by a factor of
three, this still would gain us just 14% in overall speed
of the compiler. Significant sure, but not tremendous.

  reply	other threads:[~2003-03-04 19:56 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-03-04 17:08 Oliver Kellogg
2003-03-04 20:07 ` Geert Bosch [this message]
2003-03-04 20:49   ` Oliver Kellogg
2003-03-04 20:42 Robert Dewar
2003-03-04 21:01 ` Oliver Kellogg
2003-03-04 22:03   ` Geert Bosch
2003-03-04 22:03 Robert Dewar
2009-04-13 16:30 Oliver Kellogg
2009-04-14 14:10 ` Oliver Kellogg
2009-04-19 18:48 ` Oliver Kellogg
2009-04-20  5:14   ` Oliver Kellogg
2009-05-03 21:14     ` Oliver Kellogg
2009-05-03 21:17       ` Robert Dewar
2009-05-03 21:22         ` Oliver Kellogg
2009-05-04  1:14           ` Robert Dewar
2009-05-04  5:31             ` Oliver Kellogg
2009-05-04 12:23               ` Dave Korn
2009-05-09 20:09               ` Oliver Kellogg
2009-05-09 20:42                 ` Robert Dewar
2009-06-15 20:38                   ` Oliver Kellogg
2009-06-17  4:20                     ` Oliver Kellogg
2009-06-28 22:45                   ` Oliver Kellogg
2009-05-08 21:13       ` Tom Tromey
2009-04-20 18:40 ` Geert Bosch
2009-04-20 20:34   ` Oliver Kellogg
2009-04-20 21:12     ` Geert Bosch
2009-04-20 21:35       ` Oliver Kellogg
2009-04-27  6:18       ` Oliver Kellogg
2009-04-27  8:29         ` Robert Dewar
2009-04-27 18:36         ` Ian Lance Taylor
2009-04-27 18:47           ` Oliver Kellogg
2009-04-27 19:47         ` Tom Tromey
2009-04-27 22:09           ` Oliver Kellogg
2009-04-27 22:26             ` Tom Tromey
2009-04-27 22:44               ` Oliver Kellogg
     [not found] <1240349826.4554.76.camel@tidbit.site>
     [not found] ` <49EE4D58.8020404@adacore.com>
     [not found]   ` <1240437226.4554.101.camel@tidbit.site>
     [not found]     ` <49EF9892.1010703@adacore.com>
     [not found]       ` <1246487007.4507.76.camel@tidbit.site>
2009-08-26 18:39         ` Oliver Kellogg
2009-09-27 22:48           ` Oliver Kellogg
2012-04-06 20:24 oliver.kellogg
2012-04-10 10:20 ` Arnaud Charlet
2012-04-15 19:22 oliver.kellogg
2012-06-17 15:12 Oliver Kellogg
2012-06-23 18:22 Oliver Kellogg
2012-06-23 22:23 ` Arnaud Charlet
2012-07-07 20:33 Oliver Kellogg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=69231374-4E7B-11D7-B872-00039344BF4A@gnat.com \
    --to=bosch@gnat.com \
    --cc=Oliver.Kellogg@t-online.de \
    --cc=gcc@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).