http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54472
Bug #: 54472 Summary: ICE (spill_failure): unable to find a register to spill in class 'AREG' with -O -fschedule-insns -fselective-scheduling Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: rtl-optimization AssignedTo: unassig...@gcc.gnu.org ReportedBy: zso...@seznam.cz Created attachment 28125 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=28125 reduced testcase Compiler output: $ gcc -O -fschedule-insns -fselective-scheduling testcase.c testcase.c: In function 'main': testcase.c:6:1: error: unable to find a register to spill in class 'AREG' } ^ testcase.c:6:1: error: this is the insn: (insn 9 25 22 2 (parallel [ (set (reg:DI 2 cx [63]) (const_int 0 [0])) (set (reg/f:DI 5 di [61]) (plus:DI (ashift:DI (reg:DI 2 cx [63]) (const_int 3 [0x3])) (reg/f:DI 1 dx [60]))) (set (mem/c:BLK (reg/f:DI 1 dx [60]) [0 MEM[(void *)&a]+0 S104 A64]) (const_int 0 [0])) (use (reg:DI 4 si [62])) (use (reg:DI 2 cx [63])) ]) testcase.c:4 890 {*rep_stosdi_rex64} (expr_list:REG_DEAD (reg:DI 4 si [62]) (expr_list:REG_DEAD (reg/f:DI 1 dx [60]) (expr_list:REG_UNUSED (reg:DI 2 cx [63]) (expr_list:REG_UNUSED (reg/f:DI 5 di [61]) (nil)))))) testcase.c:6:1: internal compiler error: in spill_failure, at reload1.c:2127 Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. (gdb) bt #0 0x0000000001130b50 in fancy_abort(char const*, int, char const*) () #1 0x000000000096d5fb in _fatal_insn(char const*, rtx_def const*, char const*, int, char const*) () #2 0x000000000096c6d0 in reload(rtx_def*, int) () at /mnt/svn/gcc-trunk/gcc/reload1.c:2127 #3 0x000000000087eba2 in rest_of_handle_reload() () at /mnt/svn/gcc-trunk/gcc/ira.c:4328 #4 0x000000000090092f in execute_one_pass(opt_pass*) () at /mnt/svn/gcc-trunk/gcc/passes.c:2157 #5 0x0000000000900ce5 in execute_pass_list(opt_pass*) () at /mnt/svn/gcc-trunk/gcc/passes.c:2212 #6 0x0000000000900cf7 in execute_pass_list(opt_pass*) () at /mnt/svn/gcc-trunk/gcc/passes.c:2213 #7 0x00000000006bdd88 in expand_function(cgraph_node*) () at /mnt/svn/gcc-trunk/gcc/cgraphunit.c:1609 #8 0x00000000006bfc2a in compile() () at /mnt/svn/gcc-trunk/gcc/cgraphunit.c:1714 #9 0x00000000006c0225 in finalize_compilation_unit() () at /mnt/svn/gcc-trunk/gcc/cgraphunit.c:2089 #10 0x00000000005a1dc0 in c_write_global_declarations() () at /mnt/svn/gcc-trunk/gcc/c/c-decl.c:10116 #11 0x00000000009e8475 in compile_file() () at /mnt/svn/gcc-trunk/gcc/toplev.c:560 #12 0x00000000009ea03a in toplev_main(int, char**) () at /mnt/svn/gcc-trunk/gcc/toplev.c:1863 #13 0x00007ffff6e784bd in __libc_start_main () from /lib64/libc.so.6 #14 0x0000000000584d01 in _start () Tested revisions: r190830 - crash 4.7 r188682 - crash 4.6 r188682 - crash 4.5 r188682 - crash 4.4 r188682 - crash