This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [13/13] Add a pass_by_reference flag to function_arg_info


On 8/19/19 9:24 AM, Richard Sandiford wrote:
> This patch adds a flag that tells targets whether an argument
> has been converted to pass-by-reference form.  This replaces
> assign_parm_data_one::passed_pointer in function.c.
> 
> The flag is set automatically for places that call
> apply_pass_by_reference_rules.  Places that apply
> pass-by-reference manually need to set it themselves.
> 
> (After previous changes, no targets apply pass-by-reference
> manually.  They all go through apply_pass_by_reference_rules.)
> 
> 
> 2019-08-19  Richard Sandiford  <richard.sandiford@arm.com>
> 
> gcc/
> 	* calls.h (function_arg_info): Add a pass_by_reference field,
> 	defaulting to false.
> 	* calls.c (apply_pass_by_reference_rules): Set pass_by_reference
> 	when applying pass-by-reference semantics.
> 	(initialize_argument_information): Likewise.
> 	(emit_library_call_value_1): Likewise.
> 	* function.c (assign_parm_data_one): Remove passed_pointer field.
> 	(assign_parm_find_data_types): Don't set it.
> 	(assign_parm_find_stack_rtl, assign_parm_adjust_stack_rtl)
> 	(assign_parm_setup_reg, assign_parms, gimplify_parameters): Use
> 	arg.pass_by_reference instead of passed_pointer.
> 
OK.  I think that's the whole series.  I don't expect any problems, but
my tester will pick testing across the various targets ~24hrs after
you've committed the changes.

jeff


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]