GCC Middle and Back End API Reference
targhooks.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

bool default_legitimate_address_p (machine_mode, rtx, bool, code_helper)
 
void default_external_libcall (rtx)
 
rtx default_legitimize_address (rtx, rtx, machine_mode)
 
bool default_legitimize_address_displacement (rtx *, rtx *, poly_int64, machine_mode)
 
bool default_const_not_ok_for_debug_p (rtx)
 
int default_unspec_may_trap_p (const_rtx, unsigned)
 
machine_mode default_promote_function_mode (const_tree, machine_mode, int *, const_tree, int)
 
machine_mode default_promote_function_mode_always_promote (const_tree, machine_mode, int *, const_tree, int)
 
machine_mode default_cc_modes_compatible (machine_mode, machine_mode)
 
bool default_return_in_memory (const_tree, const_tree)
 
rtx default_expand_builtin_saveregs (void)
 
void default_setup_incoming_varargs (cumulative_args_t, const function_arg_info &, int *, int)
 
rtx default_builtin_setjmp_frame_value (void)
 
bool default_pretend_outgoing_varargs_named (cumulative_args_t)
 
scalar_int_mode default_eh_return_filter_mode (void)
 
scalar_int_mode default_libgcc_cmp_return_mode (void)
 
scalar_int_mode default_libgcc_shift_count_mode (void)
 
scalar_int_mode default_unwind_word_mode (void)
 
unsigned HOST_WIDE_INT default_shift_truncation_mask (machine_mode)
 
unsigned int default_min_divisions_for_recip_mul (machine_mode)
 
bool default_preferred_div_as_shifts_over_mult (const_tree)
 
int default_mode_rep_extended (scalar_int_mode, scalar_int_mode)
 
tree default_stack_protect_guard (void)
 
tree default_external_stack_protect_fail (void)
 
tree default_hidden_stack_protect_fail (void)
 
machine_mode default_mode_for_suffix (char)
 
tree default_cxx_guard_type (void)
 
tree default_cxx_get_cookie_size (tree)
 
tree default_cxx_adjust_cdtor_callabi_fntype (tree)
 
bool hook_pass_by_reference_must_pass_in_stack (cumulative_args_t, const function_arg_info &)
 
bool hook_callee_copies_named (cumulative_args_t ca, const function_arg_info &)
 
void default_print_operand (FILE *, rtx, int)
 
void default_print_operand_address (FILE *, machine_mode, rtx)
 
bool default_print_operand_punct_valid_p (unsigned char)
 
tree default_mangle_assembler_name (const char *)
 
machine_mode default_translate_mode_attribute (machine_mode)
 
bool default_scalar_mode_supported_p (scalar_mode)
 
bool default_libgcc_floating_mode_supported_p (scalar_float_mode)
 
opt_scalar_float_mode default_floatn_mode (int, bool)
 
bool default_floatn_builtin_p (int)
 
bool targhook_words_big_endian (void)
 
bool targhook_float_words_big_endian (void)
 
bool default_float_exceptions_rounding_supported_p (void)
 
bool default_decimal_float_supported_p (void)
 
bool default_fixed_point_supported_p (void)
 
bool default_has_ifunc_p (void)
 
bool default_predict_doloop_p (class loop *)
 
machine_mode default_preferred_doloop_mode (machine_mode)
 
const chardefault_invalid_within_doloop (const rtx_insn *)
 
tree default_builtin_vectorized_function (unsigned int, tree, tree)
 
tree default_builtin_md_vectorized_function (tree, tree, tree)
 
int default_builtin_vectorization_cost (enum vect_cost_for_stmt, tree, int)
 
tree default_builtin_reciprocal (tree)
 
void default_emit_support_tinfos (emit_support_tinfos_callback)
 
HOST_WIDE_INT default_static_rtx_alignment (machine_mode)
 
HOST_WIDE_INT default_constant_alignment (const_tree, HOST_WIDE_INT)
 
HOST_WIDE_INT constant_alignment_word_strings (const_tree, HOST_WIDE_INT)
 
HOST_WIDE_INT default_vector_alignment (const_tree)
 
poly_uint64 default_preferred_vector_alignment (const_tree)
 
bool default_builtin_vector_alignment_reachable (const_tree, bool)
 
bool default_builtin_support_vector_misalignment (machine_mode mode, const_tree, int, bool)
 
machine_mode default_preferred_simd_mode (scalar_mode mode)
 
machine_mode default_split_reduction (machine_mode)
 
unsigned int default_autovectorize_vector_modes (vector_modes *, bool)
 
opt_machine_mode default_vectorize_related_mode (machine_mode, scalar_mode, poly_uint64)
 
opt_machine_mode default_get_mask_mode (machine_mode)
 
bool default_empty_mask_is_expensive (unsigned)
 
vector_costsdefault_vectorize_create_costs (vec_info *, bool)
 
bool default_goacc_validate_dims (tree, int[], int, unsigned)
 
int default_goacc_dim_limit (int)
 
bool default_goacc_fork_join (gcall *, const int[], bool)
 
void default_goacc_reduction (gcall *)
 
bool hook_bool_CUMULATIVE_ARGS_false (cumulative_args_t)
 
bool hook_bool_CUMULATIVE_ARGS_true (cumulative_args_t)
 
bool hook_bool_CUMULATIVE_ARGS_arg_info_false (cumulative_args_t, const function_arg_info &)
 
bool hook_bool_CUMULATIVE_ARGS_arg_info_true (cumulative_args_t, const function_arg_info &)
 
int hook_int_CUMULATIVE_ARGS_arg_info_0 (cumulative_args_t, const function_arg_info &)
 
void hook_void_CUMULATIVE_ARGS (cumulative_args_t)
 
void hook_void_CUMULATIVE_ARGS_tree (cumulative_args_t, tree)
 
void hook_void_CUMULATIVE_ARGS_rtx_tree (cumulative_args_t, rtx, tree)
 
const charhook_invalid_arg_for_unprototyped_fn (const_tree, const_tree, const_tree)
 
void default_function_arg_advance (cumulative_args_t, const function_arg_info &)
 
bool default_push_argument (unsigned int)
 
HOST_WIDE_INT default_function_arg_offset (machine_mode, const_tree)
 
pad_direction default_function_arg_padding (machine_mode, const_tree)
 
rtx default_function_arg (cumulative_args_t, const function_arg_info &)
 
rtx default_function_incoming_arg (cumulative_args_t, const function_arg_info &)
 
unsigned int default_function_arg_boundary (machine_mode, const_tree)
 
unsigned int default_function_arg_round_boundary (machine_mode, const_tree)
 
bool hook_bool_const_rtx_commutative_p (const_rtx, int)
 
rtx default_function_value (const_tree, const_tree, bool)
 
HARD_REG_SET default_zero_call_used_regs (HARD_REG_SET)
 
rtx default_libcall_value (machine_mode, const_rtx)
 
bool default_function_value_regno_p (const unsigned int)
 
rtx default_internal_arg_pointer (void)
 
rtx default_static_chain (const_tree, bool)
 
void default_trampoline_init (rtx, tree, rtx)
 
void default_emit_call_builtin___clear_cache (rtx, rtx)
 
poly_int64 default_return_pops_args (tree, tree, poly_int64)
 
reg_class_t default_ira_change_pseudo_allocno_class (int, reg_class_t, reg_class_t)
 
bool default_lra_p (void)
 
int default_register_priority (int)
 
bool default_register_usage_leveling_p (void)
 
bool default_different_addr_displacement_p (void)
 
reg_class_t default_secondary_reload (bool, rtx, reg_class_t, machine_mode, secondary_reload_info *)
 
