public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "iains at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug lto/48094] ld: warning: section has unexpectedly large size errors in objc/obj-c++ lto
Date: Tue, 06 Dec 2011 09:13:00 -0000	[thread overview]
Message-ID: <bug-48094-4-GmswqmpoMp@http.gcc.gnu.org/bugzilla/> (raw)
In-Reply-To: <bug-48094-4@http.gcc.gnu.org/bugzilla/>

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48094

--- Comment #14 from Iain Sandoe <iains at gcc dot gnu.org> 2011-12-06 09:11:56 UTC ---
(In reply to comment #13)
> (In reply to comment #12)
> > I guess, ideally, the ObjC meta-data should be re-created after LTO has done
> > its magic -- but that's def. not a stage 3 type job ...
> 
> Ideally from what point of view? Certainly not that of one where there is
> proper separation between front ends and the middle end. There are no language
> specific post optimization passes. From the point of view of the LTO front end,
> whatever the ObjC-family front ends have handed over is language independent.

... I do see the point about separation - and I wasn't intending to imply that
there was lang-specific optimization.
 (what I meant to say is that, if the meta-data are created for the optimized
code, then they are already - by definition - optimized themselves).

I would not propose a lang-specific ME pass ... however, I might propose a pass
that deals with one category of construct (which only happens to be generated
by one FE).   Surely we do this already - the ME just deals with constructs -
some of which are only ever generated by Fortran or Ada or C++ ?? 

 [[ probably displaying my considerable lack of knowledge about the ME here ]]

===

The metadata are really a property of the target runtime (thus, they change
depending on the target runtime, for the same ObjC source).

So, at the least, they are in a grey area.  (IMO) The front-end would ideally
be completely target-runtime agnostic - at least until lowering to gimple (the
method calls are constructed differently, for example).

so, for the same ME data, one should - in principle - be able to generate the
correct metadata for the target  ...

... however, clearly, this does not belong in the back end either (since that
would imply duplication that is not needed) ... :-(

-- so perhaps we are left with needing to communicate something between the two
... in the same manner that we "tell" the back end how to express things that
have alignment or visibility attributes attached to them in the FE ... 

just musing about possible solutions .. nothing that feels particularly "Right"
as it stands ... .

> But those two L_OBJC_ImageInfo variables have a number appended. Is that
> supposed to be so? Or is this LTO declaration merging at work and maybe you
> want to avoid that?
> (Maybe I'm talking completely non-sense, but something like that came up for
> PR47259 also...)

I think that LTO is behaving entirely correctly now (the original example in
the bug has been fixed).

N input files containing a local variable (even if it has the same name in
each) should produce N instances of that in the output - which is what is
happening.

I would guess have no way to mark a variable as "local, but shared" because -
probably outside of this case there is no ld that could make sense of it. 

 I don't know if it will currently break the NeXT ObjC runtime if we re-specify
the section as coalesced and mark the vars as DECL_ONE_ONLY.. but I suspect it
will break at some point.


  parent reply	other threads:[~2011-12-06  9:13 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-12 17:31 [Bug lto/48094] New: " howarth at nitro dot med.uc.edu
2011-03-12 17:32 ` [Bug lto/48094] " howarth at nitro dot med.uc.edu
2011-03-12 17:49 ` iains at gcc dot gnu.org
2011-03-12 18:38 ` iains at gcc dot gnu.org
2011-03-13 12:13 ` iains at gcc dot gnu.org
2011-03-14  9:40 ` iains at gcc dot gnu.org
2011-11-14  0:05 ` iains at gcc dot gnu.org
2011-12-03 15:50 ` howarth at nitro dot med.uc.edu
2011-12-03 18:32 ` iains at gcc dot gnu.org
2011-12-05 15:25 ` howarth at nitro dot med.uc.edu
2011-12-05 15:31 ` howarth at nitro dot med.uc.edu
2011-12-05 17:24 ` iains at gcc dot gnu.org
2011-12-05 21:03 ` iains at gcc dot gnu.org
2011-12-06  0:50 ` steven at gcc dot gnu.org
2011-12-06  9:13 ` iains at gcc dot gnu.org [this message]
2012-02-12 14:44 ` iains at gcc dot gnu.org
2013-07-16 12:05 ` iains at gcc dot gnu.org
2013-07-16 19:12 ` iains at gcc dot gnu.org
2013-09-14 15:34 ` [Bug target/48094] " iains at gcc dot gnu.org
2013-09-14 15:36 ` iains at gcc dot gnu.org
2013-09-14 15:40 ` iains at gcc dot gnu.org
2013-09-15 18:32 ` mrs at gcc dot gnu.org
2014-04-07  6:41 ` dominiq at gcc dot gnu.org
2014-04-07  8:01 ` dominiq at gcc dot gnu.org

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=bug-48094-4-GmswqmpoMp@http.gcc.gnu.org/bugzilla/ \
    --to=gcc-bugzilla@gcc.gnu.org \
    --cc=gcc-bugs@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).