This is the mail archive of the gcc-patches@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: [PATCH] Improve lim for pulling loads from global variable out of loops


Hello,

> > > > if (!is_gimple_reg (rhs))
> > > >    cost += 20;
> > > 
> > > This would cause us to count any operation except for simple reg = reg
> > > copy as expensive, which definitely is not what is wanted.
> > > 
> > Huh?  Absolutely not.  Read the predicate again.  If the RHS is a
> > register, we don't increase the cost.
> > 
> Never mind.  I mis-read your paragraph, sorry.
> 
> Yes, this would make reg = CST, expensive.

more importantly, for example

reg = reg + reg

would be considered expensive.

> So, if you only want to make
> memory stores and loads expensive, you can ask it directly with:
> 
>   if (NUM_VUSES (VUSE_OPS (ann)) > 0
>       || NUM_V_MAY_DEFS (V_MAY_DEF_OPS (ann)) > 0
>       || NUM_V_MUST_DEFS (V_MUST_DEF_OPS (ann)) > 0))
>     cost += 20;
> 
> (this whole expression should probably be implemented into a predicate).

This seems like a good idea.  I will send the patch once it passes
testing.

Zdenek


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