http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46793
Summary: -fschedule-insns causes ICE in compiling zlib/trees.c Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: rtl-optimization AssignedTo: unassig...@gcc.gnu.org ReportedBy: changpeng.f...@amd.com -fschedule-insns causes ICE in compiling zlib/trees.c: trees.c:701:1: error: unable to find a register to spill in class ‘Q_REGS’ This failure only occurs for -m32 compilation. To reproduce: cd trunk/zlib gcc trees.c -c -o ~/tree.o -O2 -fschedule-insns -m32 [~/gcc-4.6-20101120/zlib]$ gcc trees.c -c -o ~/tree.o -O2 -fschedule-insns -m32 trees.c: In function ‘build_tree’: trees.c:701:1: error: unable to find a register to spill in class ‘Q_REGS’ trees.c:701:1: error: this is the insn: (insn 473 429 164 18 (set (subreg:SI (reg:QI 83 [ iftmp.7 ]) 0) (if_then_else:SI (ltu (reg:CC 17 flags) (const_int 0 [0])) (subreg:SI (reg:QI 388) 0) (subreg:SI (reg:QI 83 [ iftmp.7 ]) 0))) trees.c:677 854 {*movsicc_noc} (expr_list:REG_DEAD (reg:QI 388) (expr_list:REG_DEAD (reg:CC 17 flags) (nil)))) trees.c:701:1: internal compiler error: in spill_failure, at reload1.c:2105 Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. This should be a regression (I only know 4.3 is working)