> Personally, I think that builtin_apply_args should go away, but what are > your thoughts on the rest of the thread. Richard didn't respond to my > last mail in the thread here: > > http://gcc.gnu.org/ml/gcc-patches/2004-03/msg02184.html
I'm with Richard on this, I think reg_raw_mode is not appropriate for apply_result_size at least. > From my re-reading (it's been over a year here), I think the > FUNCTION_VALUE_REGNO_P "suggestion" is wrong as it's lying to the rest > of the compiler. At any rate, what entry are you getting for sparc? How > is the comment in regclass.c for reg_raw_mode's initialization not > working? You mean this? /* For each hard register, the widest mode object that it can contain. This will be a MODE_INT mode if the register can hold integers. Otherwise it will be a MODE_FLOAT or a MODE_CC mode, whichever is valid for the register. */ But take a look at the head comment for init_reg_modes_once: /* Compute the table of register modes. These values are used to record death information for individual registers (as opposed to a multi-register mode). */ So clearly reg_raw_mode describes the widest mode of a *single* hard register. Now, before your change, apply_result_size computed the widest mode of *multi* hard registers, that's not the same thing. -- Eric Botcazou