This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug optimization/15127] New: spill_failure (class DIREG) in gcc.c-torture/execute/20010915-1.c


check-gcc reports failure on execute/20010915-1.c with optimizer settings:
 -O3 -fomit-frame-pointer -funroll-loops 
or
 -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions 
Reproduceable also with
 -O3 -funroll-all-loops
No failure with
 -O3 -funroll-loops

-------------------
Command and output:
-------------------
cvs $ cvs-gcc -v -save-temps -O3 -funroll-all-loops
/opt/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20010915-1.c 
Reading specs from /opt/gcc/inst/lib/gcc/x86_64-unknown-linux-gnu/3.5.0/specs
Configured with: ../gcc/configure --prefix=/opt/gcc/inst --program-prefix=cvs-
--enable-languges=c,c++ --disable-multilib
Thread model: posix
gcc version 3.5.0 20040424 (experimental)
 /opt/gcc/inst/libexec/gcc/x86_64-unknown-linux-gnu/3.5.0/cc1 -E -quiet -v
/opt/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20010915-1.c -mtune=k8
-funroll-all-loops -O3 -o 20010915-1.i
ignoring nonexistent directory
"/opt/gcc/inst/lib/gcc/x86_64-unknown-linux-gnu/3.5.0/../../../../x86_64-unknown-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/include
 /opt/gcc/inst/include
 /opt/gcc/inst/lib/gcc/x86_64-unknown-linux-gnu/3.5.0/include
 /usr/include
End of search list.
 /opt/gcc/inst/libexec/gcc/x86_64-unknown-linux-gnu/3.5.0/cc1 -fpreprocessed
20010915-1.i -quiet -dumpbase 20010915-1.c -mtune=k8 -auxbase 20010915-1 -O3
-version -funroll-all-loops -o 20010915-1.s
GNU C version 3.5.0 20040424 (experimental) (x86_64-unknown-linux-gnu)
        compiled by GNU C version 3.5.0 20040424 (experimental).
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
/opt/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20010915-1.c: In function `x':
/opt/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20010915-1.c:50: error: unable
to find a register to spill in class `DIREG'
/opt/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20010915-1.c:50: error: this is
the insn:
(insn:HI 49 48 50 2 (parallel [
            (set (reg:CC 17 flags)
                (compare:CC (mem:BLK (reg/f:DI 38 r9 [73]) [0 A8])
                    (mem/s/u:BLK (reg/f:DI 41 r12 [163]) [4 S2 A8])))
            (use (reg:DI 6 bp [84]))
            (use (const_int 1 [0x1]))
            (use (reg:SI 19 dirflag))
            (clobber (reg/f:DI 4 si [orig:82 v ] [82]))
            (clobber (reg/f:DI 0 ax [83]))
            (clobber (reg:DI 2 cx [206]))
        ]) 639 {*cmpstrqi_nz_rex_1} (insn_list 46 (insn_list 47 (insn_list 48
(nil))))
    (expr_list:REG_UNUSED (reg:DI 2 cx [206])
        (expr_list:REG_UNUSED (reg/f:DI 0 ax [83])
            (expr_list:REG_UNUSED (reg/f:DI 4 si [orig:82 v ] [82])
                (expr_list:REG_DEAD (reg:SI 19 dirflag)
                    (expr_list:REG_UNUSED (reg:DI 2 cx [206])
                        (expr_list:REG_UNUSED (reg/f:DI 0 ax [83])
                            (expr_list:REG_UNUSED (reg/f:DI 4 si [orig:82 v ] [82])
                                (expr_list:REG_EQUAL (compare:CC (mem:BLK
(reg/f:DI 38 r9 [73]) [0 A8])
                                        (mem/s/u:BLK (symbol_ref/f:DI ("*.LC0")
[flags 0x2] <string_cst 0x2a9597f900>) [4 S2 A8]))
                                    (nil))))))))))
/opt/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20010915-1.c:50: internal
compiler error: in spill_failure, at reload1.c:1887

--------------------
Additional info
--------------------
- same snapshot works fine on standard a "normal" i386 (P4)
- this testcase compiles fine with the following gcc:
gcc -v
Reading specs from /usr/lib/gcc-lib/x86_64-pc-linux-gnu/3.3.3/specs
Configured with: /var/tmp/portage/gcc-3.3.3/work/gcc-3.3.3/configure
--prefix=/usr --bindir=/usr/x86_64-pc-linux-gnu/gcc-bin/3.3
--includedir=/usr/lib/gcc-lib/x86_64-pc-linux-gnu/3.3.3/include
--datadir=/usr/share/gcc-data/x86_64-pc-linux-gnu/3.3
--mandir=/usr/share/gcc-data/x86_64-pc-linux-gnu/3.3/man
--infodir=/usr/share/gcc-data/x86_64-pc-linux-gnu/3.3/info --enable-shared
--host=x86_64-pc-linux-gnu --target=x86_64-pc-linux-gnu --with-system-zlib
--enable-languages=c,c++,f77,objc --enable-threads=posix --enable-long-long
--disable-checking --enable-cstdio=stdio --enable-clocale=generic
--enable-__cxa_atexit --enable-version-specific-runtime-libs
--with-gxx-include-dir=/usr/lib/gcc-lib/x86_64-pc-linux-gnu/3.3.3/include/g++-v3
--with-local-prefix=/usr/local --enable-shared --enable-nls
--without-included-gettext --disable-multilib
Thread model: posix
gcc version 3.3.3 20040217 (Gentoo Linux 3.3.3, propolice-3.3-7)

------------------
System info
------------------
Athon64 CPU, VIA based MB
Kernel 2.6.6
glibc 2.3.3 20040207

-- 
           Summary: spill_failure (class DIREG) in gcc.c-
                    torture/execute/20010915-1.c
           Product: gcc
           Version: 3.5.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: mseigneurin at tiscali dot fr
                CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: x86_64-pc-linux-gnu
  GCC host triplet: x86_64-pc-linux-gnu
GCC target triplet: x86_64-pc-linux-gnu


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]