------- 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