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