From Bugzilla Helper: User-Agent: Mozilla/4.77 [en] (X11; U; Linux 2.4.2-2smp i686) Description of problem: The "-fschedule-insns" option to gcc appears to be having problems with modulo arithmetic. How reproducible: Always Steps to Reproduce: $ gcc -march=i686 -O3 -fstrength-reduce -fthread-jumps -fcse-follow-jumps -fcse-skip-blocks -frerun-cse-after-loop -fschedule-insns -fschedule-insns2 -fexpensive-optimizations -fforce-mem -fforce-addr -fomit-frame-pointer -c bug.c -o bug.o Actual Results: bug.c: In function `ev_postevent': bug.c:22: Unable to find a register to spill in class `AREG'. bug.c:22: confused by earlier errors, bailing out Expected Results: Source should have compiled. Additional info:
Created attachment 21285 [details] Small source that demonstrates the bug.
-fschedule-insns should never be used on register starved architectures, it has never worked there and will not work even in future compiler versions. There is a reason why it is not enabled with -O2 on e.g. ia32.