GCC Middle and Back End API Reference
|
Variables | |
static tree | stack_chk_guard_decl |
static tree | stack_chk_fail_decl |
unsigned default_add_stmt_cost | ( | void * | data, |
int | count, | ||
enum vect_cost_for_stmt | kind, | ||
struct _stmt_vec_info * | stmt_info, | ||
int | misalign, | ||
enum vect_cost_model_location | where | ||
) |
By default, the cost model looks up the cost of the given statement kind and mode, multiplies it by the occurrence count, accumulates it into the cost specified by WHERE, and returns the cost added.
References default_builtin_vectorization_cost(), stmt_cost(), stmt_in_inner_loop_p(), stmt_vectype(), and vect_body.
enum machine_mode default_addr_space_address_mode | ( | ) |
Return the mode for an address in a given ADDRSPACE, defaulting to Pmode for the generic address space only.
Referenced by target_default_pointer_address_modes_p().
The default hook for TARGET_ADDR_SPACE_CONVERT. This hook should never be called for targets with only a generic address space.
bool default_addr_space_legitimate_address_p | ( | enum machine_mode | mode, |
rtx | mem, | ||
bool | strict, | ||
addr_space_t | as | ||
) |
Named address space version of legitimate_address_p.
References targetm.
rtx default_addr_space_legitimize_address | ( | rtx | x, |
rtx | oldx, | ||
enum machine_mode | mode, | ||
addr_space_t | as | ||
) |
Named address space version of LEGITIMIZE_ADDRESS.
References targetm.
enum machine_mode default_addr_space_pointer_mode | ( | ) |
Return the mode for a pointer to a given ADDRSPACE, defaulting to ptr_mode for the generic address space only.
References ptr_mode.
Referenced by target_default_pointer_address_modes_p().
bool default_addr_space_subset_p | ( | ) |
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.
bool default_addr_space_valid_pointer_mode | ( | ) |
Named address space version of valid_pointer_mode.
References targetm.
unsigned int default_autovectorize_vector_sizes | ( | void | ) |
By default only the size derived from the preferred vector mode is tried.
reg_class_t default_branch_target_register_class | ( | void | ) |
tree default_builtin_reciprocal | ( | unsigned int | fn, |
bool | md_fn, | ||
bool | sqrt | ||
) |
Reciprocal.
rtx default_builtin_setjmp_frame_value | ( | void | ) |
The default implementation of TARGET_BUILTIN_SETJMP_FRAME_VALUE.
bool default_builtin_support_vector_misalignment | ( | enum machine_mode | mode, |
const_tree | type, | ||
int | misalignment, | ||
bool | is_packed | ||
) |
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 optab_handler().
bool default_builtin_vector_alignment_reachable | ( | ) |
References tree_int_cst_compare().
int default_builtin_vectorization_cost | ( | enum vect_cost_for_stmt | type_of_cost, |
tree | vectype, | ||
int | misalign | ||
) |
Default vectorizer cost model values.
References cond_branch_not_taken, cond_branch_taken, scalar_load, scalar_stmt, scalar_store, scalar_to_vec, unaligned_load, unaligned_store, vec_construct, vec_perm, vec_promote_demote, vec_to_scalar, vector_load, vector_stmt, and vector_store.
Referenced by default_add_stmt_cost().
Vectorized conversion.
Mapping of builtin functions to vectorized variants.
void default_canonicalize_comparison | ( | ) |
Default version of canonicalize_comparison.
unsigned int default_case_values_threshold | ( | void | ) |
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.
enum machine_mode default_cc_modes_compatible | ( | ) |
bool default_class_likely_spilled_p | ( | ) |
The default implementation of TARGET_CLASS_LIKELY_SPILLED_P.
unsigned char default_class_max_nregs | ( | reg_class_t | rclass, |
enum machine_mode | mode | ||
) |
The default implementation of TARGET_CLASS_MAX_NREGS.
enum machine_mode default_cstore_mode | ( | ) |
Default version of cstore_mode.
References insn_data.
tree default_cxx_get_cookie_size | ( | ) |
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 size_in_bytes().
tree default_cxx_guard_type | ( | void | ) |
The generic C++ ABI specifies this is a 64-bit value.
enum unwind_info_type default_debug_unwind_info | ( | void | ) |
Determine the debugging unwind mechanism for the target.
References DWARF2_DEBUG, UI_DWARF2, UI_NONE, and VMS_AND_DWARF2_DEBUG.
bool default_decimal_float_supported_p | ( | void | ) |
True if the target supports decimal floating point.
void default_destroy_cost_data | ( | ) |
Free the cost data.
References free().
bool default_different_addr_displacement_p | ( | void | ) |
enum machine_mode default_eh_return_filter_mode | ( | void | ) |
References targetm.
void default_external_libcall | ( | ) |
References asm_out_file.
tree default_external_stack_protect_fail | ( | void | ) |
References build_call_expr(), build_function_type_list(), get_identifier(), stack_chk_fail_decl, and VISIBILITY_DEFAULT.
Referenced by default_hidden_stack_protect_fail().
void default_finish_cost | ( | void * | data, |
unsigned * | prologue_cost, | ||
unsigned * | body_cost, | ||
unsigned * | epilogue_cost | ||
) |
By default, the cost model just returns the accumulated costs.
References vect_body, vect_epilogue, and vect_prologue.
bool default_fixed_point_supported_p | ( | void | ) |
True if the target supports fixed-point arithmetic.
rtx default_function_arg | ( | cumulative_args_t | ca, |
enum machine_mode | mode, | ||
const_tree | type, | ||
bool | named | ||
) |
void default_function_arg_advance | ( | cumulative_args_t | ca, |
enum machine_mode | mode, | ||
const_tree | type, | ||
bool | named | ||
) |
unsigned int default_function_arg_boundary | ( | enum machine_mode | mode, |
const_tree | type | ||
) |
unsigned int default_function_arg_round_boundary | ( | enum machine_mode | mode, |
const_tree | type | ||
) |
rtx default_function_incoming_arg | ( | cumulative_args_t | ca, |
enum machine_mode | mode, | ||
const_tree | type, | ||
bool | named | ||
) |
rtx default_function_value | ( | const_tree | ret_type, |
const_tree | fn_decl_or_type, | ||
bool | outgoing | ||
) |
bool default_function_value_regno_p | ( | ) |
The default hook for TARGET_FUNCTION_VALUE_REGNO_P.
void* default_get_pch_validity | ( | ) |
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, cl_option_state::data, memcpy(), option_affects_pch_p(), cl_option_state::size, target_flags, and targetm.
enum machine_mode default_get_reg_raw_mode | ( | ) |
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.
bool default_hard_regno_scratch_ok | ( | ) |
bool default_has_ifunc_p | ( | void | ) |
True if the target supports GNU indirect functions.
bool default_have_conditional_execution | ( | void | ) |
tree default_hidden_stack_protect_fail | ( | void | ) |
void* default_init_cost | ( | ) |
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 vect_body, vect_epilogue, and vect_prologue.
rtx default_internal_arg_pointer | ( | void | ) |
References copy_to_reg().
const char* default_invalid_within_doloop | ( | ) |
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 computed_jump_p(), and tablejump_p().
bool default_legitimate_address_p | ( | enum machine_mode | mode, |
rtx | addr, | ||
bool | strict | ||
) |
@verbatim Default target hook functions.
Copyright (C) 2003-2013 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.
enum machine_mode default_libgcc_cmp_return_mode | ( | void | ) |
References word_mode.
enum machine_mode default_libgcc_shift_count_mode | ( | void | ) |
References word_mode.
bool default_lra_p | ( | void | ) |
tree default_mangle_assembler_name | ( | ) |
The default implementation of TARGET_MANGLE_ASSEMBLER_NAME.
References get_identifier(), targetm, and user_label_prefix.
bool default_member_type_forces_blk | ( | ) |
Default version of member_type_forces_blk.
int default_memory_move_cost | ( | enum machine_mode | mode, |
reg_class_t | rclass, | ||
bool | in | ||
) |
Compute cost of moving registers to/from memory.
References memory_move_secondary_cost().
unsigned int default_min_divisions_for_recip_mul | ( | ) |
The default implementation of TARGET_MIN_DIVISIONS_FOR_RECIP_MUL.
References have_insn_for().
bool default_mode_dependent_address_p | ( | const_rtx | addr, |
addr_space_t | addrspace | ||
) |
The default implementation of TARGET_MODE_DEPENDENT_ADDRESS_P.
enum machine_mode default_mode_for_suffix | ( | ) |
Return machine mode for non-standard suffix or VOIDmode if non-standard suffixes are unsupported.
int default_mode_rep_extended | ( | enum machine_mode | mode, |
enum machine_mode | mode_rep | ||
) |
The default implementation of TARGET_MODE_REP_EXTENDED.
const char* default_pch_valid_p | ( | ) |
Default version of pch_valid_p.
References cl_options, cl_options_count, cl_option_state::data, memcpy(), option_affects_pch_p(), pch_option_mismatch(), cl_option_state::size, target_flags, and targetm.
reg_class_t default_preferred_output_reload_class | ( | rtx | x, |
reg_class_t | rclass | ||
) |
The default implementation of TARGET_OUTPUT_PREFERRED_RELOAD_CLASS.
reg_class_t default_preferred_reload_class | ( | rtx | x, |
reg_class_t | rclass | ||
) |
The default implementation of TARGET_PREFERRED_RELOAD_CLASS.
reg_class_t default_preferred_rename_class | ( | ) |
The default implementation of TARGET_PREFERRED_RENAME_CLASS.
enum machine_mode default_preferred_simd_mode | ( | ) |
By default, only attempt to parallelize bitwise operations, and possibly adds/subtracts using bit-twiddling.
References word_mode.
bool default_pretend_outgoing_varargs_named | ( | ) |
References default_setup_incoming_varargs(), and targetm.
void default_print_operand | ( | FILE * | stream, |
rtx | x, | ||
int | code | ||
) |
Emit to STREAM the assembler syntax for insn operand X.
void default_print_operand_address | ( | FILE * | stream, |
rtx | x | ||
) |
Emit to STREAM the assembler syntax for an insn operand whose memory address is X.
bool default_print_operand_punct_valid_p | ( | ) |
Return true if CODE is a valid punctuation character for the `print_operand' hook.
bool default_profile_before_prologue | ( | void | ) |
enum machine_mode default_promote_function_mode | ( | const_tree | type, |
enum machine_mode | mode, | ||
int * | punsignedp, | ||
const_tree | funtype, | ||
int | for_return | ||
) |
References promote_mode().
enum machine_mode default_promote_function_mode_always_promote | ( | const_tree | type, |
enum machine_mode | mode, | ||
int * | punsignedp, | ||
const_tree | funtype, | ||
int | for_return | ||
) |
References promote_mode().
bool default_ref_may_alias_errno | ( | ) |
Determine whether the memory reference specified by REF may alias the C libraries errno location.
References pt_solution::anything, ao_ref_base(), pt_solution::nonlocal, and ptr_info_def::pt.
int default_register_move_cost | ( | enum machine_mode | mode, |
reg_class_t | from, | ||
reg_class_t | to | ||
) |
Compute cost of moving data from a register of class FROM to one of TO, using MODE.
int default_register_priority | ( | ) |
bool default_register_usage_leveling_p | ( | void | ) |
int default_reloc_rw_mask | ( | void | ) |
By default, if flag_pic is true, then neither local nor global relocs should be placed in readonly memory.
bool default_return_in_memory | ( | const_tree | type, |
const_tree | fntype | ||
) |
bool default_scalar_mode_supported_p | ( | ) |
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.c.
reg_class_t default_secondary_reload | ( | bool | in_p, |
rtx | x, | ||
reg_class_t | reload_class_i, | ||
enum machine_mode | reload_mode, | ||
secondary_reload_info * | sri | ||
) |
void default_setup_incoming_varargs | ( | cumulative_args_t | ca, |
enum machine_mode | mode, | ||
tree | type, | ||
int * | pretend_arg_size, | ||
int | second_time | ||
) |
Referenced by default_pretend_outgoing_varargs_named().
unsigned HOST_WIDE_INT default_shift_truncation_mask | ( | ) |
The default implementation of TARGET_SHIFT_TRUNCATION_MASK.
tree default_stack_protect_guard | ( | void | ) |
References get_identifier(), and stack_chk_guard_decl.
rtx default_static_chain | ( | ) |
References gen_rtx_MEM(), gen_rtx_REG(), and sorry().
bool default_target_can_inline_p | ( | ) |
References warning().
bool default_target_option_valid_attribute_p | ( | tree | ARG_UNUSEDfndecl, |
tree | ARG_UNUSEDname, | ||
tree | ARG_UNUSEDargs, | ||
int | ARG_UNUSEDflags | ||
) |
References warning().
void default_trampoline_init | ( | rtx | ARG_UNUSEDm_tramp, |
tree | ARG_UNUSEDt_func, | ||
rtx | ARG_UNUSEDr_chain | ||
) |
References sorry().
int default_unspec_may_trap_p | ( | ) |
References may_trap_p_1().
enum machine_mode default_unwind_word_mode | ( | void | ) |
References word_mode.
bool default_valid_pointer_mode | ( | ) |
Determine whether or not a pointer mode is valid. Assume defaults of ptr_mode or Pmode - can be overridden.
References ptr_mode.
HOST_WIDE_INT default_vector_alignment | ( | ) |
Default to natural alignment for vector types.
References tree_low_cst().
bool hook_bool_const_rtx_commutative_p | ( | const_rtx | x, |
int | outer_code | ||
) |
bool hook_bool_CUMULATIVE_ARGS_false | ( | ) |
Generic hook that takes a CUMULATIVE_ARGS pointer and returns false.
bool hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false | ( | cumulative_args_t | ca, |
enum machine_mode | mode, | ||
const_tree | type, | ||
bool | named | ||
) |
bool hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true | ( | cumulative_args_t | ca, |
enum machine_mode | mode, | ||
const_tree | type, | ||
bool | named | ||
) |
bool hook_bool_CUMULATIVE_ARGS_true | ( | ) |
Generic hook that takes a CUMULATIVE_ARGS pointer and returns true.
bool hook_callee_copies_named | ( | cumulative_args_t | ca, |
enum machine_mode | mode, | ||
const_tree | type, | ||
bool | named | ||
) |
Return true if a parameter follows callee copies conventions. This version of the hook is true for all named arguments.
int hook_int_CUMULATIVE_ARGS_mode_tree_bool_0 | ( | cumulative_args_t | ca, |
enum machine_mode | mode, | ||
tree | type, | ||
bool | named | ||
) |
const char* hook_invalid_arg_for_unprototyped_fn | ( | const_tree | typelist, |
const_tree | funcdecl, | ||
const_tree | val | ||
) |
bool hook_pass_by_reference_must_pass_in_stack | ( | cumulative_args_t | c, |
enum machine_mode | mode, | ||
const_tree | type, | ||
bool | named_arg | ||
) |
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.
void hook_void_bitmap | ( | ) |
|
inlinestatic |
Return true if the state of option OPTION should be stored in PCH files and checked by default_pch_valid_p. Store the option's current state in STATE if so.
References cl_options, get_option_state(), option_flag_var(), target_flags, and targetm.
Referenced by default_get_pch_validity(), and default_pch_valid_p().
|
static |
Return a message which says that a PCH file was created with a different setting of OPTION.
Referenced by default_pch_valid_p().
bool target_default_pointer_address_modes_p | ( | void | ) |
Some places still assume that all pointer or address modes are the standard Pmode and ptr_mode. These optimizations become invalid if the target actually supports multiple different modes. For now, we disable such optimizations on such targets, using this function.
References default_addr_space_address_mode(), default_addr_space_pointer_mode(), and targetm.
Referenced by find_base_term(), find_base_value(), nonzero_bits1(), num_sign_bit_copies1(), and simplify_unary_operation_1().
bool targhook_float_words_big_endian | ( | void | ) |
bool targhook_words_big_endian | ( | void | ) |
Make some target macros useable by target-independent code.
|
static |
Referenced by default_external_stack_protect_fail(), and default_hidden_stack_protect_fail().
|
static |
Initialize the stack protection decls.
Stack protection related decls living in libgcc.
Referenced by default_stack_protect_guard().