http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46843
Summary: ICE: in spill_failure, at reload1.c:2157 -fschedule-insns -fsched-pressure when using doubles Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: rtl-optimization AssignedTo: unassig...@gcc.gnu.org ReportedBy: zso...@seznam.cz Host: x86_64-pc-linux-gnu Target: x86_64-pc-linux-gnu Created attachment 22677 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=22677 reduced testcase Compiler output: $ gcc -O -fschedule-insns -fsched-pressure pr46843.c pr46843.c: In function 'foo': pr46843.c:9:1: error: unable to find a register to spill in class 'CREG' pr46843.c:9:1: error: this is the insn: (insn 19 50 9 2 (parallel [ (set (reg/v:SI 0 ax [orig:63 n ] [63]) (ashift:SI (reg:SI 0 ax [84]) (reg:QI 37 r8 [ s ]))) (clobber (reg:CC 17 flags)) ]) pr46843.c:3 497 {*ashlsi3_1} (expr_list:REG_DEAD (reg:SI 0 ax [84]) (expr_list:REG_DEAD (reg:QI 37 r8 [ s ]) (expr_list:REG_UNUSED (reg:CC 17 flags) (nil))))) pr46843.c:9: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. -mdispatch-scheduler -march=bdver1 doesn't help in this case (opposing to PR46829) Tested revisions: r167471 - fail 4.5 r166509 - fail