gcc 3.2.3 compiler optimization bug

Igor Levicki levicki@yubc.net
Sun May 18 08:26:00 GMT 2003


Sorry I couldn't provide all the details requested in Bugs but this
should be enough anyway.
Compiler was built (all three stages) against glibc-2.3.2 with binutils
2.13.2.1 - everything bootstrapped and tested ok.
While compiling XFree86-4.3.0 with gcc-3.2.3 on Linux IA32 (Pentium4)
I have discovered this compiler error:

(following gcc invocation was on one line - split for readability)

gcc -m32 -c -ansi -pedantic -pipe
-I../include -I../../../include
-I../../../include/GL
-I../../.. -I../../../exports/include
-Dlinux
-D__i386__
-D_POSIX_C_SOURCE=199309L
-D_POSIX_SOURCE
-D_XOPEN_SOURCE
-D_BSD_SOURCE
-D_SVID_SOURCE
-D_GNU_SOURCE
-DFUNCPROTO=15
-DNARROWPROTO
-DNDEBUG
-O3 -fomit-frame-pointer -march=pentium4 -mfpmath=sse -msse2
mipmap.c -o unshared/mipmap.o

This is the error reported:

mipmap.c: In function `halve1Dimage_float':
mipmap.c:1268: unable to find a register to spill in class `FLOAT_REGS'
mipmap.c:1268: this is the insn:
(insn 111 109 114 (set (subreg:SF (reg/v:DI 22 rxmm1 [73]) 0)
        (float:SF (reg:DI 0 rax [89]))) 170 {*floatdisf2_i387_only}
(insn_list 108 (nil))
    (expr_list:REG_DEAD (reg:DI 0 rax [89])
        (nil)))
mipmap.c:1268: confused by earlier errors, bailing out

File compiles ok if -mfpmath=sse switch is removed. Note that all other
sources from XFree86 tree compile without any problems.
I believe this to be a compiler error.
Regards,
Igor Levicki
levicki@yubc.net
Belgrade, Serbia



More information about the Gcc-bugs mailing list