This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/50925] [4.7 Regression][avr] ICE at spill_failure, at reload1.c:2118
- From: "gjl at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Fri, 04 Nov 2011 17:08:30 +0000
- Subject: [Bug target/50925] [4.7 Regression][avr] ICE at spill_failure, at reload1.c:2118
- Auto-submitted: auto-generated
- References: <bug-50925-4@http.gcc.gnu.org/bugzilla/>
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.