machine_mode default_secondary_memory_needed_mode (machine_mode)
 
void default_target_option_override (void)
 
void hook_void_bitmap (bitmap)
 
int default_reloc_rw_mask (void)
 
bool default_generate_pic_addr_diff_vec (void)
 
void default_asm_out_constructor (rtx, int)
 
void default_asm_out_destructor (rtx, int)
 
tree default_mangle_decl_assembler_name (tree, tree)
 
tree default_emutls_var_fields (tree, tree *)
 
tree default_emutls_var_init (tree, tree, tree)
 
unsigned int default_hard_regno_nregs (unsigned int, machine_mode)
 
bool default_hard_regno_scratch_ok (unsigned int)
 
bool default_mode_dependent_address_p (const_rtx, addr_space_t)
 
bool default_new_address_profitable_p (rtx, rtx_insn *, rtx)
 
bool default_target_option_valid_attribute_p (tree, tree, tree, int)
 
bool default_target_option_valid_version_attribute_p (tree, tree, tree, int)
 
bool default_target_option_pragma_parse (tree, tree)
 
bool default_target_can_inline_p (tree, tree)
 
bool default_update_ipa_fn_target_info (unsigned int &, const gimple *)
 
bool default_need_ipa_fn_target_info (const_tree, unsigned int &)
 
bool default_valid_pointer_mode (scalar_int_mode)
 
bool default_ref_may_alias_errno (class ao_ref *)
 
scalar_int_mode default_addr_space_pointer_mode (addr_space_t)
 
scalar_int_mode default_addr_space_address_mode (addr_space_t)
 
bool default_addr_space_valid_pointer_mode (scalar_int_mode, addr_space_t)
 
bool default_addr_space_legitimate_address_p (machine_mode, rtx, bool, addr_space_t, code_helper)
 
rtx default_addr_space_legitimize_address (rtx, rtx, machine_mode, addr_space_t)
 
bool default_addr_space_subset_p (addr_space_t, addr_space_t)
 
bool default_addr_space_zero_address_valid (addr_space_t)
 
int default_addr_space_debug (addr_space_t)
 
void default_addr_space_diagnose_usage (addr_space_t, location_t)
 
rtx default_addr_space_convert (rtx, tree, tree)
 
unsigned int default_case_values_threshold (void)
 
bool default_have_conditional_execution (void)
 
bool default_libc_has_function (enum function_class, tree)
 
bool default_libc_has_fast_function (int fcode)
 
bool no_c99_libc_has_function (enum function_class, tree)
 
bool gnu_libc_has_function (enum function_class, tree)
 
bool bsd_libc_has_function (enum function_class, tree)
 
unsigned default_fortify_source_default_level (void)
 
unsigned default_libm_function_max_error (unsigned, machine_mode, bool)
 
unsigned glibc_linux_libm_function_max_error (unsigned, machine_mode, bool)
 
tree default_builtin_tm_load_store (tree)
 
int default_memory_move_cost (machine_mode, reg_class_t, bool)
 
int default_register_move_cost (machine_mode, reg_class_t, reg_class_t)
 
bool default_slow_unaligned_access (machine_mode, unsigned int)
 
HOST_WIDE_INT default_estimated_poly_value (poly_int64, poly_value_estimate_kind)
 
bool default_use_by_pieces_infrastructure_p (unsigned HOST_WIDE_INT, unsigned int, enum by_pieces_operation, bool)
 
int default_compare_by_pieces_branch_ratio (machine_mode)
 
void default_print_patchable_function_entry (FILE *, unsigned HOST_WIDE_INT, bool)
 
bool default_profile_before_prologue (void)
 
reg_class_t default_preferred_reload_class (rtx, reg_class_t)
 
reg_class_t default_preferred_output_reload_class (rtx, reg_class_t)
 
reg_class_t default_preferred_rename_class (reg_class_t rclass)
 
bool default_class_likely_spilled_p (reg_class_t)
 
unsigned char default_class_max_nregs (reg_class_t, machine_mode)
 
enum unwind_info_type default_debug_unwind_info (void)
 
void default_canonicalize_comparison (int *, rtx *, rtx *, bool)
 
sectiondefault_function_section (tree decl, enum node_frequency freq, bool startup, bool exit)
 
unsigned int default_dwarf_poly_indeterminate_value (unsigned int, unsigned int *, int *)
 
machine_mode default_dwarf_frame_reg_mode (int)
 
fixed_size_mode default_get_reg_raw_mode (int)
 
bool default_keep_leaf_when_profiled ()
 
voiddefault_get_pch_validity (size_t *)
 
const chardefault_pch_valid_p (const void *, size_t)
 
void default_asm_output_ident_directive (const char *)
 
scalar_int_mode default_cstore_mode (enum insn_code)
 
bool default_member_type_forces_blk (const_tree, machine_mode)
 
void default_atomic_assign_expand_fenv (tree *, tree *, tree *)
 
tree build_va_arg_indirect_ref (tree)
 
tree std_gimplify_va_arg_expr (tree, tree, gimple_seq *, gimple_seq *)
 
bool can_use_doloop_if_innermost (const widest_int &, const widest_int &, unsigned int, bool)
 
bool default_optab_supported_p (int, machine_mode, machine_mode, optimization_type)
 
unsigned int default_max_noce_ifcvt_seq_cost (edge)
 
bool default_noce_conversion_profitable_p (rtx_insn *, struct noce_if_info *)
 
unsigned int default_min_arithmetic_precision (void)
 
enum flt_eval_method default_excess_precision (enum excess_precision_type)
 
bool default_bitint_type_info (int, struct bitint_info *)
 
HOST_WIDE_INT default_stack_clash_protection_alloca_probe_range (void)
 
void default_select_early_remat_modes (sbitmap)
 
tree default_preferred_else_value (unsigned, tree, unsigned, tree *)
 
bool default_have_speculation_safe_value (bool)
 
bool speculation_safe_value_not_needed (bool)
 
rtx default_speculation_safe_value (machine_mode, rtx, rtx, rtx)
 
bool default_memtag_can_tag_addresses ()
 
uint8_t default_memtag_tag_size ()
 
uint8_t default_memtag_granule_size ()
 
rtx default_memtag_insert_random_tag (rtx, rtx)
 
rtx default_memtag_add_tag (rtx, poly_int64, uint8_t)
 
rtx default_memtag_set_tag (rtx, rtx, rtx)
 
rtx default_memtag_extract_tag (rtx, rtx)
 
rtx default_memtag_untagged_pointer (rtx, rtx)
 

Function Documentation

◆ bsd_libc_has_function()

bool bsd_libc_has_function ( enum function_class fn_class,
tree type )
extern
Assume some c99 functions are present at the runtime including sincos.   

References function_c94, function_c99_misc, function_sincos, and ggc_alloc().

◆ build_va_arg_indirect_ref()

tree build_va_arg_indirect_ref ( tree addr)
extern
Build an indirect-ref expression over the given TREE, which represents a
piece of a va_arg() expansion.   

References build_simple_mem_ref_loc(), and EXPR_LOCATION.

Referenced by std_gimplify_va_arg_expr().

◆ can_use_doloop_if_innermost()

bool can_use_doloop_if_innermost ( const widest_int & ,
const widest_int & ,
unsigned int loop_depth,
bool  )
extern
An implementation of TARGET_CAN_USE_DOLOOP_P for targets that do
not support nested low-overhead loops.   

References loop_depth().

◆ constant_alignment_word_strings()

HOST_WIDE_INT constant_alignment_word_strings ( const_tree exp,
HOST_WIDE_INT align )
extern
An implementation of TARGET_CONSTANT_ALIGNMENT that aligns strings
to at least BITS_PER_WORD but otherwise makes no changes.   

