This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/50925] [4.7 Regression][avr] ICE at spill_failure, at reload1.c:2118


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

Georg-Johann Lay <gjl at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Target|avr-rtems4.11               |avr-*
             Status|UNCONFIRMED                 |NEW
      Known to work|                            |4.6.2
           Keywords|                            |ice-on-valid-code
   Last reconfirmed|                            |2011-11-04
                 CC|                            |gjl at gcc dot gnu.org
     Ever Confirmed|0                           |1
            Summary|avr ICE at spill_failure,   |[4.7 Regression][avr] ICE
                   |at reload1.c:2118           |at spill_failure, at
                   |                            |reload1.c:2118

--- Comment #3 from Georg-Johann Lay <gjl at gcc dot gnu.org> 2011-11-04 17:08:30 UTC ---
I can confirm this on current trunk r180962 with -Os/-O2/-O3.

The bug disappears with -fno-caller-saves.

I already observed trouble with -fcaller-saves together with -mstrict-X so that
perhaps it is a good idea to disable that option for AVR?

A size comparison if avr-libc generated with -f[no-]caller-saves looks as
follows:

Columns:

3nd = #bytes with -fcaller-saves
3rd = #bytes with -fno-caller-saves
4th = relative size gain
5th = absolute size gain

vfscanf_flt.o                         :  21197  21347      0.7%    150
realloc.o                             :   4110   4164      1.3%     54
vfprintf_std.o                        :   8858   8840     -0.2%    -18
vfprintf_flt.o                        :  16604  16508     -0.6%    -96
calloc.o                              :    636    540    -15.1%    -96
strdup.o                              :    654    516    -21.1%   -138
vfscanf_min.o                         :   9613   9433     -1.9%   -180
vfscanf_std.o                         :  12918  12736     -1.4%   -182
:::::: Total :::::::                  : 322839 322333     -0.2%   -506

Other object do not change in size.

Denis, what do you think: Should we kick off caller-saves alltogether? Appears
that option increases register pressure/spill requests up to a level not
appropriate for AVR.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]