public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug middle-end/46176] New: profile feedback causes 20% linux kernel binary growth
@ 2010-10-25 22:55 andi-gcc at firstfloor dot org
  2010-10-25 22:57 ` [Bug middle-end/46176] " pinskia at gcc dot gnu.org
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: andi-gcc at firstfloor dot org @ 2010-10-25 22:55 UTC (permalink / raw)
  To: gcc-bugs

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

           Summary: profile feedback causes 20% linux kernel binary growth
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: middle-end
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: andi-gcc@firstfloor.org


Recent gcc 4.6 snapshot on x86_64-linux.

I did an experimental patch to use profile feedback with the Linux kernel
With a very simple training run (covering only ~50% of the files partially)
Unfortunately recompiling with the feedback data leads to a 20% larger
binary. This is compiled using -O2.

Trained:
   text    data     bss     dec     hex filename
13615040        1202668 1357680 16175388         f6d11c vmlinux

Untrained:
11136452        1200876 1357552 13694880         d0f7a0 vmlinux

Comparing the symbols with the largest growth I get:

add/remove: 674/2006 grow/shrink: 12172/4139 up/down: 3000900/-510189 (2490711)
function                                     old     new   delta
r600_kms_blit_copy                          2640   16394  +13754
static.do_con_write                            -   10681  +10681
r600_blit_copy                             10605   21205  +10600
zlib_inflate                                5459   15261   +9802
static.rv770_startup                           -    9541   +9541
e1000_setup_copper_link                        -    9510   +9510
e1000_diag_test                            14064   22948   +8884
kmem_cache_create                           1385   10227   +8842

I have not analyzed it in detail, but current suspicion is much
more aggressive inlining?

Note also that a lot of functions were using fallback profiling data
because the training load wasn't very good.


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

* [Bug middle-end/46176] profile feedback causes 20% linux kernel binary growth
  2010-10-25 22:55 [Bug middle-end/46176] New: profile feedback causes 20% linux kernel binary growth andi-gcc at firstfloor dot org
@ 2010-10-25 22:57 ` pinskia at gcc dot gnu.org
  2010-10-26  8:01 ` andi-gcc at firstfloor dot org
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: pinskia at gcc dot gnu.org @ 2010-10-25 22:57 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> 2010-10-25 22:57:50 UTC ---
I think this is unrolling.  -fprofile-generate/-fprofile-use turns on
unrolling.


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

* [Bug middle-end/46176] profile feedback causes 20% linux kernel binary growth
  2010-10-25 22:55 [Bug middle-end/46176] New: profile feedback causes 20% linux kernel binary growth andi-gcc at firstfloor dot org
  2010-10-25 22:57 ` [Bug middle-end/46176] " pinskia at gcc dot gnu.org
@ 2010-10-26  8:01 ` andi-gcc at firstfloor dot org
  2010-10-26 10:28 ` andi-gcc at firstfloor dot org
  2014-09-26 17:43 ` andi-gcc at firstfloor dot org
  3 siblings, 0 replies; 5+ messages in thread
From: andi-gcc at firstfloor dot org @ 2010-10-26  8:01 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #2 from Andi Kleen <andi-gcc at firstfloor dot org> 2010-10-26 08:01:01 UTC ---
Thanks.

Unrolling seems to be part of it, but not all. I rebuilt/retrained with
-fno-unroll-loops

Trained:
   text    data     bss     dec     hex filename
12774489        1198572 1357680 15330741         e9edb5 vmlinux
Untrained:
11136452        1200876 1357552 13694880         d0f7a0 ../obj-work2/vmlinux

So it's only 13% difference now, but still a lot.

function                                     old     new   delta
r600_kms_blit_copy                          2640   16394  +13754
static.do_con_write                            -   10163  +10163
static.rv770_startup                           -    9541   +9541
r600_blit_copy                             10605   19626   +9021
e1000_setup_copper_link                        -    8894   +8894
kmem_cache_create                           1385   10227   +8842
des3_ede_encrypt                            1203    8208   +7005
des3_ede_decrypt                            1203    8208   +7005


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

* [Bug middle-end/46176] profile feedback causes 20% linux kernel binary growth
  2010-10-25 22:55 [Bug middle-end/46176] New: profile feedback causes 20% linux kernel binary growth andi-gcc at firstfloor dot org
  2010-10-25 22:57 ` [Bug middle-end/46176] " pinskia at gcc dot gnu.org
  2010-10-26  8:01 ` andi-gcc at firstfloor dot org
@ 2010-10-26 10:28 ` andi-gcc at firstfloor dot org
  2014-09-26 17:43 ` andi-gcc at firstfloor dot org
  3 siblings, 0 replies; 5+ messages in thread
From: andi-gcc at firstfloor dot org @ 2010-10-26 10:28 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #3 from Andi Kleen <andi-gcc at firstfloor dot org> 2010-10-26 10:28:34 UTC ---
Interesting tidbit: the file containing r600_kms_blit_copy -- which grew most
--
didn't get any profile feedback during training, there was no data file.

I generated lists and cgraph ipa dumps for the feedback, non feedback
compilations:

dumps:
 http://halobates.de/tmp/20percent/r600_blit_kms.c.000i.cgraph-plain
 http://halobates.de/tmp/20percent/r600_blit_kms.c.000i.cgraph-feedback

listings:
 http://halobates.de/tmp/20percent/r600_blit_kms.lst-plain
 http://halobates.de/tmp/20percent/r600_blit_kms.lst-feedback


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

* [Bug middle-end/46176] profile feedback causes 20% linux kernel binary growth
  2010-10-25 22:55 [Bug middle-end/46176] New: profile feedback causes 20% linux kernel binary growth andi-gcc at firstfloor dot org
                   ` (2 preceding siblings ...)
  2010-10-26 10:28 ` andi-gcc at firstfloor dot org
@ 2014-09-26 17:43 ` andi-gcc at firstfloor dot org
  3 siblings, 0 replies; 5+ messages in thread
From: andi-gcc at firstfloor dot org @ 2014-09-26 17:43 UTC (permalink / raw)
  To: gcc-bugs

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

Andi Kleen <andi-gcc at firstfloor dot org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|---                         |INVALID

--- Comment #4 from Andi Kleen <andi-gcc at firstfloor dot org> ---
I think this were broken profile feedback files.

I'll reopen if it happens again.


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

end of thread, other threads:[~2014-09-26 17:43 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-10-25 22:55 [Bug middle-end/46176] New: profile feedback causes 20% linux kernel binary growth andi-gcc at firstfloor dot org
2010-10-25 22:57 ` [Bug middle-end/46176] " pinskia at gcc dot gnu.org
2010-10-26  8:01 ` andi-gcc at firstfloor dot org
2010-10-26 10:28 ` andi-gcc at firstfloor dot org
2014-09-26 17:43 ` andi-gcc at firstfloor dot 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).