References BITS_PER_WORD, exp(), ggc_alloc(), MAX, and TREE_CODE.

◆ default_addr_space_address_mode()

scalar_int_mode default_addr_space_address_mode ( addr_space_t addrspace)
extern
Return the mode for an address in a given ADDRSPACE,
defaulting to Pmode for all address spaces.   

References ggc_alloc().

Referenced by target_default_pointer_address_modes_p().

◆ default_addr_space_convert()

rtx default_addr_space_convert ( rtx op,
tree from_type,
tree to_type )
extern
The default hook for TARGET_ADDR_SPACE_CONVERT. This hook should never be
called for targets with only a generic address space.   

References gcc_unreachable.

◆ default_addr_space_debug()

int default_addr_space_debug ( addr_space_t as)
extern
The default hook for debugging the address space is to return the
address space number to indicate DW_AT_address_class.   

◆ default_addr_space_diagnose_usage()

void default_addr_space_diagnose_usage ( addr_space_t ,
location_t  )
extern
The default hook implementation for TARGET_ADDR_SPACE_DIAGNOSE_USAGE.
Don't complain about any address space.   

◆ default_addr_space_legitimate_address_p()

bool default_addr_space_legitimate_address_p ( machine_mode mode,
rtx mem,
bool strict,
addr_space_t as,
code_helper code )
extern
Named address space version of legitimate_address_p.
By default, all address spaces have the same form.   

References ggc_alloc(), and targetm.

◆ default_addr_space_legitimize_address()

rtx default_addr_space_legitimize_address ( rtx x,
rtx oldx,
machine_mode mode,
addr_space_t as )
extern
Named address space version of LEGITIMIZE_ADDRESS.
By default, all address spaces have the same form.   

References ggc_alloc(), and targetm.

◆ default_addr_space_pointer_mode()

scalar_int_mode default_addr_space_pointer_mode ( addr_space_t addrspace)
extern
Return the mode for a pointer to a given ADDRSPACE,
defaulting to ptr_mode for all address spaces.   

References ptr_mode.

Referenced by target_default_pointer_address_modes_p().

◆ default_addr_space_subset_p()

bool default_addr_space_subset_p ( addr_space_t subset,
addr_space_t superset )
extern
The default hook for determining if one named address space is a subset of
another and to return which address space to use as the common address
space.   

References ggc_alloc().

◆ default_addr_space_valid_pointer_mode()

bool default_addr_space_valid_pointer_mode ( scalar_int_mode mode,
addr_space_t as )
extern
Named address space version of valid_pointer_mode.
To match the above, the same modes apply to all address spaces.   

References targetm.

◆ default_addr_space_zero_address_valid()

bool default_addr_space_zero_address_valid ( addr_space_t as)
extern
The default hook for determining if 0 within a named address
space is a valid address.   

◆ default_asm_out_constructor()

void default_asm_out_constructor ( rtx symbol,
int priority )
extern
Record an element in the table of global constructors.  SYMBOL is
a SYMBOL_REF of the function to be called; PRIORITY is a number
between 0 and MAX_INIT_PRIORITY.   

References sorry().

◆ default_asm_out_destructor()

void default_asm_out_destructor ( rtx symbol,
int priority )
extern
Likewise for global destructors.   

References sorry().

◆ default_asm_output_ident_directive()

void default_asm_output_ident_directive ( const char * ident_str)
extern
Default TARGET_ASM_OUTPUT_IDENT hook.

This is a bit of a cheat.  The real default is a no-op, but this
hook is the default for all targets with a .ident directive.   

References asm_out_file, build_string(), symbol_table::finalize_toplevel_asm(), ggc_alloc(), NULL, PARSING, symbol_table::state, and symtab.

◆ default_atomic_assign_expand_fenv()

void default_atomic_assign_expand_fenv ( tree * ,
tree * ,
tree *  )
extern
Default implementation of TARGET_ATOMIC_ASSIGN_EXPAND_FENV.   

◆ default_autovectorize_vector_modes()

unsigned int default_autovectorize_vector_modes ( vector_modes * ,
bool  )
extern
By default only the preferred vector mode is tried.   

◆ default_bitint_type_info()

bool default_bitint_type_info ( int ,
struct bitint_info *  )
extern
Return true if _BitInt(N) is supported and fill details about it into
*INFO.   

◆ default_builtin_md_vectorized_function()

tree default_builtin_md_vectorized_function ( tree ,
tree ,
tree  )
extern
Mapping of target builtin functions to vectorized variants.   

References NULL_TREE.

◆ default_builtin_reciprocal()

tree default_builtin_reciprocal ( tree )
extern
Reciprocal.   

References NULL_TREE.

◆ default_builtin_setjmp_frame_value()

rtx default_builtin_setjmp_frame_value ( void )
extern
The default implementation of TARGET_BUILTIN_SETJMP_FRAME_VALUE.   

References virtual_stack_vars_rtx.

◆ default_builtin_support_vector_misalignment()

bool default_builtin_support_vector_misalignment ( machine_mode mode,
const_tree type,
int misalignment,
bool is_packed )
extern
By default, assume that a target supports any factor of misalignment
memory access if it supports movmisalign patten.
is_packed is true if the memory access is defined in a packed struct.   

References ggc_alloc(), and optab_handler().

◆ default_builtin_tm_load_store()

tree default_builtin_tm_load_store ( tree )
extern

◆ default_builtin_vector_alignment_reachable()

bool default_builtin_vector_alignment_reachable ( const_tree ,
bool is_packed )
extern
By default assume vectors of element TYPE require a multiple of the natural
alignment of TYPE.  TYPE is naturally aligned if IS_PACKED is false.   

References ggc_alloc().

◆ default_builtin_vectorization_cost()

◆ default_builtin_vectorized_function()

tree default_builtin_vectorized_function ( unsigned int ,
tree ,
tree  )
extern
Mapping of builtin functions to vectorized variants.   

References NULL_TREE.

◆ default_canonicalize_comparison()

void default_canonicalize_comparison ( int * ,
rtx * ,
rtx * ,
bool  )
extern
Default version of canonicalize_comparison.   

◆ default_case_values_threshold()

unsigned int default_case_values_threshold ( void )
extern
If the machine does not have a case insn that compares the bounds,
this means extra overhead for dispatch tables, which raises the
threshold for using them.   

References targetm.

◆ default_cc_modes_compatible()

machine_mode default_cc_modes_compatible ( machine_mode m1,
machine_mode m2 )
extern

References ggc_alloc().

◆ default_class_likely_spilled_p()

bool default_class_likely_spilled_p ( reg_class_t rclass)
extern
The default implementation of TARGET_CLASS_LIKELY_SPILLED_P.   

References reg_class_size.

◆ default_class_max_nregs()

unsigned char default_class_max_nregs ( reg_class_t rclass,
machine_mode mode )
extern
The default implementation of TARGET_CLASS_MAX_NREGS.   

References GET_MODE_SIZE(), ggc_alloc(), MACRO_MODE, and poly_int< N, C >::to_constant().

◆ default_compare_by_pieces_branch_ratio()

int default_compare_by_pieces_branch_ratio ( machine_mode )
extern
This hook controls code generation for expanding a memcmp operation by
pieces.  Return 1 for the normal pattern of compare/jump after each pair
of loads, or a higher number to reduce the number of branches.   

◆ default_const_not_ok_for_debug_p()

bool default_const_not_ok_for_debug_p ( rtx x)
extern

References GET_CODE, and ggc_alloc().

◆ default_constant_alignment()

HOST_WIDE_INT default_constant_alignment ( const_tree ,
HOST_WIDE_INT align )
extern
The default implementation of TARGET_CONSTANT_ALIGNMENT.   

