[PATCH 0/7] Shrink some rtxes

Richard Sandiford rdsandiford@googlemail.com
Sat May 10 20:25:00 GMT 2014


Richard Sandiford <rdsandiford@googlemail.com> writes:
> Until the wide-int merge there was a 32-bit hole on 64-bit hosts between
> the end of the rtx flags and the start of the first field.  It was decided
> that CONST_WIDE_INT should use this hole to store the number of HWIs.
>
> This patch series moves the "i" and int-typed "0" fields of some
> other rtxes to this region.  It mostly has to be "0" fields though.
> There are other rtxes like ADDRESS and SUBREG (for the SUBREG_BYTE)
> that would benefit in principle, but this would break various bits
> of code that use GET_RTX_FORMAT.  Probably the most difficult format
> user to update is genrecog.
>
> UNSPEC and UNSPEC_VOLATILE would also benefit, but the bigger saving
> there -- and for things like PARALLEL and CONST_VECTOR -- would be
> to use a trailing array for the rtxes instead of a separate rtvec.
> Something like a 24/8 split between the unspec number and number
> of subrtxes should be plenty.
>
> Tested on x86_64-linux-gnu.

Forgot to say that I also checked that the -da -fdump-noaddr output for
some -O2 -g tests was indentical before and after the patch.

Thanks,
Richard



More information about the Gcc-patches mailing list