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

Reply via email to