http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49927
Uros Bizjak <ubizjak at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Target| |i686-pc-linux-gnu Status|UNCONFIRMED |NEW Keywords| |ra Last reconfirmed| |2011.08.01 08:07:57 Component|c |rtl-optimization CC| |vmakarov at gcc dot gnu.org Ever Confirmed|0 |1 Summary|ice in spill_failure, at |[4.7 Regression] ice in |reload1.c:2120 |spill_failure, at | |reload1.c:2120 Target Milestone|--- |4.7.0 Known to fail| |4.7.0 --- Comment #1 from Uros Bizjak <ubizjak at gmail dot com> 2011-08-01 08:07:58 UTC --- Register allocator failure: We have: (insn 9 8 10 2 (set (mem/s/j:QI (plus:SI (plus:SI (subreg:SI (reg:DI 60 [ g_91.1 ]) 0) (subreg:SI (reg:DI 59 [ g_91.0 ]) 0)) (symbol_ref:SI ("g_73") <var_decl 0x2b6b55451140 g_73>)) [0 g_73 S1 A8]) (reg:QI 62 [ D.1999 ])) pr49927.c:6 66 {*movqi_internal} (nil)) Reloads for insn # 9 Reload 0: reload_in (DI) = (reg:DI 60 [ g_91.1 ]) GENERAL_REGS, RELOAD_FOR_OPERAND_ADDRESS (opnum = 0) reload_in_reg: (reg:DI 60 [ g_91.1 ]) Reload 1: reload_in (DI) = (reg:DI 59 [ g_91.0 ]) INDEX_REGS, RELOAD_FOR_OPERAND_ADDRESS (opnum = 0) reload_in_reg: (reg:DI 59 [ g_91.0 ]) Reload 2: reload_in (QI) = (reg:QI 4 si [orig:62 D.1999 ] [62]) Q_REGS, RELOAD_FOR_INPUT (opnum = 1) reload_in_reg: (reg:QI 4 si [orig:62 D.1999 ] [62]) Register si is not valid for QImode on 32bit x86. GCC 4.4 works OK, so confirmed regression on x86_64-pc-linux-gnu with -O0 -m32.