Command line:
for 4.5/trunk:
g++-4.5 -O1 -fschedule-insns -fselective-scheduling -o tmp.o testcase-manual.ii
-c
for 4.4 can be used as well:
g++-4.4 -O1 -fschedule-insns -o tmp.o testcase-manual.ii -c

Gives (trunk r154953):
testcase-manual.ii: In function ‘void testsum(ms*)’:
testcase-manual.ii:20:1: error: unable to find a register to spill in class
‘AREG’
testcase-manual.ii:20:1: error: this is the insn:
(insn 26 24 27 2 testcase-manual.ii:16 (parallel [
            (set (reg:SI 5 di [83])
                (div:SI (reg:SI 5 di [orig:82 a_2(D)->n ] [82])
                    (reg:SI 2 cx [85])))
            (set (reg:SI 1 dx [84])
                (mod:SI (reg:SI 5 di [orig:82 a_2(D)->n ] [82])
                    (reg:SI 2 cx [85])))
            (clobber (reg:CC 17 flags))
        ]) 352 {*divmodsi4} (expr_list:REG_DEAD (reg:SI 2 cx [85])
        (expr_list:REG_DEAD (reg:SI 5 di [orig:82 a_2(D)->n ] [82])
            (expr_list:REG_UNUSED (reg:SI 1 dx [84])
                (expr_list:REG_UNUSED (reg:CC 17 flags)
                    (nil))))))
testcase-manual.ii:20:1: internal compiler error: in spill_failure, at
reload1.c:2141
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.

Tested versions:
trunk r154953 crash
trunk r154886 crash
trunk r154830 crash
trunk r153685 crash
4.4 r154975 crash
4.4 r154724 crash
4.4 r154216 crash
4.4.2 (gentoo) crash
4.3.4 4.2.4 4.1.2 3.4.6 3.3.6 (all gentoo) OK


Full output:
$ /mnt/svn/gcc-trunk/binary-154953-lto/bin/g++ -O1 -fschedule-insns
-fselective-scheduling -o tmp.o testcase-manual.ii -c -v
Using built-in specs.
COLLECT_GCC=/mnt/svn/gcc-trunk/binary-154953-lto/bin/g++
COLLECT_LTO_WRAPPER=/mnt/svn/gcc-trunk/binary-154953-lto/libexec/gcc/x86_64-unknown-linux-gnu/4.5.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ../configure --enable-languages=c,c++,lto
--prefix=/mnt/svn/gcc-trunk/binary-154953-lto
Thread model: posix
gcc version 4.5.0 20091203 (experimental) (GCC)
COLLECT_GCC_OPTIONS='-O1' '-fschedule-insns' '-fselective-scheduling' '-o'
'tmp.o' '-c' '-v' '-shared-libgcc' '-mtune=generic'

/mnt/svn/gcc-trunk/binary-154953-lto/libexec/gcc/x86_64-unknown-linux-gnu/4.5.0/cc1plus
-fpreprocessed testcase-manual.ii -quiet -dumpbase testcase-manual.ii
-mtune=generic -auxbase-strip tmp.o -O1 -version -fschedule-insns
-fselective-scheduling -o /tmp/ccpvVv5N.s
GNU C++ (GCC) version 4.5.0 20091203 (experimental) (x86_64-unknown-linux-gnu)
        compiled by GNU C version 4.5.0 20091203 (experimental), GMP version
4.3.1, MPFR version 2.4.1-p5, MPC version 0.8
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
GNU C++ (GCC) version 4.5.0 20091203 (experimental) (x86_64-unknown-linux-gnu)
        compiled by GNU C version 4.5.0 20091203 (experimental), GMP version
4.3.1, MPFR version 2.4.1-p5, MPC version 0.8
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
Compiler executable checksum: 4b09d9924550b4f9676aafda3b16134c
testcase-manual.ii: In function &#8216;void testsum(ms*)&#8217;:
testcase-manual.ii:20:1: error: unable to find a register to spill in class
&#8216;AREG&#8217;
testcase-manual.ii:20:1: error: this is the insn:
(insn 26 24 27 2 testcase-manual.ii:16 (parallel [
            (set (reg:SI 5 di [83])
                (div:SI (reg:SI 5 di [orig:82 a_2(D)->n ] [82])
                    (reg:SI 2 cx [85])))
            (set (reg:SI 1 dx [84])
                (mod:SI (reg:SI 5 di [orig:82 a_2(D)->n ] [82])
                    (reg:SI 2 cx [85])))
            (clobber (reg:CC 17 flags))
        ]) 352 {*divmodsi4} (expr_list:REG_DEAD (reg:SI 2 cx [85])
        (expr_list:REG_DEAD (reg:SI 5 di [orig:82 a_2(D)->n ] [82])
            (expr_list:REG_UNUSED (reg:SI 1 dx [84])
                (expr_list:REG_UNUSED (reg:CC 17 flags)
                    (nil))))))
testcase-manual.ii:20:1: internal compiler error: in spill_failure, at
reload1.c:2141
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.


-- 
           Summary: ICE: 'error: unable to find a register to spill in class
                    "AREG"' with -fschedule-insns
           Product: gcc
           Version: 4.4.3
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: rtl-optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: zsojka at seznam dot cz
  GCC host triplet: x86_64-pc-linux-gnu


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

Reply via email to