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.
next prev 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: linkBe 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).