◆ default_cstore_mode()

scalar_int_mode default_cstore_mode ( enum insn_code icode)
extern
Default version of cstore_mode.   

References ggc_alloc(), and insn_data.

◆ default_cxx_adjust_cdtor_callabi_fntype()

tree default_cxx_adjust_cdtor_callabi_fntype ( tree fntype)
extern
Returns modified FUNCTION_TYPE for cdtor callabi.   

◆ default_cxx_get_cookie_size()

tree default_cxx_get_cookie_size ( tree type)
extern
Returns the size of the cookie to use when allocating an array
whose elements have the indicated TYPE.  Assumes that it is already
known that a cookie is needed.   

References ggc_alloc(), size_in_bytes(), size_int, sizetype, tree_int_cst_lt(), and TYPE_ALIGN_UNIT.

◆ default_cxx_guard_type()

tree default_cxx_guard_type ( void )
extern
The generic C++ ABI specifies this is a 64-bit value.   

References long_long_integer_type_node.

◆ default_debug_unwind_info()

enum unwind_info_type default_debug_unwind_info ( void )
extern
Determine the debugging unwind mechanism for the target.   

References dwarf_debuginfo_p(), ggc_alloc(), UI_DWARF2, and UI_NONE.

◆ default_decimal_float_supported_p()

bool default_decimal_float_supported_p ( void )
extern
True if the target supports decimal floating point.   

References ggc_alloc().

◆ default_different_addr_displacement_p()

bool default_different_addr_displacement_p ( void )
extern

◆ default_dwarf_frame_reg_mode()

machine_mode default_dwarf_frame_reg_mode ( int regno)
extern
Determine the correct mode for a Dwarf frame register that represents
register REGNO.   

References choose_hard_reg_mode(), eh_edge_abi, ggc_alloc(), reg_raw_mode, and targetm.

◆ default_dwarf_poly_indeterminate_value()

unsigned int default_dwarf_poly_indeterminate_value ( unsigned int ,
unsigned int * ,
int *  )
extern
Targets that set NUM_POLY_INT_COEFFS to something greater than 1
must define this hook.   

References gcc_unreachable.

◆ default_eh_return_filter_mode()

scalar_int_mode default_eh_return_filter_mode ( void )
extern

References targetm.

◆ default_emit_call_builtin___clear_cache()

void default_emit_call_builtin___clear_cache ( rtx begin,
rtx end )
extern
Emit a call to __builtin___clear_cache.   

References begin(), BUILTIN_ASM_NAME_PTR, convert_memory_address, emit_library_call(), end(), ggc_alloc(), LCT_NORMAL, and ptr_mode.

◆ default_emit_support_tinfos()

void default_emit_support_tinfos ( emit_support_tinfos_callback )
extern

◆ default_empty_mask_is_expensive()

bool default_empty_mask_is_expensive ( unsigned ifn)
extern
By default consider masked stores to be expensive.   

References ggc_alloc().

◆ default_emutls_var_fields()

tree default_emutls_var_fields ( tree type,
tree * name )
extern
Create the fields of the type for the control variables.  Ordinarily
this must match struct __emutls_object defined in emutls.c.  However
this is a target hook so that VxWorks can define its own layout.   

References build_decl(), DECL_CHAIN, DECL_CONTEXT, get_identifier(), ggc_alloc(), ptr_type_node, type(), lang_hooks_for_types::type_for_mode, lang_hooks::types, UNKNOWN_LOCATION, and word_mode.

◆ default_emutls_var_init()

tree default_emutls_var_init ( tree to,
tree decl,
tree proxy )
extern
Initialize emulated tls object TO, which refers to TLS variable DECL and
is initialized by PROXY.  As above, this is the default implementation of
a target hook overridden by VxWorks.   

References build_constructor(), build_int_cst(), DECL_ALIGN_UNIT, DECL_CHAIN, DECL_SIZE_UNIT, fold_convert, ggc_alloc(), constructor_elt::index, null_pointer_node, TREE_TYPE, TYPE_FIELDS, constructor_elt::value, and vec_alloc().

◆ default_estimated_poly_value()

HOST_WIDE_INT default_estimated_poly_value ( poly_int64 x,
poly_value_estimate_kind  )
extern
The default implementation of TARGET_ESTIMATED_POLY_VALUE.   

References poly_int< N, C >::coeffs.

◆ default_excess_precision()

enum flt_eval_method default_excess_precision ( enum excess_precision_type)
extern
Default implementation of TARGET_C_EXCESS_PRECISION.   

References FLT_EVAL_METHOD_PROMOTE_TO_FLOAT.

◆ default_expand_builtin_saveregs()

rtx default_expand_builtin_saveregs ( void )
extern

References const0_rtx, and error().

◆ default_external_libcall()

void default_external_libcall ( rtx fun)
extern

References asm_out_file, and ggc_alloc().

◆ default_external_stack_protect_fail()

◆ default_fixed_point_supported_p()

bool default_fixed_point_supported_p ( void )
extern
True if the target supports fixed-point arithmetic.   

References ggc_alloc().

◆ default_float_exceptions_rounding_supported_p()

bool default_float_exceptions_rounding_supported_p ( void )
extern
True if the target supports floating-point exceptions and rounding
modes.   

References ggc_alloc().

◆ default_floatn_builtin_p()

bool default_floatn_builtin_p ( int func)
extern
Define this to return true if the _Floatn and _Floatnx built-in functions
should implicitly enable the built-in function without the __builtin_ prefix
in addition to the normal built-in function with the __builtin_ prefix.  The
default is to only enable built-in functions without the __builtin_ prefix
for the GNU C langauge.  The argument FUNC is the enum builtin_in_function
id of the function to be enabled.   

References ggc_alloc(), lang_GNU_C(), and lang_GNU_OBJC().

◆ default_floatn_mode()

opt_scalar_float_mode default_floatn_mode ( int n,
bool extended )
extern
Return the machine mode to use for the type _FloatN, if EXTENDED is
false, or _FloatNx, if EXTENDED is true, or VOIDmode if not
supported.   

References gcc_unreachable, ggc_alloc(), REAL_MODE_FORMAT, and targetm.

◆ default_fortify_source_default_level()

unsigned default_fortify_source_default_level ( void )
extern
By default, -fhardened will add -D_FORTIFY_SOURCE=2.   

◆ default_function_arg()

rtx default_function_arg ( cumulative_args_t ,
const function_arg_info &  )
extern

References gcc_unreachable.

◆ default_function_arg_advance()

void default_function_arg_advance ( cumulative_args_t ,
const function_arg_info &  )
extern

References gcc_unreachable.

◆ default_function_arg_boundary()

unsigned int default_function_arg_boundary ( machine_mode mode,
const_tree type )
extern

References ggc_alloc().

◆ default_function_arg_offset()

HOST_WIDE_INT default_function_arg_offset ( machine_mode ,
const_tree  )
extern
Default implementation of TARGET_FUNCTION_ARG_OFFSET.   

◆ default_function_arg_padding()

pad_direction default_function_arg_padding ( machine_mode mode,
const_tree type )
extern
Default implementation of TARGET_FUNCTION_ARG_PADDING: usually pad
upward, but pad short args downward on big-endian machines.   

References GET_MODE_SIZE(), ggc_alloc(), int_size_in_bytes(), PAD_DOWNWARD, PAD_UPWARD, poly_int< N, C >::to_constant(), TREE_CODE, and TYPE_SIZE.

◆ default_function_arg_round_boundary()

unsigned int default_function_arg_round_boundary ( machine_mode mode,
const_tree type )
extern

References ggc_alloc().

◆ default_function_incoming_arg()

