Richard Sandiford <rdsandif...@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