Bug#177671: gcc-3.2: failure to compile w/ -march=pentium2 (or greater) - FP register starvation
Package: gcc-3.2
Version: 1:3.2.1-0pre3
Severity: normal
xine-lib-1-beta2 fails to compile w/ -march=pentium2 (or greater). it
will compile w/ -march=pentiumpro or with any -mcpu setting.
it looks like a failure in the FP register allocator or the MD for p2+
class cpus. at least to my untrained eye. =)
see below for output w/ different march settings.
job
coriander:~/xine-lib-1-beta2/src/libfaad# gcc-3.2 -march=pentium2 -DHAVE_CONFIG_
H -I. -I. -I../.. -I../.. -I../../include -I../../include -I../../src -I../../sr
c/xine-engine -I../../src/xine-engine -I../../src/xine-utils -Wall -D_REENTRANT
-D_FILE_OFFSET_BITS=64 -DXINE_COMPILE -O3 -pipe -fomit-frame-pointer -falign-fun
ctions=4 -falign-loops=4 -falign-jumps=4 -mpreferred-stack-boundary=2 -fexpensiv
e-optimizations -fschedule-insns2 -fno-strict-aliasing -ffast-math -funroll-loop
s -finline-functions -I/usr/include/kde/artsc -c cfft.c -MT cfft.lo -MD -MP -MF
.deps/cfft.TPlo -DPIC -o cfft.lo
cfft.c: In function `passf2':
cfft.c:550: unable to find a register to spill in class `FLOAT_REGS'
cfft.c:550: this is the insn:
(insn 195 193 200 (set (subreg:SF (reg/v:DI 29 rmm0 [94]) 0)
(minus:SF (mem:SF (plus:SI (mult:SI (reg/v:SI 1 edx [70])
(const_int 8 [0x8]))
(reg/v/f:SI 4 esi [62])) [0 S4 A32])
(reg:SF 8 st(0) [105]))) 533 {*fop_sf_1_nosse} (insn_list 192 (nil))
(expr_list:REG_DEAD (reg:SF 8 st(0) [105])
(nil)))
cfft.c:550: confused by earlier errors, bailing out
coriander:~/xine-lib-1-beta2/src/libfaad# gcc-3.2 -march=pentiumpro -DHAVE_CONFI
G_H -I. -I. -I../.. -I../.. -I../../include -I../../include -I../../src -I../../
src/xine-engine -I../../src/xine-engine -I../../src/xine-utils -Wall -D_REENTRAN
T -D_FILE_OFFSET_BITS=64 -DXINE_COMPILE -O3 -pipe -fomit-frame-pointer -falign-f
unctions=4 -falign-loops=4 -falign-jumps=4 -mpreferred-stack-boundary=2 -fexpens
ive-optimizations -fschedule-insns2 -fno-strict-aliasing -ffast-math -funroll-lo
ops -finline-functions -I/usr/include/kde/artsc -c cfft.c -MT cfft.lo -MD -MP -M
F .deps/cfft.TPlo -DPIC -o cfft.lo
cfft.c: In function `cffti1':
cfft.c:428: warning: `ntry' might be used uninitialized in this function
coriander:~/xine-lib-1-beta2/src/libfaad# gcc-3.2 -mcpu=pentium2 -DHAVE_CONFIG_H
-I. -I. -I../.. -I../.. -I../../include -I../../include -I../../src -I../../src
/xine-engine -I../../src/xine-engine -I../../src/xine-utils -Wall -D_REENTRANT -
D_FILE_OFFSET_BITS=64 -DXINE_COMPILE -O3 -pipe -fomit-frame-pointer -falign-func
tions=4 -falign-loops=4 -falign-jumps=4 -mpreferred-stack-boundary=2 -fexpensive
-optimizations -fschedule-insns2 -fno-strict-aliasing -ffast-math -funroll-loops
-finline-functions -I/usr/include/kde/artsc -c cfft.c -MT cfft.lo -MD -MP -MF .
deps/cfft.TPlo -DPIC -o cfft.lo
cfft.c: In function `cffti1':
cfft.c:428: warning: `ntry' might be used uninitialized in this function
coriander:~/xine-lib-1-beta2/src/libfaad#
-- System Information
Debian Release: testing/unstable
Architecture: i386
Kernel: Linux coriander 2.4.18-686-smp #1 SMP Sun Apr 14 12:07:19 EST 2002 i686
Locale: LANG=C, LC_CTYPE=C
Versions of packages gcc-3.2 depends on:
ii binutils 2.13.90.0.10-1 The GNU assembler, linker and bina
ii cpp-3.2 1:3.2.1-0pre3 The GNU C preprocessor.
ii gcc-3.2-base 1:3.2.1-0pre3 The GNU Compiler Collection (base
ii libc6 2.2.5-14.3 GNU C Library: Shared libraries an
ii libgcc1 1:3.2.1-0pre3 GCC support library.
Reply to: