public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: "oliver.kellogg@t-online.de" <oliver.kellogg@t-online.de>
To: gcc@gcc.gnu.org
Subject: Re: [gnat] reuse of ASTs already constructed
Date: Sun, 15 Apr 2012 19:22:00 -0000	[thread overview]
Message-ID: <1SJV1E-0q2dsW0@fwd24.aul.t-online.de> (raw)

I looked into the second problem from
  http://gcc.gnu.org/ml/gcc/2009-08/msg00475.html ,

> 2) The 'X' lines in the ALI files are not what they should be.
> This is due to the fact that Lib.Xref.Generate_(Definition|Reference) is
> called during semantic analysis. However, when I discover that a
> tree was already built for a main unit by a previous compilation,
> Sem is not redone for that tree. [...]

and I see two possible solutions:

1) Extend Lib.Xref.Generate_Reference, Sem_Util.Process_End_Label
and others for the case "not In_Extended_Main_Source_Unit" in multi
source compilation mode to buffer the generated references for possible
later consumption by the main unit for which they are intended.
If the main unit is not part of the main units given in the multi source
compile job then the buffered data can be discarded.

2) Determine an ordering of the main units such that main units with
little or no dependencies precede main units that depend on them.
Submit units to semantic analysis in the determined order.

Both approaches seem quite heavy.
Solution 2 looks more elegant to me. OTOH this would require a
separate analysis of the with clauses prior to invoking Sem proper.

Oliver



             reply	other threads:[~2012-04-15 19:22 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-15 19:22 oliver.kellogg [this message]
  -- strict thread matches above, loose matches on Subject: below --
2012-07-07 20:33 Oliver Kellogg
2012-06-23 18:22 Oliver Kellogg
2012-06-23 22:23 ` Arnaud Charlet
2012-06-17 15:12 Oliver Kellogg
2012-04-06 20:24 oliver.kellogg
2012-04-10 10:20 ` Arnaud Charlet
     [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
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
2003-03-04 22:03 Robert Dewar
2003-03-04 20:42 Robert Dewar
2003-03-04 21:01 ` Oliver Kellogg
2003-03-04 22:03   ` Geert Bosch
2003-03-04 17:08 Oliver Kellogg
2003-03-04 20:07 ` Geert Bosch
2003-03-04 20:49   ` 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=1SJV1E-0q2dsW0@fwd24.aul.t-online.de \
    --to=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).