------- Additional Comments From law at redhat dot com  2005-03-02 18:23 -------
Subject: Re:  [meta-bug] optimizations that CSE still
        catches

On Wed, 2005-03-02 at 11:50 +0000, steven at gcc dot gnu dot org wrote:
> ------- Additional Comments From steven at gcc dot gnu dot org  2005-03-02 
> 11:50 -------
> Here is a nice one: 
>  
> Working on insn: 
> (insn 215 214 216 15 (parallel [ 
>             (set (reg:DI 176) 
>                 (ashift:DI (reg:DI 175) 
>                     (const_int 3 [0x3]))) 
>             (clobber (reg:CC 17 flags)) 
>         ]) -1 (nil) 
>     (expr_list:REG_EQUAL (mult:DI (reg:DI 174) 
>             (const_int 8 [0x8])) 
>         (nil))) 
> Trying to fold rtx: 
> (mult:DI (reg:DI 174) 
>     (const_int 8 [0x8])) 
> Returning new rtx: 
> (ashift:DI (reg:DI 174) 
>     (const_int 3 [0x3])) 
>  
> Sometimes I just hate REG_EQUAL notes... 
Am I missing something here?  I guess I'm not sure what point you're
trying to make.

It seems to me that (reg 174) must be equal to (reg 175) for the
REG_EQUAL note to be valid.  Which means they must either be set
from equivalent expressions or we must have a copy insn between
them.

In the former case (set from equivalent expressions) we should
figure out why DOM or PRE didn't catch the redundancy.

In the latter case we'd want to see why we didn't copy propagate
the copy.

[ It's possible the copy occurs due to tree->rtl expansion -- there's
  still a fair number of ways to get silly copies at that phase.  In
  which case we need to look into ways to eliminate the silly copies.

  IIRC some come from lameness in the API for some of our conversion
  routines. ]

jeff  



-- 


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

Reply via email to