public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
From: "hubicka at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org> To: gcc-bugs@gcc.gnu.org Subject: [Bug lto/47247] Linker plugin specification makes it difficult to handle COMDATs Date: Sat, 27 Aug 2011 18:16:00 -0000 [thread overview] Message-ID: <bug-47247-4-uttzhBTXLB@http.gcc.gnu.org/bugzilla/> (raw) In-Reply-To: <bug-47247-4@http.gcc.gnu.org/bugzilla/> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47247 --- Comment #22 from Jan Hubicka <hubicka at gcc dot gnu.org> 2011-08-27 17:35:27 UTC --- Carry, is there any chance to move ahead on this problem? I see you posted the PREVAILING_DEF_IRONLY_EXP but it was never committed. Concerning Rafael's comment: Why is PREVAILING_DEF_IRONLY_EXP needed? I think it can be solved with just PREVAILING_DEF if we say that the compiler can drop references to them if it knows they are provided in any DSO. The only case I can see where this would almost be a problem is something like This is not possible with current formulation of plugin API. It explicitely says "Any symbol marked PREVAILING_DEF must be defined in one object file added to the link after WPA is done, or an undefined symbol error will result" We could also go that route I guess, but 1) We will have to bump API version or something to indicate whether compiler is allowed to drop the symbols or not. With current binutils implementation bad things happens when compiler decided to drop the symbol it is not supposed to (my original implementation did so and it resulted in problems, especially in large dynamic linker tables) 2) the LTO produced COMDAT function will likely be better, so we will lose bit of code quality 3) There are cases where function is output COMDAT but it is keyed (i.e. with the repo files). In this case we will not be able to drop the symbol when it becomes unnecessary at LTO time because we will not know whether the symbol is used by non-LTO code or not. All those reasons are rather side cases and thus weak, but because we are effectively changing API anyway and because PREVAILING_DEF_IRONLY_EXP makes compiler a bit more informed in well defined way, I would go for it. Honza
next prev parent reply other threads:[~2011-08-27 17:36 UTC|newest] Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top 2011-01-10 16:51 [Bug lto/47247] New: " hubicka at gcc dot gnu.org 2011-01-10 17:02 ` [Bug lto/47247] " hubicka at gcc dot gnu.org 2011-01-10 17:11 ` hjl.tools at gmail dot com 2011-01-10 17:12 ` hjl.tools at gmail dot com 2011-01-10 17:13 ` hubicka at ucw dot cz 2011-01-10 17:19 ` hjl.tools at gmail dot com 2011-01-10 18:20 ` hubicka at gcc dot gnu.org 2011-01-10 18:36 ` hjl.tools at gmail dot com 2011-01-10 19:06 ` ccoutant at gcc dot gnu.org 2011-01-10 19:08 ` ccoutant at gcc dot gnu.org 2011-01-10 21:27 ` hubicka at gcc dot gnu.org 2011-01-10 21:27 ` hjl.tools at gmail dot com 2011-02-14 20:34 ` rafael.espindola at gmail dot com 2011-02-15 18:51 ` hubicka at ucw dot cz 2011-02-15 19:45 ` rafael.espindola at gmail dot com 2011-02-16 0:23 ` hubicka at ucw dot cz 2011-02-16 4:04 ` rafael.espindola at gmail dot com 2011-02-16 7:59 ` hubicka at ucw dot cz 2011-02-16 16:23 ` rafael.espindola at gmail dot com 2011-02-16 23:13 ` Jan Hubicka 2011-02-16 23:18 ` hubicka at ucw dot cz 2011-02-16 23:37 ` ccoutant at google dot com 2011-02-17 1:25 ` rafael.espindola at gmail dot com 2011-08-27 18:16 ` hubicka at gcc dot gnu.org [this message] 2011-09-26 21:47 ` ccoutant at gcc dot gnu.org 2011-09-27 0:23 ` ccoutant at gcc dot gnu.org 2011-09-28 13:09 ` hubicka at gcc dot gnu.org 2011-10-02 10:42 ` hubicka at gcc dot gnu.org 2012-05-10 7:32 ` vincenzo.innocente at cern dot ch 2012-05-10 7:54 ` rguenth at gcc dot gnu.org 2012-05-10 8:52 ` vincenzo.innocente at cern dot ch 2012-05-10 16:06 ` vincenzo.innocente at cern dot ch 2012-05-10 17:10 ` hubicka at ucw dot cz 2012-05-10 17:17 ` vincenzo.innocente at cern dot ch 2012-05-12 14:37 ` hubicka at gcc dot gnu.org 2012-05-14 8:13 ` vincenzo.innocente at cern dot ch
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-47247-4-uttzhBTXLB@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).