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


Hello,

> > what is the purpose of the following code in ix86_address_cost:
> > 
> >   /* More complex memory references are better.  */
> >   if (parts.disp && parts.disp != const0_rtx)
> >      cost--;
> > ?
> > 
> > It in effect claims that [reg] is more expensive than [reg - 4].
> > This leads ivopts to generate pretty weird code; for example on code
> > of type
> 
> The main idea behind this hack is to force CSE to use complex addressing
> modes (ie if it uses reg-4 instead of reg2, one might hope for that
> "reg2=reg-4" statement will get dead and elliminated completely).
> 
> This would ineed be interesting thing to re-benchmark so we see if it
> still does any good.

this seems like a quite terrible way how to persuade CSE to do this.  Would
not it be better to add this "complicated address" bonus directly in
CSE, and let address_cost do just what it is supposed to -- compute cost of
the address?

Zdenek


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