------- Additional Comments From hubicka at ucw dot cz 2004-10-25 09:20 ------- Subject: Re: arguments being gimple registers cause redundant memory loads
> > ------- Additional Comments From pinskia at gcc dot gnu dot org 2004-10-25 03:33 > ------- > This is really a rtl problem, the problem comes from greg. before that we have: > (insn:HI 7 11 8 0 (set (reg/v:SI 68 [ start ]) > (mem/i:SI (reg/f:SI 16 argp) [3 start+0 S4 A32])) 44 {*movsi_1} (nil) > (expr_list:REG_EQUIV (mem/i:SI (reg/f:SI 16 argp) [3 start+0 S4 A32]) > (nil))) > > (insn:HI 16 9 18 0 (set (reg/v:SI 66 [ median ]) > (mem/s:SI (plus:SI (mult:SI (reg/v:SI 68 [ start ]) > (const_int 4 [0x4])) > (symbol_ref:SI ("data") <var_decl 0x416db6c8 data>)) [3 data S4 > A32])) 44 {*movsi_1} > (insn_list:REG_DEP_TRUE 7 (nil)) > (nil)) > > (insn:HI 18 16 20 0 (parallel [ > (set (reg/v:SI 60 [ pos.22 ]) > (plus:SI (reg/v:SI 68 [ start ]) > (const_int 1 [0x1]))) > (clobber (reg:CC 17 flags)) > ]) 200 {*addsi_1} (nil) > (expr_list:REG_UNUSED (reg:CC 17 flags) > (expr_list:REG_UNUSED (reg:CC 17 flags) > (nil)))) > > (insn:HI 20 18 21 0 (parallel [ > (set (reg:SI 71) > (minus:SI (reg/v:SI 69 [ end ]) > (reg/v:SI 68 [ start ]))) > (clobber (reg:CC 17 flags)) > ]) 233 {*subsi_1} (insn_list:REG_DEP_TRUE 8 (nil)) > (expr_list:REG_UNUSED (reg:CC 17 flags) > (expr_list:REG_UNUSED (reg:CC 17 flags) > (nil)))) Yep, I was sleepy enought to missread the patterns and mess up the bug entry, sorry for that. Hmm, this does not look that bad after all, but still the 20% slowdown in the loop is interesting, I will look into it deeper later today. Honza -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18137