On 8/19/19 9:22 AM, Richard Sandiford wrote: > This patch adds a function_arg_info field to assign_parm_data_one, > so that: > > - passed_type -> arg.type > - promoted_mode -> arg.mode > - named_arg -> arg.named > > We can then pass this function_arg_info directly to the converted > hooks. > > Between the initialisation of the assign_parm_data_one and the > application of promotion rules (which is a state internal to > assign_parm_find_data_types), arg.mode is equivalent to passed_mode > (i.e. to TYPE_MODE). > > > 2019-08-19 Richard Sandiford <richard.sandif...@arm.com> > > gcc/ > * function.c (assign_parm_data_one): Replace passed_type, > promoted_mode and named_arg with a function_arg_info field. > (assign_parm_find_data_types): Remove local variables and > assign directly to "data". Make data->passed_mode shadow > data->arg.mode until promotion, then assign the promoted > mode to data->arg.mode. > (assign_parms_setup_varargs, assign_parm_find_entry_rtl) > (assign_parm_find_stack_rtl, assign_parm_adjust_entry_rtl) > (assign_parm_remove_parallels, assign_parm_setup_block_p) > (assign_parm_setup_block, assign_parm_setup_reg) > (assign_parm_setup_stack, assign_parms, gimplify_parameters): Use > arg.mode instead of promoted_mode, arg.type instead of passed_type > and arg.named instead of named_arg. Use data->arg for > function_arg_info structures that had the field values passed_type, > promoted_mode and named_arg. Base other function_arg_infos on > data->arg, changing the necessary properties. OK jeff