[PATCH] lra: Canonicalize mult to shift in address reloads

Vladimir Makarov vmakarov@redhat.com
Wed Aug 26 13:19:01 GMT 2020


On 2020-08-26 5:06 a.m., Richard Sandiford wrote:
> Alex Coplan <alex.coplan@arm.com> writes:
>
> Minor nit, should be formatted as:
>
> static rtx
> canonicalize_reload_addr (rtx addr)
Sorry for missing this.  Alex, it should be fixed anyway.
>
> I don't think we should we restrict this to (plus (mult X Y) Z),
> since addresses can be more complicated than that.  One way to
> search for all MULTs is:
>
>    subrtx_iterator::array_type array;
>    FOR_EACH_SUBRTX (iter, array, x, NONCONST)
>      {
>        rtx x = *iter;
>        if (GET_CODE (x) == MULT && CONST_INT_P (XEXP (x, 1)))
>          ...
>      }
>
> (Needs rtl-iter.h)

I am agree it would be nice to process a general case.  Alex, you can do 
this as a separate patch if you want.

Richard, thank you for looking at this patch too.




More information about the Gcc-patches mailing list