public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug ipa/110334] New: [13/14 Regresssion] unused functions not eliminated before LTO streaming
@ 2023-06-21  7:05 rguenth at gcc dot gnu.org
  2023-06-21  7:06 ` [Bug ipa/110334] " rguenth at gcc dot gnu.org
                   ` (28 more replies)
  0 siblings, 29 replies; 32+ messages in thread
From: rguenth at gcc dot gnu.org @ 2023-06-21  7:05 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110334

            Bug ID: 110334
           Summary: [13/14 Regresssion] unused functions not eliminated
                    before LTO streaming
           Product: gcc
           Version: 13.1.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: ipa
          Assignee: unassigned at gcc dot gnu.org
          Reporter: rguenth at gcc dot gnu.org
                CC: marxin at gcc dot gnu.org
  Target Milestone: ---

https://bugzilla.suse.com/show_bug.cgi?id=1212101

reports crashes of Firefox because with LTO we end up with comdats built
with different ISA flags and the linker choosing the "wrong" one.  While
that's general a user error the TUs in question have no uses of the
offending symbols and they are indeed eliminated when optimizing.  But
this elimination happens only after LTO streaming which is unfortunate.

We also seem to lack any diagnostic at WPA time that we have COMDAT
(group members) from several TUs that are not built with the same options.
Apart from diagnosing this (with -Wodr?) a possible DWIM solution could
be to clone the COMDAT (groups), overriding the linker decision and
preserving the edges to the original refered copy.  That's also superior
to using symbol visibility in the TUs as it would allow to share the
comdats across TUs if they are built with the same set of flags.

But first and foremost I wonder why we do not eliminate these symbols
before LTO streaming.

^ permalink raw reply	[flat|nested] 32+ messages in thread

end of thread, other threads:[~2024-05-21  9:16 UTC | newest]

Thread overview: 32+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-06-21  7:05 [Bug ipa/110334] New: [13/14 Regresssion] unused functions not eliminated before LTO streaming rguenth at gcc dot gnu.org
2023-06-21  7:06 ` [Bug ipa/110334] " rguenth at gcc dot gnu.org
2023-06-21  7:08 ` rguenth at gcc dot gnu.org
2023-06-21  7:12 ` rguenth at gcc dot gnu.org
2023-06-22 11:15 ` rguenth at gcc dot gnu.org
2023-06-22 11:45 ` rguenth at gcc dot gnu.org
2023-06-22 12:02 ` rguenth at gcc dot gnu.org
2023-06-23 10:47 ` hubicka at gcc dot gnu.org
2023-06-23 11:21 ` rguenth at gcc dot gnu.org
2023-06-23 12:59 ` hubicka at ucw dot cz
2023-06-23 13:07   ` Jan Hubicka
2023-06-23 13:07 ` hubicka at ucw dot cz
2023-06-26  6:39 ` rguenther at suse dot de
2023-06-26 17:50 ` hubicka at ucw dot cz
2023-06-27  6:41 ` rguenther at suse dot de
2023-06-28 10:00   ` Jan Hubicka
2023-06-28  4:42 ` cvs-commit at gcc dot gnu.org
2023-06-28 10:00 ` hubicka at ucw dot cz
2023-06-28 10:20 ` rguenther at suse dot de
2023-06-28 10:45 ` hubicka at ucw dot cz
2023-06-28 21:06 ` cvs-commit at gcc dot gnu.org
2023-07-03  7:05 ` jakub at gcc dot gnu.org
2023-07-10  7:40 ` rguenth at gcc dot gnu.org
2023-07-10  8:24 ` rguenth at gcc dot gnu.org
2023-07-10  8:24 ` rguenth at gcc dot gnu.org
2023-07-11 14:45 ` hubicka at ucw dot cz
2023-07-11 14:46 ` hubicka at ucw dot cz
2023-07-12  7:05 ` rguenther at suse dot de
2023-07-27  9:26 ` rguenth at gcc dot gnu.org
2023-11-25 10:00 ` egallager at gcc dot gnu.org
2023-11-27  7:28 ` rguenth at gcc dot gnu.org
2024-05-21  9:16 ` jakub at gcc dot gnu.org

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).