rtx default_function_incoming_arg ( cumulative_args_t ,
const function_arg_info &  )
extern

References gcc_unreachable.

◆ default_function_section()

section * default_function_section ( tree decl,
enum node_frequency freq,
bool startup,
bool exit )
extern

◆ default_function_value()

rtx default_function_value ( const_tree ret_type,
const_tree fn_decl_or_type,
bool outgoing )
extern

References DECL_P, gcc_unreachable, ggc_alloc(), and NULL.

◆ default_function_value_regno_p()

bool default_function_value_regno_p ( const unsigned int regno)
extern
The default hook for TARGET_FUNCTION_VALUE_REGNO_P.   

References gcc_unreachable, and ggc_alloc().

◆ default_generate_pic_addr_diff_vec()

bool default_generate_pic_addr_diff_vec ( void )
extern
By default, address diff vectors are generated
for jump tables when flag_pic is true.   

References ggc_alloc().

◆ default_get_mask_mode()

opt_machine_mode default_get_mask_mode ( machine_mode mode)
extern
By default a vector of integers is used as a mask.   

References related_int_vector_mode().

◆ default_get_pch_validity()

void * default_get_pch_validity ( size_t * sz)
extern
Default version of get_pch_validity.
By default, every flag difference is fatal; that will be mostly right for
most targets, but completely right for very few.   

References cl_options_count, ggc_alloc(), i, option_affects_pch_p(), r, target_flags, and targetm.

◆ default_get_reg_raw_mode()

fixed_size_mode default_get_reg_raw_mode ( int regno)
extern
To be used by targets where reg_raw_mode doesn't return the right
mode for registers used in apply_builtin_return and apply_builtin_arg.   

References ggc_alloc(), and reg_raw_mode.

◆ default_goacc_dim_limit()

int default_goacc_dim_limit ( int )
extern

◆ default_goacc_fork_join()

bool default_goacc_fork_join ( gcall * ,
const int [],
bool  )
extern

◆ default_goacc_reduction()

void default_goacc_reduction ( gcall * call)
extern
Default goacc.reduction early expander.

LHS-opt = IFN_REDUCTION (KIND, RES_PTR, VAR, LEVEL, OP, OFFSET)
If RES_PTR is not integer-zerop:
    SETUP - emit 'LHS = *RES_PTR', LHS = NULL
    TEARDOWN - emit '*RES_PTR = VAR'
If LHS is not NULL
    emit 'LHS = VAR'    

References build_simple_mem_ref, ggc_alloc(), gimple_build_assign(), gimple_call_arg(), gimple_call_lhs(), gimple_seq_add_stmt(), gsi_for_stmt(), gsi_replace_with_seq(), integer_zerop(), NULL, and TREE_INT_CST_LOW.

Referenced by execute_oacc_device_lower().

◆ default_goacc_validate_dims()

bool default_goacc_validate_dims ( tree ,
int [],
int ,
unsigned  )
extern
OpenACC hooks.   

◆ default_hard_regno_nregs()

unsigned int default_hard_regno_nregs ( unsigned int ,
machine_mode mode )
extern
The defualt implementation of TARGET_HARD_REGNO_NREGS.   

References CEIL, GET_MODE_SIZE(), and ggc_alloc().

◆ default_hard_regno_scratch_ok()

bool default_hard_regno_scratch_ok ( unsigned int regno)
extern

◆ default_has_ifunc_p()

bool default_has_ifunc_p ( void )
extern
True if the target supports GNU indirect functions.   

References ggc_alloc().

◆ default_have_conditional_execution()

bool default_have_conditional_execution ( void )
extern

References ggc_alloc().

◆ default_have_speculation_safe_value()

bool default_have_speculation_safe_value ( bool active)
extern
Default implementation of TARGET_HAVE_SPECULATION_SAFE_VALUE.   

References ggc_alloc().

◆ default_hidden_stack_protect_fail()

◆ default_internal_arg_pointer()

rtx default_internal_arg_pointer ( void )
extern

◆ default_invalid_within_doloop()

const char * default_invalid_within_doloop ( const rtx_insn * insn)
extern
NULL if INSN insn is valid within a low-overhead loop, otherwise returns
an error message.

This function checks whether a given INSN is valid within a low-overhead
loop.  If INSN is invalid it returns the reason for that, otherwise it
returns NULL. A called function may clobber any special registers required
for low-overhead looping. Additionally, some targets (eg, PPC) use the count
register for branch on table instructions. We reject the doloop pattern in
these cases.   

References CALL_P, computed_jump_p(), NULL, and tablejump_p().

◆ default_ira_change_pseudo_allocno_class()

reg_class_t default_ira_change_pseudo_allocno_class ( int regno,
reg_class_t cl,
reg_class_t best_cl )
extern

◆ default_keep_leaf_when_profiled()

bool default_keep_leaf_when_profiled ( )
extern
Return true if a leaf function should stay leaf even with profiling
enabled.   

◆ default_legitimate_address_p()

bool default_legitimate_address_p ( machine_mode mode,
rtx addr,
bool strict,
code_helper  )
extern
Default target hook functions.
   Copyright (C) 2003-2024 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 3, or (at your option) any later
version.

GCC is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
for more details.

You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3.  If not see
<http://www.gnu.org/licenses/>.   
Default target hook functions.
   Copyright (C) 2003-2024 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 3, or (at your option) any later
version.

GCC is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
for more details.

You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3.  If not see
<http://www.gnu.org/licenses/>.   
The migration of target macros to target hooks works as follows:

1. Create a target hook that uses the existing target macros to
   implement the same functionality.

2. Convert all the MI files to use the hook instead of the macro.

3. Repeat for a majority of the remaining target macros.  This will
   take some time.

4. Tell target maintainers to start migrating.

5. Eventually convert the backends to override the hook instead of
   defining the macros.  This will take some time too.

6. TBD when, poison the macros.  Unmigrated targets will break at
   this point.

Note that we expect steps 1-3 to be done by the people that
understand what the MI does with each macro, and step 5 to be done
by the target maintainers for their respective targets.

Note that steps 1 and 2 don't have to be done together, but no
target can override the new hook until step 2 is complete for it.

Once the macros are poisoned, we will revert to the old migration
rules - migrate the macro, callers, and targets all at once.  This
comment can thus be removed at that point.   

References gcc_unreachable, ggc_alloc(), memory_address_p, and strict_memory_address_p.

◆ default_legitimize_address()

rtx default_legitimize_address ( rtx x,
rtx orig_x,
machine_mode mode )
extern

◆ default_legitimize_address_displacement()

bool default_legitimize_address_displacement ( rtx * ,
rtx * ,
poly_int64 ,
machine_mode  )
extern

◆ default_libc_has_fast_function()

bool default_libc_has_fast_function ( int fcode)
extern
By default assume that libc has not a fast implementation.   

◆ default_libc_has_function()

bool default_libc_has_function ( enum function_class fn_class,
tree type )
extern
By default we assume that c99 functions are present at the runtime,
but sincos is not.   

References function_c94, function_c99_math_complex, function_c99_misc, and ggc_alloc().

◆ default_libcall_value()

rtx default_libcall_value ( machine_mode mode,
const_rtx fun )
extern

◆ default_libgcc_cmp_return_mode()

scalar_int_mode default_libgcc_cmp_return_mode ( void )
extern

References word_mode.

◆ default_libgcc_floating_mode_supported_p()

bool default_libgcc_floating_mode_supported_p ( scalar_float_mode mode)
extern
Return true if libgcc supports floating-point mode MODE (known to
be supported as a scalar mode).   

References ggc_alloc().

◆ default_libgcc_shift_count_mode()

