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.

Reply via email to