avr-gcc-list
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[avr-gcc-list] binutils 2.22 blow up program size with -flto


From: Volker Kuhlmann
Subject: [avr-gcc-list] binutils 2.22 blow up program size with -flto
Date: Sun, 29 Jul 2012 15:43:43 +1200

I am finding that with binutils 2.22 and newer gcc the program size goes
through the roof:

Tested with Seismograph 1.8.3, avr-libc 1.7.1 with progmem const patch,
binutils 2.22 or 2.19.1 (indicated by bin219),
avr-gcc flags (the nolto are missing -flto)
    -mmcu=atmega328p -Os -ffunction-sections -fdata-sections -mrelax -flto
    -g2 -gstabs -std=gnu++0x

  text   data  bss    dec   hex filename
 21156    752  967  22875  595b output/Seismograph-183-436.elf
 21156    752  967  22875  595b output/Seismograph-183-436-bin219.elf

 22742   1008  960  24710  6086 output/Seismograph-183-463.elf
 20730    750  966  22446  57ae output/Seismograph-183-463-bin219.elf
 21088    750  967  22805  5915 output/Seismograph-183-463-nolto.elf
 21088    750  967  22805  5915 output/Seismograph-183-463-bin219-nolto.elf

 22016    748  960  23724  5cac output/Seismograph-183-471.elf
 21144    746  966  22856  5948 output/Seismograph-183-471-bin219.elf
 21278    746  967  22991  59cf output/Seismograph-183-471-nolto.elf
 21278    746  967  22991  59cf output/Seismograph-183-471-bin219-nolto.elf

What could be the reason for this?
gcc was recompiled for each binutils version.

The other sad thing is that gcc 4.7.1 does not improve code size over
4.3.6, and matches it only with binutils 2.19.1 and no LTO, otherwise
being significantly worse. That's rather unexpected. Why could this be?

The combination of binutils 2.22, gcc 4.6.3 and LTO produces a broken
program - never mind that for now. It's also the largest code size ever.

I'm still trying to get the optimum out of LTO, so far gcc 4.6.3 with
binutils 2.19.1 and LTO gets top by far.

Any hints thanksfully received,

Volker

-- 
Volker Kuhlmann                 is list0570 with the domain in header.
http://volker.dnsalias.net/     Please do not CC list postings to me.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]