------- Comment #6 from steven at gcc dot gnu dot org  2006-07-22 11:08 -------
In the greg dump we have this RTL:

(insn:HI 10 8 11 2 (parallel [
            (set (reg:SI 58 [ D.1540 ])
                (plus:SI (reg/v:SI 5 di [ reg ])
                    (const_int -4 [0xfffffffffffffffc])))
            (clobber (reg:CC 17 flags))
        ]) 208 {*addsi_1} (nil)
    (expr_list:REG_UNUSED (reg:CC 17 flags)
        (expr_list:REG_DEAD (reg/v:SI 5 di [ reg ])
            (expr_list:REG_UNUSED (reg:CC 17 flags)
                (nil)))))

(insn:HI 11 10 12 2 (set (reg/v:SI 5 di [ reg ])
        (reg:SI 58 [ D.1540 ])) 40 {*movsi_1} (insn_list:REG_DEP_TRUE 10 (nil))
    (nil))

(insn:HI 12 11 13 2 (set (reg:CCNO 17 flags)
        (compare:CCNO (mem:SI (reg:SI 58 [ D.1540 ]) [3 S4 A32])
            (const_int 0 [0x0]))) 3 {*cmpsi_ccno_1} (nil)
    (expr_list:REG_DEAD (reg:SI 58 [ D.1540 ])
        (nil)))

reg 5 and pseudoreg 58 can share the same hard register (i.e. 58 renumbers to
5) but GCC concludes that the two regs conflict.


-- 

steven at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |ra


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21596

Reply via email to