r274707 - in /trunk/gcc: ChangeLog calls.c call...

rsandifo@gcc.gnu.org rsandifo@gcc.gnu.org
Tue Aug 20 08:54:00 GMT 2019


Author: rsandifo
Date: Tue Aug 20 08:54:03 2019
New Revision: 274707

URL: https://gcc.gnu.org/viewcvs?rev=274707&root=gcc&view=rev
Log:
Add a pass_by_reference flag to function_arg_info

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-20  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.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/calls.c
    trunk/gcc/calls.h
    trunk/gcc/function.c



More information about the Gcc-cvs mailing list