small CSE bugfix
Denis Chertykov
denisc@overta.ru
Thu Jul 26 10:35:00 GMT 2001
Denis Chertykov <denisc@overta.ru> writes:
> Richard Henderson <rth@redhat.com> writes:
>
> > On Tue, Jul 24, 2001 at 12:07:17AM +0400, Denis Chertykov wrote:
> > > IMHO: my previous patch was not correct.
> > >
> > > Better patch.
> >
> > > ! validate_change (x, &XEXP (x, 0),
> > > ! cse_process_notes (XEXP (x, 0), x), 0);
> >
> > How can this be right? You're ignoring the result of validate_change.
>
> Really I copied this from the end of the `cse_process_notes':
>
>
> for (i = 0; i < GET_RTX_LENGTH (code); i++)
> if (fmt[i] == 'e')
> validate_change (object, &XEXP (x, i),
> cse_process_notes (XEXP (x, i), object), 0);
>
> return x;
> }
>
> I think it's equal to:
>
> {
> rtx old = XEXP (x, 0);
> XEXP (x, 0) = cse_process_notes (XEXP (x, 0), x);
> if (! memory_address_p (GET_MODE (x), x))
> XEXP (x, 0) = old;
> }
>
> IMHO: it's more safe than old string:
> XEXP (x, 0) = cse_process_notes (XEXP (x, 0), x);
>
> Denis.
How about my patch ?
Denis.
More information about the Gcc-patches
mailing list