scalar_int_mode default_libgcc_shift_count_mode ( void )
extern

References word_mode.

◆ default_libm_function_max_error()

unsigned default_libm_function_max_error ( unsigned ,
machine_mode ,
bool  )
extern

◆ default_lra_p()

bool default_lra_p ( void )
extern

◆ default_mangle_assembler_name()

tree default_mangle_assembler_name ( const char * name)
extern
The default implementation of TARGET_MANGLE_ASSEMBLER_NAME.   

References get_identifier(), ggc_alloc(), NULL, targetm, and user_label_prefix.

◆ default_mangle_decl_assembler_name()

tree default_mangle_decl_assembler_name ( tree decl,
tree id )
extern
By default, do no modification.  

◆ default_max_noce_ifcvt_seq_cost()

unsigned int default_max_noce_ifcvt_seq_cost ( edge e)
extern
Default implementation of TARGET_MAX_NOCE_IFCVT_SEQ_COST.   

References COSTS_N_INSNS, ggc_alloc(), OPTION_SET_P, and predictable_edge_p().

◆ default_member_type_forces_blk()

bool default_member_type_forces_blk ( const_tree ,
machine_mode  )
extern
Default version of member_type_forces_blk.   

◆ default_memory_move_cost()

int default_memory_move_cost ( machine_mode mode,
reg_class_t rclass,
bool in )
extern
Compute cost of moving registers to/from memory.   

References ggc_alloc(), MACRO_MODE, and memory_move_secondary_cost().

◆ default_memtag_add_tag()

rtx default_memtag_add_tag ( rtx base,
poly_int64 offset,
uint8_t tag_offset )
extern
The default implementation of TARGET_MEMTAG_ADD_TAG.   

References ggc_alloc(), HWASAN_SHIFT, offset, and plus_constant().

◆ default_memtag_can_tag_addresses()

bool default_memtag_can_tag_addresses ( )
extern

◆ default_memtag_extract_tag()

rtx default_memtag_extract_tag ( rtx tagged_pointer,
rtx target )
extern
The default implementation of TARGET_MEMTAG_EXTRACT_TAG.   

References expand_simple_binop(), gcc_assert, gen_lowpart, ggc_alloc(), HWASAN_SHIFT_RTX, and OPTAB_DIRECT.

◆ default_memtag_granule_size()

uint8_t default_memtag_granule_size ( )
extern

◆ default_memtag_insert_random_tag()

rtx default_memtag_insert_random_tag ( rtx untagged,
rtx target )
extern
The default implementation of TARGET_MEMTAG_INSERT_RANDOM_TAG.   

References emit_library_call_value(), gcc_assert, ggc_alloc(), init_one_libfunc(), LCT_NORMAL, NULL_RTX, and targetm.

◆ default_memtag_set_tag()

rtx default_memtag_set_tag ( rtx untagged,
rtx tag,
rtx target )
extern
The default implementation of TARGET_MEMTAG_SET_TAG.   

References expand_simple_binop(), gcc_assert, GET_MODE, ggc_alloc(), HWASAN_SHIFT_RTX, NULL_RTX, OPTAB_DIRECT, and OPTAB_WIDEN.

◆ default_memtag_tag_size()

uint8_t default_memtag_tag_size ( )
extern

◆ default_memtag_untagged_pointer()

rtx default_memtag_untagged_pointer ( rtx tagged_pointer,
rtx target )
extern
The default implementation of TARGET_MEMTAG_UNTAGGED_POINTER.   

References expand_simple_binop(), gcc_assert, gen_int_mode(), ggc_alloc(), HOST_WIDE_INT_1U, HWASAN_SHIFT, and OPTAB_DIRECT.

◆ default_min_arithmetic_precision()

unsigned int default_min_arithmetic_precision ( void )
extern
Default implementation of TARGET_MIN_ARITHMETIC_PRECISION.   

References BITS_PER_WORD, ggc_alloc(), and WORD_REGISTER_OPERATIONS.

◆ default_min_divisions_for_recip_mul()

unsigned int default_min_divisions_for_recip_mul ( machine_mode mode)
extern
The default implementation of TARGET_MIN_DIVISIONS_FOR_RECIP_MUL.   

References ggc_alloc(), and have_insn_for().

◆ default_mode_dependent_address_p()

bool default_mode_dependent_address_p ( const_rtx addr,
addr_space_t addrspace )
extern
The default implementation of TARGET_MODE_DEPENDENT_ADDRESS_P.   

◆ default_mode_for_suffix()

machine_mode default_mode_for_suffix ( char suffix)
extern
Return machine mode for non-standard suffix
or VOIDmode if non-standard suffixes are unsupported.   

References ggc_alloc().

◆ default_mode_rep_extended()

int default_mode_rep_extended ( scalar_int_mode ,
scalar_int_mode  )
extern
The default implementation of TARGET_MODE_REP_EXTENDED.   

References ggc_alloc().

◆ default_need_ipa_fn_target_info()

bool default_need_ipa_fn_target_info ( const_tree ,
unsigned int &  )
extern
By default, return false to not need to collect any target information
for inlining.  Target maintainer should re-define the hook if the
target want to take advantage of it.   

◆ default_new_address_profitable_p()

bool default_new_address_profitable_p ( rtx memref,
rtx_insn * insn,
rtx new_addr )
extern
The default implementation of TARGET_NEW_ADDRESS_PROFITABLE_P.   

◆ default_noce_conversion_profitable_p()

bool default_noce_conversion_profitable_p ( rtx_insn * seq,
struct noce_if_info * if_info )
extern
Return true if SEQ is a good candidate as a replacement for the
if-convertible sequence described in IF_INFO.
This is the default implementation that targets can override
through a target hook.   

References ggc_alloc(), and seq_cost().

◆ default_optab_supported_p()

bool default_optab_supported_p ( int ,
machine_mode ,
machine_mode ,
optimization_type  )
extern
Default implementation of TARGET_OPTAB_SUPPORTED_P.   

◆ default_pch_valid_p()

const char * default_pch_valid_p ( const void * data_p,
size_t len )
extern

◆ default_predict_doloop_p()

bool default_predict_doloop_p ( class loop * loop)
extern
Return true if we predict the loop LOOP will be transformed to a
low-overhead loop, otherwise return false.

By default, false is returned, as this hook's applicability should be
verified for each target.  Target maintainers should re-define the hook
if the target can take advantage of it.   

◆ default_preferred_div_as_shifts_over_mult()

bool default_preferred_div_as_shifts_over_mult ( const_tree type)
extern
The default implementation of
TARGET_VECTORIZE_PREFERRED_DIV_AS_SHIFTS_OVER_MULT.   

References can_mult_highpart_p(), TYPE_MODE, and TYPE_UNSIGNED.

◆ default_preferred_doloop_mode()

machine_mode default_preferred_doloop_mode ( machine_mode mode)
extern
By default, just use the input MODE itself.   

◆ default_preferred_else_value()

tree default_preferred_else_value ( unsigned ,
tree type,
unsigned ,
tree *  )
extern
The default implementation of TARGET_PREFERRED_ELSE_VALUE.   

References build_zero_cst().

◆ default_preferred_output_reload_class()

reg_class_t default_preferred_output_reload_class ( rtx x,
reg_class_t rclass )
extern
The default implementation of TARGET_OUTPUT_PREFERRED_RELOAD_CLASS.   

◆ default_preferred_reload_class()

reg_class_t default_preferred_reload_class ( rtx x,
reg_class_t rclass )
extern
The default implementation of TARGET_PREFERRED_RELOAD_CLASS.   

References ggc_alloc().

◆ default_preferred_rename_class()

