[Bug rtl-optimization/20527] [4.1, 4.0 regression] Mishandling of postincrement causes bzip2 miscompilation.

hp at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Fri Mar 18 04:29:00 GMT 2005


------- Additional Comments From hp at gcc dot gnu dot org  2005-03-18 04:29 -------
The rtl dump for combine shows the first unmistakable sign of miscompilation:

(insn 35 34 36 2 (set (reg:SI 40)
        (mem:SI (post_inc:SI (reg:SI 31 [ ivtmp.5 ])) [3 S4 A8])) 32
{*movsi_internal} (nil)
    (expr_list:REG_INC (reg:SI 31 [ ivtmp.5 ])
        (nil)))

(note 36 35 37 2 NOTE_INSN_DELETED)

(insn 37 36 38 2 (set (reg:SI 42)
        (minus:SI (reg:SI 40)
            (mem:SI (plus:SI (reg:SI 31 [ ivtmp.5 ])
                    (const_int -4 [0xfffffffc])) [3 S4 A8]))) 70 {subsi3}
(insn_list:REG_DEP_TRUE 35 (nil))
    (expr_list:REG_INC (reg:SI 31 [ ivtmp.5 ])
        (expr_list:REG_DEAD (reg:SI 40)
            (nil))))

In contrast, the life pass just before it, looks right around this point.
Note also the REG_INC note on insn 37.  Looks spurious.


-- 


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



More information about the Gcc-bugs mailing list