mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-21 15:31:09 +08:00
Use function_arg_info for TARGET_CALLEE_COPIES
The hook is passed the unpromoted type mode instead of the promoted mode. The aarch64 definition is redundant, but worth keeping for emphasis. 2019-08-20 Richard Sandiford <richard.sandiford@arm.com> gcc/ * target.def (callee_copies): Take a function_arg_info instead of a mode, type and named flag. * doc/tm.texi: Regenerate. * targhooks.h (hook_callee_copies_named): Take a function_arg_info instead of a mode, type and named flag. (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Delete. (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise. (hook_bool_CUMULATIVE_ARGS_arg_info_true): New function. * targhooks.c (hook_callee_copies_named): Take a function_arg_info instead of a mode, type and named flag. (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Delete. (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise. (hook_bool_CUMULATIVE_ARGS_arg_info_true): New function. * calls.h (reference_callee_copied): Take a function_arg_info instead of a mode, type and named flag. * calls.c (reference_callee_copied): Likewise. (initialize_argument_information): Update call accordingly. (emit_library_call_value_1): Likewise. * function.c (gimplify_parameters): Likewise. * config/aarch64/aarch64.c (TARGET_CALLEE_COPIES): Define to hook_bool_CUMULATIVE_ARGS_arg_info_false instead of hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false. * config/c6x/c6x.c (c6x_callee_copies): Delete. (TARGET_CALLEE_COPIES): Define to hook_bool_CUMULATIVE_ARGS_arg_info_true instead. * config/epiphany/epiphany.c (TARGET_CALLEE_COPIES): Define to hook_bool_CUMULATIVE_ARGS_arg_info_true instead of hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true. * config/mips/mips.c (mips_callee_copies): Take a function_arg_info instead of a mode, type and named flag. * config/mmix/mmix.c (TARGET_CALLEE_COPIES): Define to hook_bool_CUMULATIVE_ARGS_arg_info_true instead of hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true. * config/mn10300/mn10300.c (TARGET_CALLEE_COPIES): Likewise. * config/msp430/msp430.c (msp430_callee_copies): Delete. (TARGET_CALLEE_COPIES): Define to hook_bool_CUMULATIVE_ARGS_arg_info_true instead. * config/pa/pa.c (pa_callee_copies): Take a function_arg_info instead of a mode, type and named flag. * config/sh/sh.c (sh_callee_copies): Likewise. * config/v850/v850.c (TARGET_CALLEE_COPIES): Define to hook_bool_CUMULATIVE_ARGS_arg_info_true instead of hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true. From-SVN: r274702
This commit is contained in:
parent
6930c98c69
commit
7256c7194e
@ -1,3 +1,49 @@
|
||||
2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
|
||||
|
||||
* target.def (callee_copies): Take a function_arg_info instead
|
||||
of a mode, type and named flag.
|
||||
* doc/tm.texi: Regenerate.
|
||||
* targhooks.h (hook_callee_copies_named): Take a function_arg_info
|
||||
instead of a mode, type and named flag.
|
||||
(hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Delete.
|
||||
(hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
|
||||
(hook_bool_CUMULATIVE_ARGS_arg_info_true): New function.
|
||||
* targhooks.c (hook_callee_copies_named): Take a function_arg_info
|
||||
instead of a mode, type and named flag.
|
||||
(hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Delete.
|
||||
(hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
|
||||
(hook_bool_CUMULATIVE_ARGS_arg_info_true): New function.
|
||||
* calls.h (reference_callee_copied): Take a function_arg_info
|
||||
instead of a mode, type and named flag.
|
||||
* calls.c (reference_callee_copied): Likewise.
|
||||
(initialize_argument_information): Update call accordingly.
|
||||
(emit_library_call_value_1): Likewise.
|
||||
* function.c (gimplify_parameters): Likewise.
|
||||
* config/aarch64/aarch64.c (TARGET_CALLEE_COPIES): Define to
|
||||
hook_bool_CUMULATIVE_ARGS_arg_info_false instead of
|
||||
hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false.
|
||||
* config/c6x/c6x.c (c6x_callee_copies): Delete.
|
||||
(TARGET_CALLEE_COPIES): Define to
|
||||
hook_bool_CUMULATIVE_ARGS_arg_info_true instead.
|
||||
* config/epiphany/epiphany.c (TARGET_CALLEE_COPIES): Define to
|
||||
hook_bool_CUMULATIVE_ARGS_arg_info_true instead of
|
||||
hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true.
|
||||
* config/mips/mips.c (mips_callee_copies): Take a function_arg_info
|
||||
instead of a mode, type and named flag.
|
||||
* config/mmix/mmix.c (TARGET_CALLEE_COPIES): Define to
|
||||
hook_bool_CUMULATIVE_ARGS_arg_info_true instead of
|
||||
hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true.
|
||||
* config/mn10300/mn10300.c (TARGET_CALLEE_COPIES): Likewise.
|
||||
* config/msp430/msp430.c (msp430_callee_copies): Delete.
|
||||
(TARGET_CALLEE_COPIES): Define to
|
||||
hook_bool_CUMULATIVE_ARGS_arg_info_true instead.
|
||||
* config/pa/pa.c (pa_callee_copies): Take a function_arg_info
|
||||
instead of a mode, type and named flag.
|
||||
* config/sh/sh.c (sh_callee_copies): Likewise.
|
||||
* config/v850/v850.c (TARGET_CALLEE_COPIES): Define to
|
||||
hook_bool_CUMULATIVE_ARGS_arg_info_true instead of
|
||||
hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true.
|
||||
|
||||
2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
|
||||
|
||||
* target.def (function_arg_advance): Take a function_arg_info instead
|
||||
|
17
gcc/calls.c
17
gcc/calls.c
@ -935,17 +935,15 @@ pass_va_arg_by_reference (tree type)
|
||||
return pass_by_reference (NULL, function_arg_info (type, /*named=*/false));
|
||||
}
|
||||
|
||||
/* Return true if TYPE, which is passed by reference, should be callee
|
||||
/* Return true if ARG, which is passed by reference, should be callee
|
||||
copied instead of caller copied. */
|
||||
|
||||
bool
|
||||
reference_callee_copied (CUMULATIVE_ARGS *ca, machine_mode mode,
|
||||
tree type, bool named_arg)
|
||||
reference_callee_copied (CUMULATIVE_ARGS *ca, const function_arg_info &arg)
|
||||
{
|
||||
if (type && TREE_ADDRESSABLE (type))
|
||||
if (arg.type && TREE_ADDRESSABLE (arg.type))
|
||||
return false;
|
||||
return targetm.calls.callee_copies (pack_cumulative_args (ca), mode, type,
|
||||
named_arg);
|
||||
return targetm.calls.callee_copies (pack_cumulative_args (ca), arg);
|
||||
}
|
||||
|
||||
|
||||
@ -2002,9 +2000,7 @@ initialize_argument_information (int num_actuals ATTRIBUTE_UNUSED,
|
||||
bool callee_copies;
|
||||
tree base = NULL_TREE;
|
||||
|
||||
callee_copies
|
||||
= reference_callee_copied (args_so_far_pnt, TYPE_MODE (type),
|
||||
type, argpos < n_named_args);
|
||||
callee_copies = reference_callee_copied (args_so_far_pnt, orig_arg);
|
||||
|
||||
/* If we're compiling a thunk, pass through invisible references
|
||||
instead of making a copy. */
|
||||
@ -4911,8 +4907,7 @@ emit_library_call_value_1 (int retval, rtx orgfun, rtx value,
|
||||
if (pass_by_reference (&args_so_far_v, orig_arg))
|
||||
{
|
||||
rtx slot;
|
||||
int must_copy
|
||||
= !reference_callee_copied (&args_so_far_v, mode, NULL_TREE, 1);
|
||||
int must_copy = !reference_callee_copied (&args_so_far_v, orig_arg);
|
||||
|
||||
/* If this was a CONST function, it is now PURE since it now
|
||||
reads memory. */
|
||||
|
@ -118,8 +118,8 @@ extern void fixup_tail_calls (void);
|
||||
|
||||
extern bool pass_by_reference (CUMULATIVE_ARGS *, function_arg_info);
|
||||
extern bool pass_va_arg_by_reference (tree);
|
||||
extern bool reference_callee_copied (CUMULATIVE_ARGS *, machine_mode,
|
||||
tree, bool);
|
||||
extern bool reference_callee_copied (CUMULATIVE_ARGS *,
|
||||
const function_arg_info &);
|
||||
extern void maybe_warn_alloc_args_overflow (tree, tree, tree[2], int[2]);
|
||||
extern tree get_attr_nonstring_decl (tree, tree * = NULL);
|
||||
extern void maybe_warn_nonstring_arg (tree, tree);
|
||||
|
@ -20346,7 +20346,7 @@ aarch64_run_selftests (void)
|
||||
#define TARGET_BUILD_BUILTIN_VA_LIST aarch64_build_builtin_va_list
|
||||
|
||||
#undef TARGET_CALLEE_COPIES
|
||||
#define TARGET_CALLEE_COPIES hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false
|
||||
#define TARGET_CALLEE_COPIES hook_bool_CUMULATIVE_ARGS_arg_info_false
|
||||
|
||||
#undef TARGET_CAN_ELIMINATE
|
||||
#define TARGET_CAN_ELIMINATE aarch64_can_eliminate
|
||||
|
@ -635,7 +635,7 @@ c6x_function_value_regno_p (const unsigned int regno)
|
||||
}
|
||||
|
||||
/* Types larger than 64 bit, and variable sized types, are passed by
|
||||
reference. The callee must copy them; see c6x_callee_copies. */
|
||||
reference. The callee must copy them; see TARGET_CALLEE_COPIES. */
|
||||
|
||||
static bool
|
||||
c6x_pass_by_reference (cumulative_args_t, const function_arg_info &arg)
|
||||
@ -669,17 +669,6 @@ c6x_return_in_msb (const_tree valtype)
|
||||
return TARGET_BIG_ENDIAN && AGGREGATE_TYPE_P (valtype) && size == 3;
|
||||
}
|
||||
|
||||
/* Implement TARGET_CALLEE_COPIES. */
|
||||
|
||||
static bool
|
||||
c6x_callee_copies (cumulative_args_t cum_v ATTRIBUTE_UNUSED,
|
||||
machine_mode mode ATTRIBUTE_UNUSED,
|
||||
const_tree type ATTRIBUTE_UNUSED,
|
||||
bool named ATTRIBUTE_UNUSED)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/* Return the type to use as __builtin_va_list. */
|
||||
static tree
|
||||
c6x_build_builtin_va_list (void)
|
||||
@ -6726,7 +6715,7 @@ c6x_modes_tieable_p (machine_mode mode1, machine_mode mode2)
|
||||
#undef TARGET_PASS_BY_REFERENCE
|
||||
#define TARGET_PASS_BY_REFERENCE c6x_pass_by_reference
|
||||
#undef TARGET_CALLEE_COPIES
|
||||
#define TARGET_CALLEE_COPIES c6x_callee_copies
|
||||
#define TARGET_CALLEE_COPIES hook_bool_CUMULATIVE_ARGS_arg_info_true
|
||||
#undef TARGET_STRUCT_VALUE_RTX
|
||||
#define TARGET_STRUCT_VALUE_RTX c6x_struct_value_rtx
|
||||
#undef TARGET_FUNCTION_OK_FOR_SIBCALL
|
||||
|
@ -90,7 +90,7 @@ static rtx_insn *frame_insn (rtx);
|
||||
|
||||
#define TARGET_RETURN_IN_MEMORY epiphany_return_in_memory
|
||||
#define TARGET_PASS_BY_REFERENCE epiphany_pass_by_reference
|
||||
#define TARGET_CALLEE_COPIES hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true
|
||||
#define TARGET_CALLEE_COPIES hook_bool_CUMULATIVE_ARGS_arg_info_true
|
||||
#define TARGET_FUNCTION_VALUE epiphany_function_value
|
||||
#define TARGET_LIBCALL_VALUE epiphany_libcall_value
|
||||
#define TARGET_FUNCTION_VALUE_REGNO_P epiphany_function_value_regno_p
|
||||
|
@ -6259,11 +6259,9 @@ mips_pass_by_reference (cumulative_args_t, const function_arg_info &arg)
|
||||
/* Implement TARGET_CALLEE_COPIES. */
|
||||
|
||||
static bool
|
||||
mips_callee_copies (cumulative_args_t cum ATTRIBUTE_UNUSED,
|
||||
machine_mode mode ATTRIBUTE_UNUSED,
|
||||
const_tree type ATTRIBUTE_UNUSED, bool named)
|
||||
mips_callee_copies (cumulative_args_t, const function_arg_info &arg)
|
||||
{
|
||||
return mips_abi == ABI_EABI && named;
|
||||
return mips_abi == ABI_EABI && arg.named;
|
||||
}
|
||||
|
||||
/* See whether VALTYPE is a record whose fields should be returned in
|
||||
|
@ -263,7 +263,7 @@ static HOST_WIDE_INT mmix_starting_frame_offset (void);
|
||||
#undef TARGET_PASS_BY_REFERENCE
|
||||
#define TARGET_PASS_BY_REFERENCE mmix_pass_by_reference
|
||||
#undef TARGET_CALLEE_COPIES
|
||||
#define TARGET_CALLEE_COPIES hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true
|
||||
#define TARGET_CALLEE_COPIES hook_bool_CUMULATIVE_ARGS_arg_info_true
|
||||
|
||||
#undef TARGET_PREFERRED_RELOAD_CLASS
|
||||
#define TARGET_PREFERRED_RELOAD_CLASS mmix_preferred_reload_class
|
||||
|
@ -3354,7 +3354,7 @@ mn10300_reorg (void)
|
||||
#undef TARGET_PASS_BY_REFERENCE
|
||||
#define TARGET_PASS_BY_REFERENCE mn10300_pass_by_reference
|
||||
#undef TARGET_CALLEE_COPIES
|
||||
#define TARGET_CALLEE_COPIES hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true
|
||||
#define TARGET_CALLEE_COPIES hook_bool_CUMULATIVE_ARGS_arg_info_true
|
||||
#undef TARGET_ARG_PARTIAL_BYTES
|
||||
#define TARGET_ARG_PARTIAL_BYTES mn10300_arg_partial_bytes
|
||||
#undef TARGET_FUNCTION_ARG
|
||||
|
@ -750,16 +750,7 @@ msp430_pass_by_reference (cumulative_args_t, const function_arg_info &arg)
|
||||
}
|
||||
|
||||
#undef TARGET_CALLEE_COPIES
|
||||
#define TARGET_CALLEE_COPIES msp430_callee_copies
|
||||
|
||||
static bool
|
||||
msp430_callee_copies (cumulative_args_t cap ATTRIBUTE_UNUSED,
|
||||
machine_mode mode ATTRIBUTE_UNUSED,
|
||||
const_tree type ATTRIBUTE_UNUSED,
|
||||
bool named ATTRIBUTE_UNUSED)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
#define TARGET_CALLEE_COPIES hook_bool_CUMULATIVE_ARGS_arg_info_true
|
||||
|
||||
#undef TARGET_FUNCTION_ARG_ADVANCE
|
||||
#define TARGET_FUNCTION_ARG_ADVANCE msp430_function_arg_advance
|
||||
|
@ -197,8 +197,7 @@ static bool pa_cannot_force_const_mem (machine_mode, rtx);
|
||||
static bool pa_legitimate_constant_p (machine_mode, rtx);
|
||||
static unsigned int pa_section_type_flags (tree, const char *, int);
|
||||
static bool pa_legitimate_address_p (machine_mode, rtx, bool);
|
||||
static bool pa_callee_copies (cumulative_args_t, machine_mode,
|
||||
const_tree, bool);
|
||||
static bool pa_callee_copies (cumulative_args_t, const function_arg_info &);
|
||||
static unsigned int pa_hard_regno_nregs (unsigned int, machine_mode);
|
||||
static bool pa_hard_regno_mode_ok (unsigned int, machine_mode);
|
||||
static bool pa_modes_tieable_p (machine_mode, machine_mode);
|
||||
@ -10764,10 +10763,7 @@ pa_maybe_emit_compare_and_swap_exchange_loop (rtx target, rtx mem, rtx val)
|
||||
in the 64-bit HP runtime. */
|
||||
|
||||
static bool
|
||||
pa_callee_copies (cumulative_args_t cum ATTRIBUTE_UNUSED,
|
||||
machine_mode mode ATTRIBUTE_UNUSED,
|
||||
const_tree type ATTRIBUTE_UNUSED,
|
||||
bool named ATTRIBUTE_UNUSED)
|
||||
pa_callee_copies (cumulative_args_t, const function_arg_info &)
|
||||
{
|
||||
return !TARGET_CALLER_COPIES;
|
||||
}
|
||||
|
@ -296,8 +296,7 @@ static machine_mode sh_promote_function_mode (const_tree type,
|
||||
int for_return);
|
||||
static bool sh_pass_by_reference (cumulative_args_t,
|
||||
const function_arg_info &);
|
||||
static bool sh_callee_copies (cumulative_args_t, machine_mode,
|
||||
const_tree, bool);
|
||||
static bool sh_callee_copies (cumulative_args_t, const function_arg_info &);
|
||||
static int sh_arg_partial_bytes (cumulative_args_t, const function_arg_info &);
|
||||
static void sh_function_arg_advance (cumulative_args_t,
|
||||
const function_arg_info &);
|
||||
@ -7915,14 +7914,15 @@ sh_pass_by_reference (cumulative_args_t cum_v, const function_arg_info &arg)
|
||||
}
|
||||
|
||||
static bool
|
||||
sh_callee_copies (cumulative_args_t cum, machine_mode mode,
|
||||
const_tree type, bool named ATTRIBUTE_UNUSED)
|
||||
sh_callee_copies (cumulative_args_t cum, const function_arg_info &arg)
|
||||
{
|
||||
/* ??? How can it possibly be correct to return true only on the
|
||||
caller side of the equation? Is there someplace else in the
|
||||
sh backend that's magically producing the copies? */
|
||||
return (get_cumulative_args (cum)->outgoing
|
||||
&& ((mode == BLKmode ? TYPE_ALIGN (type) : GET_MODE_ALIGNMENT (mode))
|
||||
&& ((arg.mode == BLKmode
|
||||
? TYPE_ALIGN (arg.type)
|
||||
: GET_MODE_ALIGNMENT (arg.mode))
|
||||
% SH_MIN_ALIGN_FOR_CALLEE_COPY == 0));
|
||||
}
|
||||
|
||||
|
@ -3263,7 +3263,7 @@ v850_modes_tieable_p (machine_mode mode1, machine_mode mode2)
|
||||
#define TARGET_PASS_BY_REFERENCE v850_pass_by_reference
|
||||
|
||||
#undef TARGET_CALLEE_COPIES
|
||||
#define TARGET_CALLEE_COPIES hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true
|
||||
#define TARGET_CALLEE_COPIES hook_bool_CUMULATIVE_ARGS_arg_info_true
|
||||
|
||||
#undef TARGET_ARG_PARTIAL_BYTES
|
||||
#define TARGET_ARG_PARTIAL_BYTES v850_arg_partial_bytes
|
||||
|
@ -4080,7 +4080,7 @@ The pointer is passed in whatever way is appropriate for passing a pointer
|
||||
to that type.
|
||||
@end deftypefn
|
||||
|
||||
@deftypefn {Target Hook} bool TARGET_CALLEE_COPIES (cumulative_args_t @var{cum}, machine_mode @var{mode}, const_tree @var{type}, bool @var{named})
|
||||
@deftypefn {Target Hook} bool TARGET_CALLEE_COPIES (cumulative_args_t @var{cum}, const function_arg_info @var{&arg})
|
||||
The function argument described by the parameters to this hook is
|
||||
known to be passed by reference. The hook should return true if the
|
||||
function argument should be copied by the callee instead of copied
|
||||
|
@ -3881,8 +3881,8 @@ gimplify_parameters (gimple_seq *cleanup)
|
||||
if (data.passed_pointer)
|
||||
{
|
||||
tree type = TREE_TYPE (data.passed_type);
|
||||
if (reference_callee_copied (&all.args_so_far_v, TYPE_MODE (type),
|
||||
type, data.named_arg))
|
||||
function_arg_info orig_arg (type, data.named_arg);
|
||||
if (reference_callee_copied (&all.args_so_far_v, orig_arg))
|
||||
{
|
||||
tree local, t;
|
||||
|
||||
|
@ -4653,8 +4653,8 @@ not be generated.\n\
|
||||
\n\
|
||||
The default version of this hook always returns false.",
|
||||
bool,
|
||||
(cumulative_args_t cum, machine_mode mode, const_tree type, bool named),
|
||||
hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false)
|
||||
(cumulative_args_t cum, const function_arg_info &arg),
|
||||
hook_bool_CUMULATIVE_ARGS_arg_info_false)
|
||||
|
||||
/* Return zero for arguments passed entirely on the stack or entirely
|
||||
in registers. If passed in both, return the number of bytes passed
|
||||
|
@ -330,11 +330,9 @@ hook_pass_by_reference_must_pass_in_stack (cumulative_args_t,
|
||||
version of the hook is true for all named arguments. */
|
||||
|
||||
bool
|
||||
hook_callee_copies_named (cumulative_args_t ca ATTRIBUTE_UNUSED,
|
||||
machine_mode mode ATTRIBUTE_UNUSED,
|
||||
const_tree type ATTRIBUTE_UNUSED, bool named)
|
||||
hook_callee_copies_named (cumulative_args_t, const function_arg_info &arg)
|
||||
{
|
||||
return named;
|
||||
return arg.named;
|
||||
}
|
||||
|
||||
/* Emit to STREAM the assembler syntax for insn operand X. */
|
||||
@ -745,24 +743,6 @@ default_builtin_reciprocal (tree)
|
||||
return NULL_TREE;
|
||||
}
|
||||
|
||||
bool
|
||||
hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false (
|
||||
cumulative_args_t ca ATTRIBUTE_UNUSED,
|
||||
machine_mode mode ATTRIBUTE_UNUSED,
|
||||
const_tree type ATTRIBUTE_UNUSED, bool named ATTRIBUTE_UNUSED)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
bool
|
||||
hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true (
|
||||
cumulative_args_t ca ATTRIBUTE_UNUSED,
|
||||
machine_mode mode ATTRIBUTE_UNUSED,
|
||||
const_tree type ATTRIBUTE_UNUSED, bool named ATTRIBUTE_UNUSED)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
bool
|
||||
hook_bool_CUMULATIVE_ARGS_arg_info_false (cumulative_args_t,
|
||||
const function_arg_info &)
|
||||
@ -770,6 +750,13 @@ hook_bool_CUMULATIVE_ARGS_arg_info_false (cumulative_args_t,
|
||||
return false;
|
||||
}
|
||||
|
||||
bool
|
||||
hook_bool_CUMULATIVE_ARGS_arg_info_true (cumulative_args_t,
|
||||
const function_arg_info &)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
int
|
||||
hook_int_CUMULATIVE_ARGS_arg_info_0 (cumulative_args_t,
|
||||
const function_arg_info &)
|
||||
|
@ -67,7 +67,7 @@ extern tree default_cxx_get_cookie_size (tree);
|
||||
extern bool hook_pass_by_reference_must_pass_in_stack
|
||||
(cumulative_args_t, const function_arg_info &);
|
||||
extern bool hook_callee_copies_named
|
||||
(cumulative_args_t ca, machine_mode, const_tree, bool);
|
||||
(cumulative_args_t ca, const function_arg_info &);
|
||||
|
||||
extern void default_print_operand (FILE *, rtx, int);
|
||||
extern void default_print_operand_address (FILE *, machine_mode, rtx);
|
||||
@ -135,12 +135,10 @@ extern void default_goacc_reduction (gcall *);
|
||||
extern bool hook_bool_CUMULATIVE_ARGS_false (cumulative_args_t);
|
||||
extern bool hook_bool_CUMULATIVE_ARGS_true (cumulative_args_t);
|
||||
|
||||
extern bool hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false
|
||||
(cumulative_args_t, machine_mode, const_tree, bool);
|
||||
extern bool hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true
|
||||
(cumulative_args_t, machine_mode, const_tree, bool);
|
||||
extern bool hook_bool_CUMULATIVE_ARGS_arg_info_false
|
||||
(cumulative_args_t, const function_arg_info &);
|
||||
extern bool hook_bool_CUMULATIVE_ARGS_arg_info_true
|
||||
(cumulative_args_t, const function_arg_info &);
|
||||
extern int hook_int_CUMULATIVE_ARGS_arg_info_0
|
||||
(cumulative_args_t, const function_arg_info &);
|
||||
extern void hook_void_CUMULATIVE_ARGS_tree
|
||||
|
Loading…
x
Reference in New Issue
Block a user