public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Christophe Lyon <christophe.lyon@linaro.org>
To: Richard Biener <rguenther@suse.de>
Cc: Jan Hubicka <hubicka@ucw.cz>, Jakub Jelinek <jakub@redhat.com>,
	 gcc Patches <gcc-patches@gcc.gnu.org>
Subject: Re: Backporting streaming and enum changes
Date: Fri, 14 Aug 2020 10:36:14 +0200	[thread overview]
Message-ID: <CAKdteObHtwK0dCx9Fh_OPEOKGw0JP6k9c7-xDy1r=T0Qf3mN_w@mail.gmail.com> (raw)
In-Reply-To: <nycvar.YFH.7.76.2008061639300.9963@zhemvz.fhfr.qr>

Hi,

On Thu, 6 Aug 2020 at 16:39, Richard Biener <rguenther@suse.de> wrote:
>
> On Thu, 6 Aug 2020, Jan Hubicka wrote:
>
> > Hello,
> > as discussed some time ago, I would like to discuss possibility to
> > backport the straming and enum improvements.  The motivation is that
> > this brings quite noticeable improvements to builds of very large
> > projects where we currently have nonlinearity problem with anonymous
> > namespaces (which is solved by first set of patches) and also there is
> > quite noticeable overhead of streaming of enums that I noticed too late
> > for gcc 10.1. This is the second combine dpatch.
> >
> > There is also noticeable reduction of .o files (especially before
> > compression as hit to WPA->ltrans streaming) and some memory use
> > benefits.
> >
> > This is an optional thing to do, but I believe it may be helpful for
> > distro builds and those using LTO for large projects.
> >
> > For firefox the reduction in global stream (that is slowest part of WPA)
> > is from 25678391 tree bodies to 20821629, 11160520 SCC hash collisions
> > to 6002. 392382523 overal section size to 287891470 (both is
> > compressed).
> >
> > For Firefox streaming is under control, but other projects like Chromium
> > hits bigger issues. The reason is that Firefox has "unified build" that
> > #includes multiple cpp sources to one, so it consists of only about 8k
> > source files, while chromium is over 25k and it was tested on project
> > with over 250k sources. More smaller sources one gets, the more
> > noticeable bottleneck streaming become.
> >
> > The patches are not completely trivial, but they affect code that is
> > heavily executed during streaming and was in mainline for several
> > months, so I hope they are safe.
>
> So we've built the core of openSUSE (~3000 packages) on x86_64
> and i586 with these backported and sofar found no issues.
>
> I'm fine with backporting but I'll give Jakub the chance to
> object.
>
> Honza - please make sure to bump the LTO stream version minor
> together with the streaming change (I think the enum change
> doesn't require bumping).
>

Since this was backported as r10-8623-g0d96c3424bbb5e5f994b78c8f65d8704d215be54,
I've noticed ICEs on arm and aarch64:
    gcc.dg/pr34457-1.c (internal compiler error)
    gcc.dg/torture/pr92088-1.c   -O2 -flto -fno-use-linker-plugin
-flto-partition=none  (internal compiler error)
    gcc.dg/torture/pr92088-1.c   -O2 -flto -fuse-linker-plugin
-fno-fat-lto-objects  (internal compiler error)

I can see:
Excess errors:
during IPA pass: cp
lto1: internal compiler error: in operator[], at vec.h:878
0xa0a5d7 vec<lto_encoder_entry, va_heap, vl_embed>::operator[](unsigned int)
        /gcc/vec.h:878
0xa0a5d7 vec<lto_encoder_entry, va_heap, vl_ptr>::operator[](unsigned int)
        /gcc/vec.h:1444
0xa194d3 vec<lto_encoder_entry, va_heap, vl_ptr>::operator[](unsigned int)
        /gcc/tree.h:3408
0xa194d3 lto_symtab_encoder_deref
        /gcc/lto-streamer.h:1173
0xa194d3 ipa_prop_read_section
        /gcc/ipa-prop.c:5060
0xa194d3 ipa_prop_read_jump_functions()
        /gcc/ipa-prop.c:5089
0xb6ba71 ipa_read_summaries_1
        /gcc/passes.c:2837
0x6bc4b5 read_cgraph_and_symbols(unsigned int, char const**)
        /gcc/lto/lto-common.c:2921
0x69deb2 lto_main()
        /gcc/lto/lto.c:625

The tests pass on trunk.

Christophe
> Thanks,
> Richard.
>
> > Honza
> >
>
> --
> Richard Biener <rguenther@suse.de>
> SUSE Software Solutions Germany GmbH, Maxfeldstrasse 5, 90409 Nuernberg,
> Germany; GF: Felix Imendörffer; HRB 36809 (AG Nuernberg)

  reply	other threads:[~2020-08-14  8:36 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-06 14:34 Jan Hubicka
2020-08-06 14:39 ` Richard Biener
2020-08-14  8:36   ` Christophe Lyon [this message]
2020-08-14  9:15     ` Jan Hubicka
2020-08-14  9:21       ` Jan Hubicka
2020-08-14  9:30         ` Christophe Lyon

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='CAKdteObHtwK0dCx9Fh_OPEOKGw0JP6k9c7-xDy1r=T0Qf3mN_w@mail.gmail.com' \
    --to=christophe.lyon@linaro.org \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=hubicka@ucw.cz \
    --cc=jakub@redhat.com \
    --cc=rguenther@suse.de \
    /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).