This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
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
>