reg_class_t default_preferred_rename_class ( reg_class_t rclass)
extern
The default implementation of TARGET_PREFERRED_RENAME_CLASS.   

References ggc_alloc().

◆ default_preferred_simd_mode()

machine_mode default_preferred_simd_mode ( scalar_mode mode)
extern
By default, only attempt to parallelize bitwise operations, and
possibly adds/subtracts using bit-twiddling.   

References word_mode.

◆ default_preferred_vector_alignment()

poly_uint64 default_preferred_vector_alignment ( const_tree type)
extern
The default implementation of
TARGET_VECTORIZE_PREFERRED_VECTOR_ALIGNMENT.   

References TYPE_ALIGN.

◆ default_pretend_outgoing_varargs_named()

bool default_pretend_outgoing_varargs_named ( cumulative_args_t ca)
extern

◆ default_print_operand()

void default_print_operand ( FILE * stream,
rtx x,
int code )
extern
Emit to STREAM the assembler syntax for insn operand X.   

References gcc_unreachable, and ggc_alloc().

◆ default_print_operand_address()

void default_print_operand_address ( FILE * stream,
machine_mode ,
rtx x )
extern
Emit to STREAM the assembler syntax for an insn operand whose memory
address is X.   

References gcc_unreachable, and ggc_alloc().

◆ default_print_operand_punct_valid_p()

