I have some plans to "clean up" the machine_mode handling and perhaps make it hierarchical, so that functions that can only handle scalar integer modes (say) will be able to take a scalar_int_mode rather than a machine_mode as argument. The first step would be to do a blanket removal of the (in C++) redundant "enum" from all those "enum machine_mode" variables, parameters and fields.
Regardless of whether the hierarchy sounds like a good idea, would removing the "enum" be OK? There's never a good time for that much churn, but since the release branches are fairly mature and since we already have quite a bit of churn in rtl land between 4.9 and 5, now seemed like as good a time as any. Thanks, Richard