This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PTR-PLUS merge into the mainline


Hi,

On Thu, 5 Jul 2007, Richard Guenther wrote:

> > > The code to fold_binary was added by:
> > > r107218 | rguenth | 2005-11-19 03:29:10 -0800 (Sat, 19 Nov 2005) | 9 lines
> > > 
> > > 2005-11-19  Richard Guenther  <rguenther@suse.de>
> > > 
> > >        PR middle-end/23294
> > >        * fold-const.c (fold_plusminus_mult_expr): New function.
> > >        (fold_binary): Use to canonicalize PLUS_EXPR and MINUS_EXPR
> > >        cases, remove now unnecessary code.
> > > 
> > >        * gcc.dg/tree-ssa/pr23294.c: New testcase.
> > > 
> > > And it looks like it was doing this transformation this way on purpose.
> > > Now as I mentioned before the way this should be done is using PRE/FRE
> > > to catch the redudent multiplication.
> > 
> > I have to agree, IMHO it looks this optimization is done to early.
> > Richard, it would be great if you comment on this.
> > Thanks.
> 
> No, the fold code just does canonicalization.  If you remove that you
> just switch the cases that are not handled.

What makes "(i + 1) * 4" the canonical form of "(i * 4) + 4" compared to 
other expressions like "(i * 4) + 8"?

>  The real fix is in the
> value numberer that should value number both kinds the same.

Sorry, I have no idea what this means.

bye, Roman


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]