Describing multi-register values in RTL
Ian Lance Taylor
iant@google.com
Fri Oct 22 04:11:00 GMT 2010
Paul Koning <paul_koning@Dell.com> writes:
> To take that example, on the pdp11 an SImode is two HImodes. Could
> the RTL template in the MD file for, say, addsi3 split that into two
> or three insns that operate on HImode values and describe the actual
> instructions? In this case: add high parts, then add low parts and
> propagate carry into high. Split that way it would seem you would not
> be constrained to adjacent registers, or for that matter to both being
> registers at all.
The lower subreg pass will do that for you if you have the right set of
insns.
It's not ideal to do it at expand time because it will inhibit the RTL
CSE and loop optimizers and some of the optimizations done by combine.
Those passes are not criticial, but they do have some effect.
Ian
More information about the Gcc
mailing list