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 ‘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. -- 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