There are some target-specific types that are embedded in otherwise
target-independent types, namely struct machine_function and
CUMULATIVE_ARGS (which is the type of the info member of struct incoming_args).

For the multi-target configurations as per PR44566 to work, these types
have to be encapsulated in a union, and the individual ports need accessor
macros to get at their individual fields.  That means all targets that
use these fields must be changed.
There is also the asm_clobbers field in rtl_data, which is of type HARD_REG_SET,
and this also has to be changed into a union for safe operation, although
in this case it is only target-independent code that needs to use the accessor
macro.

Would patches to introduce these accessor macros be considered separately,
or should I only submit them as part of the big patch for PR44566?
(That patch is currently weighting in at 653689 bytes, I need to add some
 more target code to complete the target coverage for the accessor macros and
 enum regset -> int changes, that's likely to add a few scores of kilobytes)

Likewise, I need to remove 'enum reg_class' from the target hook interface,
because this means something different for each target, and with C++ even the
width of the type and the position where the information is passed might vary.
My approach is to replace enum reg_class in the hook interface with int.
Would patches for this be considered separately?

Reply via email to