[Bug target/52488] avr-*: internal compiler error: in extract_insn, at recog.c:2123

gjl at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Mar 13 11:26:00 GMT 2012


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

--- Comment #11 from Georg-Johann Lay <gjl at gcc dot gnu.org> 2012-03-13 11:25:04 UTC ---
(In reply to comment #7)

> However, this warning still leaves users in unclearity as GCC doesn't tell the
> maximum of stack it can provide.

The compiler does not know. It can estimate the RAM size from the width of the
stack pointer, but it's just a guess.

> The avr's default set of multilib variants is non-suitable as general
> default set of multlib variants. It probably is suiteable as set of 
> multilibs for bare-metal targets, but does not meet the demands of OSes. 
> 
> That said, I feel RTEMS needs to implement custom multilibs for the avr.

There is a patch at

http://gcc.gnu.org/ml/gcc-patches/2012-03/msg00811.html

that is less strict and allows to build insane code without error. If user
wants to ensure reasonable code, he can use
-Wlarger-than=len
-Wframe-larger-than=len
-Wstack-usage=len
or whatever to let the compiler complain if unappropriate code will be
generated.

BTW: The -mmcu=at90s2313 from above is fallout from -print-multi-lib. The first
two configurations are phantom configurations that should not be there.

tiny-stack;@mmcu=at90s2313
avr25/tiny-stack;@mmcu=attiny13
.;
avr25;@mmcu=avr25
avr3;@mmcu=avr3
avr31;@mmcu=avr31
avr35;@mmcu=avr35
avr4;@mmcu=avr4
avr5;@mmcu=avr5
avr51;@mmcu=avr51
avr6;@mmcu=avr6
avrxmega2;@mmcu=avrxmega2
avrxmega4;@mmcu=avrxmega4
avrxmega5;@mmcu=avrxmega5
avrxmega6;@mmcu=avrxmega6
avrxmega7;@mmcu=avrxmega7
tiny-stack;@mtiny-stack
avr25/tiny-stack;@mmcu=avr25@mtiny-stack



More information about the Gcc-bugs mailing list