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: [rtlopt] Store motion rewrite



On Thu, 13 Feb 2003, Zdenek Dvorak wrote:

> Hello,
>
> > - /* Return non-zero if the register operands of expression X are killed
> > -    anywhere in basic block BB.  */
> > + /* Return zero if the register operands of expression X are killed
> > +    due to set of registers in bitmap REGS_SET.  */
> >
> > I am glad that the function now is consistent, correcting the reversed
> > logic.
>
> actually it was already, just the comment was wrong.

No, actually, it was, and you fixed it.
look at your patch.
You replaced:
 /* If a reg has changed after us in this
           block, the operand has been killed.  */
        return TEST_BIT (reg_set_in_block[bb->index], REGNO (x));

with
  /* If a reg has changed, the operand has been killed.  */
        return !regs_set[REGNO(x)];



Before, if a reg was set, it would return 1.
now, if a reg is set, it returns 0.


>
> > 	Did you look at Daniel's optimization of build_store_vectors() to
> > make store_motion extremely fast?  I do not know if that optimization is
> > subsumed by your optimizations of find_moveable_store() and
> > compute_store_table().
>
> no I haven't seen this; where could I find it?

I have it somewhere, let me dig it up.

>
> Zdenek
>


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