On 8/19/19 9:21 AM, Richard Sandiford wrote: > This patch adds a helper routine that applies pass-by-reference > semantics to an existing function_arg_info. > > The c6x part means that c6x_function_arg and c6x_function_arg_advance > see the same "named" value as pass_by_reference did, rather than > pass_by_reference seeing "true" and the others seeing "false". > This doesn't matter because the c6x port doesn't care about namedness. > > The rs6000.c patch removes an assignment to "type", but the only > later code to use it was the patched promote_mode line. > > (The reason for patching these places despite the above is that > often target code gets used as a basis for new targets or changes > to existing ones.) > > > 2019-08-19 Richard Sandiford <richard.sandif...@arm.com> > > gcc/ > * calls.h (apply_pass_by_reference_rules): Declare. > * calls.c (apply_pass_by_reference_rules): New function. > * config/c6x/c6x.c (c6x_call_saved_register_used): Use it. > * config/rs6000/rs6000-call.c (rs6000_parm_needs_stack): Likewise. > * config/s390/s390.c (s390_call_saved_register_used): Likewise. > * function.c (assign_parm_find_data_types): Likewise. > * var-tracking.c (prepare_call_arguments): Likewise. > OK jeff