bool default_print_operand_punct_valid_p ( unsigned char code)
extern
Return true if CODE is a valid punctuation character for the
`print_operand' hook.   

References ggc_alloc().

◆ default_print_patchable_function_entry()

void default_print_patchable_function_entry ( FILE * file,
unsigned HOST_WIDE_INT patch_area_size,
bool record_p )
extern
Write PATCH_AREA_SIZE NOPs into the asm outfile FILE around a function
entry.  If RECORD_P is true and the target supports named sections,
the location of the NOPs will be recorded in a special object section
called "__patchable_function_entries".  This routine may be called
twice per function to put NOPs before and after the function
entry.   

References ASM_OUTPUT_LABEL, assemble_align(), assemble_name_raw(), current_function_decl, current_function_funcdef_no, DECL_COMDAT_GROUP, fputc(), gcc_assert, get_insn_template(), get_section(), ggc_alloc(), i, in_section, integer_asm_op(), make_insn_raw(), NULL, output_asm_insn(), POINTER_SIZE, POINTER_SIZE_UNITS, recog_memoized(), SECTION_LINK_ORDER, SECTION_RELRO, SECTION_WRITE, switch_to_comdat_section(), and switch_to_section().

◆ default_profile_before_prologue()

bool default_profile_before_prologue ( void )
extern

◆ default_promote_function_mode()

machine_mode default_promote_function_mode ( const_tree type,
machine_mode mode,
int * punsignedp,
const_tree funtype,
int for_return )
extern

◆ default_promote_function_mode_always_promote()

machine_mode default_promote_function_mode_always_promote ( const_tree type,
machine_mode mode,
int * punsignedp,
const_tree funtype,
int for_return )
extern

References ggc_alloc(), and promote_mode().

◆ default_push_argument()

bool default_push_argument ( unsigned int )
extern
Default implementation of TARGET_PUSH_ARGUMENT.   

References ACCUMULATE_OUTGOING_ARGS.

◆ default_ref_may_alias_errno()

bool default_ref_may_alias_errno ( ao_ref * ref)
extern
Determine whether the memory reference specified by REF may alias
the C libraries errno location.   

References ao_ref_base(), DECL_EXTERNAL, DECL_P, ggc_alloc(), integer_type_node, SSA_NAME_PTR_INFO, TREE_CODE, TREE_OPERAND, TREE_STATIC, TREE_TYPE, TYPE_MODE, and TYPE_UNSIGNED.

◆ default_register_move_cost()

int default_register_move_cost ( machine_mode mode,
reg_class_t from,
reg_class_t to )
extern
Compute cost of moving data from a register of class FROM to one of
TO, using MODE.   

References ggc_alloc(), and MACRO_MODE.

◆ default_register_priority()

int default_register_priority ( int hard_regno)
extern

◆ default_register_usage_leveling_p()

bool default_register_usage_leveling_p ( void )
extern

◆ default_reloc_rw_mask()

int default_reloc_rw_mask ( void )
extern
By default, if flag_pic is true, then neither local nor global relocs
should be placed in readonly memory.   

References ggc_alloc().

◆ default_return_in_memory()

bool default_return_in_memory ( const_tree type,
const_tree fntype )
extern

References ggc_alloc(), and TYPE_MODE.

◆ default_return_pops_args()

poly_int64 default_return_pops_args ( tree ,
tree ,
poly_int64  )
extern

◆ default_scalar_mode_supported_p()

bool default_scalar_mode_supported_p ( scalar_mode mode)
extern
True if MODE is valid for the target.  By "valid", we mean able to
be manipulated in non-trivial ways.  In particular, this means all
the arithmetic is supported.

By default we guess this means that any C type is supported.  If
we can't map the mode back to a type that would be available in C,
then reject it.  Special case, here, is the double-word arithmetic
supported by optabs.cc.   

References BITS_PER_WORD, CHAR_TYPE_SIZE, DOUBLE_TYPE_SIZE, FLOAT_TYPE_SIZE, gcc_unreachable, GET_MODE_CLASS, GET_MODE_PRECISION(), ggc_alloc(), INT_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE, LONG_LONG_TYPE_SIZE, LONG_TYPE_SIZE, and SHORT_TYPE_SIZE.

◆ default_secondary_memory_needed_mode()

machine_mode default_secondary_memory_needed_mode ( machine_mode mode)
extern
The default implementation of TARGET_SECONDARY_MEMORY_NEEDED_MODE.   

References BITS_PER_WORD, GET_MODE_BITSIZE(), GET_MODE_CLASS, INTEGRAL_MODE_P, known_lt, mode_for_size(), opt_mode< T >::require(), and targetm.

◆ default_secondary_reload()

reg_class_t default_secondary_reload ( bool in_p,
rtx x,
reg_class_t reload_class_i,
machine_mode reload_mode,
secondary_reload_info * sri )
extern

◆ default_select_early_remat_modes()

void default_select_early_remat_modes ( sbitmap )
extern
The default implementation of TARGET_EARLY_REMAT_MODES.   

◆ default_setup_incoming_varargs()

void default_setup_incoming_varargs ( cumulative_args_t ,
const function_arg_info & ,
int * ,
int  )
extern

◆ default_shift_truncation_mask()

unsigned HOST_WIDE_INT default_shift_truncation_mask ( machine_mode mode)
extern
The default implementation of TARGET_SHIFT_TRUNCATION_MASK.   

References GET_MODE_UNIT_BITSIZE, and SHIFT_COUNT_TRUNCATED.

◆ default_slow_unaligned_access()

bool default_slow_unaligned_access ( machine_mode ,
unsigned int  )
extern
The default implementation of TARGET_SLOW_UNALIGNED_ACCESS.   

References ggc_alloc().

◆ default_speculation_safe_value()

rtx default_speculation_safe_value ( machine_mode mode,
rtx result,
rtx val,
rtx failval )
extern
Default implementation of the speculation-safe-load builtin.  This
implementation simply copies val to result and generates a
speculation_barrier insn, if such a pattern is defined.   

References emit_insn(), emit_move_insn(), and ggc_alloc().

◆ default_split_reduction()

machine_mode default_split_reduction ( machine_mode mode)
extern
By default do not split reductions further.   

◆ default_stack_clash_protection_alloca_probe_range()

HOST_WIDE_INT default_stack_clash_protection_alloca_probe_range ( void )
extern
Default implementation for
TARGET_STACK_CLASH_PROTECTION_ALLOCA_PROBE_RANGE.   

◆ default_stack_protect_guard()

◆ default_static_chain()

rtx default_static_chain ( const_tree ,
bool  )
extern

◆ default_static_rtx_alignment()

HOST_WIDE_INT default_static_rtx_alignment ( machine_mode mode)
extern
The default implementation of TARGET_STATIC_RTX_ALIGNMENT.   

References GET_MODE_ALIGNMENT.

◆ default_target_can_inline_p()

bool default_target_can_inline_p ( tree caller,
tree callee )
extern

◆ default_target_option_override()

void default_target_option_override ( void )
extern

◆ default_target_option_pragma_parse()

bool default_target_option_pragma_parse ( tree ,
tree  )
extern

◆ default_target_option_valid_attribute_p()

bool default_target_option_valid_attribute_p ( tree ,
tree ,
tree ,
int  )
extern

◆ default_target_option_valid_version_attribute_p()

bool default_target_option_valid_version_attribute_p ( tree ,
tree ,
tree ,
int  )
extern

◆ default_trampoline_init()

void default_trampoline_init ( rtx ,
tree ,
rtx  )
extern

◆ default_translate_mode_attribute()

machine_mode default_translate_mode_attribute ( machine_mode mode)
extern
The default implementation of TARGET_TRANSLATE_MODE_ATTRIBUTE.   

◆ default_unspec_may_trap_p()

int default_unspec_may_trap_p ( const_rtx x,
unsigned flags )
extern

◆ default_unwind_word_mode()

scalar_int_mode default_unwind_word_mode ( void )
extern

References word_mode.

◆ default_update_ipa_fn_target_info()

bool default_update_ipa_fn_target_info ( unsigned int & ,
const gimple *  )
extern

◆ default_use_by_pieces_infrastructure_p()

bool default_use_by_pieces_infrastructure_p ( unsigned HOST_WIDE_INT size,
unsigned int alignment,
enum by_pieces_operation op,
bool speed_p )
extern
Return TRUE if the move_by_pieces/set_by_pieces infrastructure should be
used; return FALSE if the cpymem/setmem optab should be expanded, or
a call to memcpy emitted.   

References by_pieces_ninsns(), CLEAR_BY_PIECES, COMPARE_BY_PIECES, COMPARE_MAX_PIECES, get_move_ratio(), ggc_alloc(), MOVE_BY_PIECES, MOVE_MAX_PIECES, SET_BY_PIECES, STORE_BY_PIECES, and STORE_MAX_PIECES.

◆ default_valid_pointer_mode()

bool default_valid_pointer_mode ( scalar_int_mode mode)
extern
Determine whether or not a pointer mode is valid. Assume defaults
of ptr_mode or Pmode - can be overridden.   

References ggc_alloc(), and ptr_mode.

◆ default_vector_alignment()

HOST_WIDE_INT default_vector_alignment ( const_tree type)
extern
Default to natural alignment for vector types, bounded by
MAX_OFILE_ALIGNMENT.   

References GET_MODE_ALIGNMENT, ggc_alloc(), MAX, MAX_OFILE_ALIGNMENT, tree_fits_uhwi_p(), tree_to_uhwi(), TYPE_MODE, and TYPE_SIZE.

◆ default_vectorize_create_costs()

vector_costs * default_vectorize_create_costs ( vec_info * vinfo,
bool costing_for_scalar )
extern
By default, the cost model accumulates three separate costs (prologue,
loop body, and epilogue) for a vectorized loop or block.  So allocate an
array of three unsigned ints, set it to zero, and return its address.   

References ggc_alloc().

◆ default_vectorize_related_mode()

opt_machine_mode default_vectorize_related_mode ( machine_mode vector_mode,
scalar_mode element_mode,
poly_uint64 nunits )
extern
The default implementation of TARGET_VECTORIZE_RELATED_MODE.   

References element_mode(), GET_MODE_SIZE(), ggc_alloc(), mode_for_vector(), targetm, and VECTOR_MODE_P.

◆ default_zero_call_used_regs()

◆ glibc_linux_libm_function_max_error()

◆ gnu_libc_has_function()

bool gnu_libc_has_function ( enum function_class,
tree type )
extern

◆ hook_bool_const_rtx_commutative_p()

bool hook_bool_const_rtx_commutative_p ( const_rtx x,
int outer_code )
extern

References COMMUTATIVE_P.

◆ hook_bool_CUMULATIVE_ARGS_arg_info_false()

bool hook_bool_CUMULATIVE_ARGS_arg_info_false ( cumulative_args_t ,
const function_arg_info &  )
extern

◆ hook_bool_CUMULATIVE_ARGS_arg_info_true()

bool hook_bool_CUMULATIVE_ARGS_arg_info_true ( cumulative_args_t ,
const function_arg_info &  )
extern

◆ hook_bool_CUMULATIVE_ARGS_false()

bool hook_bool_CUMULATIVE_ARGS_false ( cumulative_args_t ca)
extern
These are here, and not in hooks.[ch], because not all users of
hooks.h include tm.h, and thus we don't have CUMULATIVE_ARGS.   
Generic hook that takes a CUMULATIVE_ARGS pointer and returns false.   

◆ hook_bool_CUMULATIVE_ARGS_true()

bool hook_bool_CUMULATIVE_ARGS_true ( cumulative_args_t a)
extern
Generic hook that takes a CUMULATIVE_ARGS pointer and returns true.   

◆ hook_callee_copies_named()

bool hook_callee_copies_named ( cumulative_args_t ca,
const function_arg_info & arg )
extern
Return true if a parameter follows callee copies conventions.  This
version of the hook is true for all named arguments.   

References function_arg_info::named.

◆ hook_int_CUMULATIVE_ARGS_arg_info_0()

int hook_int_CUMULATIVE_ARGS_arg_info_0 ( cumulative_args_t ,
const function_arg_info &  )
extern

◆ hook_invalid_arg_for_unprototyped_fn()

const char * hook_invalid_arg_for_unprototyped_fn ( const_tree typelist,
const_tree funcdecl,
const_tree val )
extern

References NULL.

◆ hook_pass_by_reference_must_pass_in_stack()

bool hook_pass_by_reference_must_pass_in_stack ( cumulative_args_t ,
const function_arg_info & arg )
extern
Return true if a parameter must be passed by reference.  This version
of the TARGET_PASS_BY_REFERENCE hook uses just MUST_PASS_IN_STACK.   

References targetm.

◆ hook_void_bitmap()

void hook_void_bitmap ( bitmap regs)
extern

◆ hook_void_CUMULATIVE_ARGS()

void hook_void_CUMULATIVE_ARGS ( cumulative_args_t )
extern

◆ hook_void_CUMULATIVE_ARGS_rtx_tree()

void hook_void_CUMULATIVE_ARGS_rtx_tree ( cumulative_args_t ,
rtx ,
tree  )
extern

◆ hook_void_CUMULATIVE_ARGS_tree()

void hook_void_CUMULATIVE_ARGS_tree ( cumulative_args_t ca,
tree  )
extern

◆ no_c99_libc_has_function()

bool no_c99_libc_has_function ( enum function_class,
tree type )
extern

◆ speculation_safe_value_not_needed()

bool speculation_safe_value_not_needed ( bool active)
extern
Alternative implementation of TARGET_HAVE_SPECULATION_SAFE_VALUE
that can be used on targets that never have speculative execution.   

◆ std_gimplify_va_arg_expr()

◆ targhook_float_words_big_endian()

bool targhook_float_words_big_endian ( void )
extern

◆ targhook_words_big_endian()

bool targhook_words_big_endian ( void )
extern
Make some target macros useable by target-independent code.   

References ggc_alloc().