public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Richard Guenther <rguenther@suse.de>
To: Jakub Jelinek <jakub@redhat.com>
Cc: Jason Merrill <jason@redhat.com>,
	Richard Henderson <rth@redhat.com>,
	gcc-patches@gcc.gnu.org
Subject: Re: [PATCH] Fix LTO bootstrap on i686-linux (problem with two Ldebug_info0 labels; PR bootstrap/48148)
Date: Fri, 08 Apr 2011 21:13:00 -0000	[thread overview]
Message-ID: <alpine.LNX.2.00.1104082312400.810@zhemvz.fhfr.qr> (raw)
In-Reply-To: <20110408191125.GV17079@tyan-ft48-01.lab.bos.redhat.com>

On Fri, 8 Apr 2011, Jakub Jelinek wrote:

> On Fri, Apr 08, 2011 at 01:58:14PM -0400, Jason Merrill wrote:
> > On 04/05/2011 10:19 AM, Jakub Jelinek wrote:
> > >i686-linux LTO bootstrap currently fails, because in one partition
> > >we emit .Ldebug_info0 label twice.  The problem is that
> > >resolve_addr for call_site support attempts to force_decl_die external
> > >function decls, and at least with LTO that in turn can attempt
> > >to create new type DIEs, in this case an enumeration with context_die
> > >being NULL.  Unfortunately the code to add proper parents to limbo nodes
> > >is done right before resolve_addr (and should be done there, so that
> > >resolve_addr reaches all the needed DIEs).
> > >
> > >+/* Traverse the limbo die list, and add parent/child links.  The only
> > >+   dies without parents that should be here are concrete instances of
> > >+   inline functions, and the comp_unit_die.  We can ignore the comp_unit_die.
> > >+   For concrete instances, we can get the parent die from the abstract
> > >+   instance.  */
> > 
> > Sounds like this comment needs to be updated if there can be types
> > on the list as well.
> 
> On a closer look, this seems to be because LTO messes up types terribly,
> struct cpp_options's lang field doesn't have enum c_lang type, but
> enum prec whose TYPE_CONTEXT is c_parser_binary_expression
> function from c_parser.c.  So when trying to create DIE for cpp_options
> and stuff in it we end up with the surprising limbo die.
> Therefore, I'm withdrawing my patch and will look into this mess on Monday.

We are definitely unifying enum types too eagerly.  It's on my TODO
to fix that, but it had low priority sofar.

Richard.

  reply	other threads:[~2011-04-08 21:13 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-04-05 14:19 Jakub Jelinek
2011-04-05 21:06 ` Nathan Froyd
2011-04-05 21:11   ` Jakub Jelinek
2011-04-08 17:58 ` Jason Merrill
2011-04-08 19:11   ` Jakub Jelinek
2011-04-08 21:13     ` Richard Guenther [this message]
2011-04-08 21:41       ` Michael Matz

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=alpine.LNX.2.00.1104082312400.810@zhemvz.fhfr.qr \
    --to=rguenther@suse.de \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=jakub@redhat.com \
    --cc=jason@redhat.com \
    --cc=rth@redhat.com \
    /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).