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

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


Author: rsandifo
Date: Tue Aug 20 08:52:17 2019
New Revision: 274697

URL: https://gcc.gnu.org/viewcvs?rev=274697&root=gcc&view=rev
Log:
Use function_arg_info for TARGET_ARG_PARTIAL_BYTES

This patch adds the function_arg_info class and uses it for
TARGET_ARG_PARTIAL_BYTES.

The hook is passed the promoted mode instead of the original type mode.

The arguments aren't mentioned in the documentation, which is why the
target.def change is so small.

The patch changes "true" to "arg.named" in:

  gcc_assert (!epiphany_pass_by_reference (cum, mode, type, /* named */ true));

but epiphany_pass_by_reference doesn't care about the named flag.

2019-08-20  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
	* target.def (arg_partial_bytes): Take a function_arg_info instead
	of a mode, type and named flag.
	* doc/tm.texi: Regenerate.
	* target.h (function_arg_info): Declare.
	* calls.h (function_arg_info): New class.
	* targhooks.h (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Delete.
	(hook_int_CUMULATIVE_ARGS_arg_info_0): Declare.
	* targhooks.c (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Delete.
	(hook_int_CUMULATIVE_ARGS_arg_info_0): New function.
	* calls.c (initialize_argument_information): Update call to
	targetm.calls.partial_bytes.
	(emit_library_call_value_1): Likewise.
	* expr.c (block_move_libcall_safe_for_call_parm): Likewise.
	* function.c (assign_parm_find_entry_rtl): Likewise.
	* config/alpha/alpha.c (alpha_arg_partial_bytes): Take a
	function_arg_info instead of a mode, type and named flag.
	* config/arc/arc.c (arc_arg_partial_bytes): Likewise.
	* config/arm/arm.c (arm_arg_partial_bytes): Likewise.
	(cmse_func_args_or_return_in_stack): Update accordingly.
	* config/bfin/bfin.c (bfin_arg_partial_bytes): Take a
	function_arg_info instead of a mode, type and named flag.
	* config/cris/cris.c (cris_arg_partial_bytes): Likewise.
	* config/csky/csky.c (csky_arg_partial_bytes): Likewise.
	* config/epiphany/epiphany.c (epiphany_arg_partial_bytes): Likewise.
	* config/fr30/fr30.c: Include calls.h.
	(fr30_arg_partial_bytes): Take a function_arg_info instead of a mode,
	type and named flag.
	* config/frv/frv.c: Include calls.h.
	(frv_arg_partial_bytes): Take a function_arg_info instead of a mode,
	type and named flag.
	* config/ft32/ft32.c (ft32_arg_partial_bytes): Likewise.
	* config/gcn/gcn.c (gcn_arg_partial_bytes): Likewise.
	* config/ia64/ia64.c (ia64_arg_partial_bytes): Likewise.
	* config/iq2000/iq2000.c (iq2000_arg_partial_bytes): Likewise.
	* config/m32r/m32r.c (m32r_arg_partial_bytes): Likewise.
	* config/mcore/mcore.c (mcore_arg_partial_bytes): Likewise.
	* config/microblaze/microblaze.c (function_arg_partial_bytes):
	Likewise.
	* config/mips/mips.c (mips_arg_partial_bytes): Likewise.
	* config/mn10300/mn10300.c (mn10300_arg_partial_bytes): Likewise.
	* config/moxie/moxie.c (moxie_arg_partial_bytes): Likewise.
	* config/msp430/msp430.c (msp430_arg_partial_bytes): Likewise.
	* config/nds32/nds32.c (nds32_arg_partial_bytes): Likewise.
	* config/nios2/nios2.c (nios2_arg_partial_bytes): Likewise.
	* config/pa/pa.c (pa_arg_partial_bytes): Likewise.
	* config/pru/pru.c (pru_arg_partial_bytes): Likewise.
	* config/riscv/riscv.c (riscv_arg_partial_bytes): Likewise.
	* config/rs6000/rs6000-internal.h (rs6000_arg_partial_bytes): Likewise.
	* config/rs6000/rs6000-call.c (rs6000_arg_partial_bytes): Likewise.
	(rs6000_parm_needs_stack): Update call accordingly.
	* config/sh/sh.c (sh_arg_partial_bytes): Take a
	function_arg_info instead of a mode, type and named flag.
	* config/sparc/sparc.c (sparc_arg_partial_bytes): Likewise.
	* config/v850/v850.c (v850_arg_partial_bytes): Likewise.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/calls.c
    trunk/gcc/calls.h
    trunk/gcc/config/alpha/alpha.c
    trunk/gcc/config/arc/arc.c
    trunk/gcc/config/arm/arm.c
    trunk/gcc/config/bfin/bfin.c
    trunk/gcc/config/cris/cris.c
    trunk/gcc/config/csky/csky.c
    trunk/gcc/config/epiphany/epiphany.c
    trunk/gcc/config/fr30/fr30.c
    trunk/gcc/config/frv/frv.c
    trunk/gcc/config/ft32/ft32.c
    trunk/gcc/config/gcn/gcn.c
    trunk/gcc/config/ia64/ia64.c
    trunk/gcc/config/iq2000/iq2000.c
    trunk/gcc/config/m32r/m32r.c
    trunk/gcc/config/mcore/mcore.c
    trunk/gcc/config/microblaze/microblaze.c
    trunk/gcc/config/mips/mips.c
    trunk/gcc/config/mn10300/mn10300.c
    trunk/gcc/config/moxie/moxie.c
    trunk/gcc/config/msp430/msp430.c
    trunk/gcc/config/nds32/nds32.c
    trunk/gcc/config/nios2/nios2.c
    trunk/gcc/config/pa/pa.c
    trunk/gcc/config/pru/pru.c
    trunk/gcc/config/riscv/riscv.c
    trunk/gcc/config/rs6000/rs6000-call.c
    trunk/gcc/config/rs6000/rs6000-internal.h
    trunk/gcc/config/sh/sh.c
    trunk/gcc/config/sparc/sparc.c
    trunk/gcc/config/v850/v850.c
    trunk/gcc/doc/tm.texi
    trunk/gcc/expr.c
    trunk/gcc/function.c
    trunk/gcc/target.def
    trunk/gcc/target.h
    trunk/gcc/targhooks.c
    trunk/gcc/targhooks.h



More information about the Gcc-cvs mailing list