GCC Middle and Back End API Reference
target.h File Reference
#include "insn-codes.h"
#include "tm.h"
#include "hard-reg-set.h"
#include "target.def"
Include dependency graph for target.h:

Go to the source code of this file.

Data Structures

union  cumulative_args_t
 
struct  bitint_info
 
struct  secondary_reload_info
 
struct  asm_int_op
 

Macros

#define DEFHOOKPOD(NAME, DOC, TYPE, INIT)   TYPE NAME;
 
#define DEFHOOK(NAME, DOC, TYPE, PARAMS, INIT)   TYPE (* NAME) PARAMS;
 
#define DEFHOOK_UNDOC   DEFHOOK
 
#define HOOKSTRUCT(FRAGMENT)   FRAGMENT
 

Typedefs

typedef vec< machine_mode > vector_modes
 
typedef auto_vec< machine_mode, 8 > auto_vector_modes
 
typedef void(* emit_support_tinfos_callback) (tree)
 

Enumerations

enum  by_pieces_operation {
  CLEAR_BY_PIECES , MOVE_BY_PIECES , SET_BY_PIECES , STORE_BY_PIECES ,
  COMPARE_BY_PIECES
}
 
enum  vect_cost_for_stmt {
  scalar_stmt , scalar_load , scalar_store , vector_stmt ,
  vector_load , vector_gather_load , unaligned_load , unaligned_store ,
  vector_store , vector_scatter_store , vec_to_scalar , scalar_to_vec ,
  cond_branch_not_taken , cond_branch_taken , vec_perm , vec_promote_demote ,
  vec_construct
}
 
enum  vect_cost_model_location { vect_prologue = 0 , vect_body = 1 , vect_epilogue = 2 }
 
enum  omp_device_kind_arch_isa { omp_device_kind , omp_device_arch , omp_device_isa }
 
enum  type_context_kind {
  TCTX_SIZEOF , TCTX_ALIGNOF , TCTX_STATIC_STORAGE , TCTX_THREAD_STORAGE ,
  TCTX_FIELD , TCTX_ARRAY_ELEMENT , TCTX_POINTER_ARITH , TCTX_ALLOCATION ,
  TCTX_DEALLOCATION , TCTX_EXCEPTIONS , TCTX_CAPTURE_BY_COPY
}
 
enum  poly_value_estimate_kind { POLY_VALUE_MIN , POLY_VALUE_MAX , POLY_VALUE_LIKELY }
 

Functions

unsigned HOST_WIDE_INT by_pieces_ninsns (unsigned HOST_WIDE_INT, unsigned int, unsigned int, by_pieces_operation)
 
void elf_record_gcc_switches (const char *)
 
bool target_default_pointer_address_modes_p (void)
 
unsigned int get_move_ratio (bool)
 
tree stmt_vectype (class _stmt_vec_info *)
 
bool stmt_in_inner_loop_p (class vec_info *, class _stmt_vec_info *)
 
bool verify_type_context (location_t, type_context_kind, const_tree, bool=false)
 
HOST_WIDE_INT estimated_poly_value (poly_int64 x, poly_value_estimate_kind kind=POLY_VALUE_LIKELY)
 

Variables

const unsigned int VECT_COMPARE_COSTS = 1U << 0
 
struct gcc_target targetm
 

Macro Definition Documentation

◆ DEFHOOK

#define DEFHOOK ( NAME,
DOC,
TYPE,
PARAMS,
INIT )   TYPE (* NAME) PARAMS;

◆ DEFHOOK_UNDOC

#define DEFHOOK_UNDOC   DEFHOOK

◆ DEFHOOKPOD

#define DEFHOOKPOD ( NAME,
DOC,
TYPE,
INIT )   TYPE NAME;
The target structure.  This holds all the backend hooks.   

◆ HOOKSTRUCT

#define HOOKSTRUCT ( FRAGMENT)    FRAGMENT

Typedef Documentation

◆ auto_vector_modes

typedef auto_vec<machine_mode, 8> auto_vector_modes
Same, but can be used to construct local lists that are
automatically freed.   

◆ emit_support_tinfos_callback

typedef void(* emit_support_tinfos_callback) (tree)

◆ vector_modes

typedef vec<machine_mode> vector_modes
The type to use for lists of vector sizes.   

Enumeration Type Documentation

◆ by_pieces_operation

Types of memory operation understood by the "by_pieces" infrastructure.
Used by the TARGET_USE_BY_PIECES_INFRASTRUCTURE_P target hook and
internally by the functions in expr.cc.   
Enumerator
CLEAR_BY_PIECES 
MOVE_BY_PIECES 
SET_BY_PIECES 
STORE_BY_PIECES 
COMPARE_BY_PIECES 

◆ omp_device_kind_arch_isa

First argument of targetm.omp.device_kind_arch_isa.   
Enumerator
omp_device_kind 
omp_device_arch 
omp_device_isa 

◆ poly_value_estimate_kind

Enumerator
POLY_VALUE_MIN 
POLY_VALUE_MAX 
POLY_VALUE_LIKELY 

◆ type_context_kind

The contexts in which the use of a type T can be checked by
TARGET_VERIFY_TYPE_CONTEXT.   
Enumerator
TCTX_SIZEOF 
TCTX_ALIGNOF 
TCTX_STATIC_STORAGE 
TCTX_THREAD_STORAGE 
TCTX_FIELD 
TCTX_ARRAY_ELEMENT 
TCTX_POINTER_ARITH 
TCTX_ALLOCATION 
TCTX_DEALLOCATION 
TCTX_EXCEPTIONS 
TCTX_CAPTURE_BY_COPY 

◆ vect_cost_for_stmt

Types of costs for vectorizer cost model.   
Enumerator
scalar_stmt 
scalar_load 
scalar_store 
vector_stmt 
vector_load 
vector_gather_load 
unaligned_load 
unaligned_store 
vector_store 
vector_scatter_store 
vec_to_scalar 
scalar_to_vec 
cond_branch_not_taken 
cond_branch_taken 
vec_perm 
vec_promote_demote 
vec_construct 

◆ vect_cost_model_location

Separate locations for which the vectorizer cost model should
track costs.   
Enumerator
vect_prologue 
vect_body 
vect_epilogue 

Function Documentation

◆ by_pieces_ninsns()

unsigned HOST_WIDE_INT by_pieces_ninsns ( unsigned HOST_WIDE_INT l,
unsigned int align,
unsigned int max_size,
by_pieces_operation op )
extern
Return number of insns required to perform operation OP by pieces
for L bytes.  ALIGN (in bits) is maximum alignment we can assume.   

References alignment_for_piecewise_move(), COMPARE_BY_PIECES, gcc_assert, GET_MODE_ALIGNMENT, GET_MODE_SIZE(), MOVE_MAX_PIECES, optab_handler(), ROUND_UP, targetm, and widest_fixed_size_mode_for_size().

Referenced by default_use_by_pieces_infrastructure_p(), and op_by_pieces_d::op_by_pieces_d().

◆ elf_record_gcc_switches()

void elf_record_gcc_switches ( const char * options)
extern
An example implementation for ELF targets.  Defined in varasm.cc   
This function provides a possible implementation of the
TARGET_ASM_RECORD_GCC_SWITCHES target hook for ELF targets.  When triggered
by -frecord-gcc-switches it creates a new mergeable, string section in the
assembler output file called TARGET_ASM_RECORD_GCC_SWITCHES_SECTION which
contains the switches in ASCII format.

FIXME: This code does not correctly handle double quote characters
that appear inside strings, (it strips them rather than preserving them).
FIXME: ASM_OUTPUT_ASCII, as defined in config/elfos.h will not emit NUL
characters - instead it treats them as sub-string separators.  Since
we want to emit NUL strings terminators into the object file we have to use
ASM_OUTPUT_SKIP.   

References asm_out_file, ASM_OUTPUT_ASCII, get_section(), NULL, SECTION_DEBUG, SECTION_ENTSIZE, SECTION_MERGE, SECTION_STRINGS, switch_to_section(), and targetm.

◆ estimated_poly_value()

HOST_WIDE_INT estimated_poly_value ( poly_int64 x,
poly_value_estimate_kind kind = POLY_VALUE_LIKELY )
inline
Return an estimate of the runtime value of X, for use in things
like cost calculations or profiling frequencies.  Note that this
function should never be used in situations where the actual
runtime value is needed for correctness, since the function only
provides a rough guess.   

References poly_int< N, C >::coeffs, NUM_POLY_INT_COEFFS, and targetm.

Referenced by vector_costs::better_epilogue_loop_than_p(), vector_costs::compare_inside_loop_cost(), default_builtin_vectorization_cost(), defer_stack_allocation(), estimate_move_cost(), estimated_stack_frame_size(), rtx_cost(), vect_nunits_for_cost(), vect_print_slp_tree(), vect_small_gap_p(), and vect_vf_for_cost().

◆ get_move_ratio()

unsigned int get_move_ratio ( bool speed_p)
extern
For hooks which use the MOVE_RATIO macro, this gives the legacy default
behavior.   
For hooks which use the MOVE_RATIO macro, this gives the legacy default
behavior.  SPEED_P is true if we are compiling for speed.   

Referenced by default_use_by_pieces_infrastructure_p(), and sra_get_max_scalarization_size().

◆ stmt_in_inner_loop_p()

bool stmt_in_inner_loop_p ( vec_info * vinfo,
class _stmt_vec_info * stmt_info )
extern
Return TRUE iff the given statement is in an inner loop relative to
the loop being vectorized.   

References dyn_cast(), gimple_bb(), loop::inner, basic_block_def::loop_father, LOOP_VINFO_LOOP, and STMT_VINFO_STMT.

Referenced by vector_costs::adjust_cost_for_freq().

◆ stmt_vectype()

tree stmt_vectype ( class _stmt_vec_info * stmt_info)
extern
These are defined in tree-vect-stmts.cc.   
Statement Analysis and Transformation for Vectorization
   Copyright (C) 2003-2024 Free Software Foundation, Inc.
   Contributed by Dorit Naishlos <dorit@il.ibm.com>
   and Ira Rosen <irar@il.ibm.com>

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/>.   
For lang_hooks.types.type_for_mode.   
Return the vectorized type for the given statement.   

References STMT_VINFO_VECTYPE.

Referenced by vect_determine_vf_for_stmt_1(), and vect_get_vec_defs_for_operand().

◆ target_default_pointer_address_modes_p()

bool target_default_pointer_address_modes_p ( void )
extern
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_context::simplify_unary_operation_1().

◆ verify_type_context()

bool verify_type_context ( location_t loc,
type_context_kind context,
const_tree type,
bool silent_p )
extern
A wrapper around TARGET_VERIFY_TYPE_CONTEXT that makes the silent_p
parameter default to false and that weeds out error_mark_node.   

References error_mark_node, gcc_assert, targetm, and TYPE_P.

Variable Documentation

◆ targetm

struct gcc_target targetm
extern

Referenced by add_ehspec_entry(), add_iv_candidate_for_doloop(), add_labels_and_missing_jumps(), addr_for_mem_ref(), addr_offset_valid_p(), address_cost(), adjust_address_1(), adjust_mems(), aggregate_value_p(), align_variable(), alignment_for_piecewise_move(), allocate_dynamic_stack_space(), allocate_initial_values(), allocate_reload_reg(), allocate_struct_function(), cgraph_node::analyze(), analyze_function_body(), anti_adjust_stack_and_probe_stack_clash(), apply_args_size(), apply_result_size(), approx_reg_cost(), arithmetic_flags_clobber_p(), asan_needs_local_alias(), asan_shadow_offset(), assemble_constant_contents(), varpool_node::assemble_decl(), assemble_external_libcall(), assemble_integer(), assemble_name_resolve(), assemble_start_function(), assemble_trampoline_template(), assemble_undefined_decl(), assemble_variable(), assemble_variable_contents(), assign_by_spills(), assign_filter_values(), assign_parm_adjust_stack_rtl(), assign_parm_find_data_types(), assign_parm_find_entry_rtl(), assign_parm_setup_reg(), assign_parm_setup_stack(), assign_parms(), assign_parms_augmented_arg_list(), assign_parms_setup_varargs(), assign_parms_unsplit_complex(), assign_spill_hard_regs(), assign_stack_local_1(), avoid_constant_pool_reference(), avoid_likely_spilled_reg(), find_comparison_dom_walker::before_dom_children(), bitint_precision_kind(), bitwise_mode_for_mode(), bitwise_mode_for_size(), block_move_libcall_safe_for_call_parm(), build_builtin_function(), build_cdtor(), build_cdtor_fns(), build_common_builtin_nodes(), build_common_tree_nodes(), build_constant_desc(), build_cxa_atexit_fns(), build_pointer_type_for_mode(), build_range_check(), build_reference_type_for_mode(), build_truth_vector_type_for(), build_var(), builtin_vectorization_cost(), by_pieces_ninsns(), call_may_clobber_ref_p_1(), can_assign_to_reg_without_clobbers_p(), can_change_dest_mode(), can_combine_p(), can_do_by_pieces(), can_eliminate_compare(), can_extend_p(), can_implement_as_sibling_call_p(), can_inline_edge_p(), can_merge_compare_into_arith(), can_move_insns_across(), can_store_by_pieces(), can_vec_mask_load_store_p(), can_vec_perm_const_p(), cant_combine_insn_p(), tree_switch_conversion::jump_table_cluster::case_values_threshold(), categorize_decl_for_section(), cfg_layout_can_duplicate_bb_p(), cfg_layout_finalize(), cgraph_build_static_cdtor_1(), check_and_make_def_conflict(), check_and_process_move(), check_cond_move_block(), check_dependency(), check_fnspec(), check_load_store_for_partial_vectors(), check_loadstore(), check_new_reg_p(), check_secondary_memory_needed_p(), choose_hard_reg_mode(), choose_reload_regs(), choose_split_class(), clear_padding_bitint_needs_padding_p(), clear_padding_type(), clear_storage_hints(), collect_fn_hard_reg_usage(), combinable_i3pat(), combine_reaching_defs(), combine_reload_insn(), combine_reloads(), comp_type_attributes(), compile_file(), compress_float_constant(), compute_const_anchors(), compute_objsize_r(), compute_record_mode(), compute_reloc_for_constant(), cond_exec_find_if_block(), cond_move_process_if_block(), conforming_compare(), connect_traces(), const_ok_for_output_1(), const_unop(), constrain_operands(), convert_conditional_op(), convert_debug_memory_address(), convert_memory_address_addr_space_1(), convert_mode_scalar(), convert_modes(), convert_optab_handler(), convert_to_integer_1(), copy_blkmode_from_reg(), copy_blkmode_to_reg(), copy_cost(), copyprop_hardreg_forward_1(), create_cie_data(), create_dispatcher_calls(), create_eh_forwarder_block(), create_odr_indicator(), cgraph_node::create_version_clone_with_body(), cse_cc_succs(), cse_condition_code_reg(), cse_insn(), curr_insn_transform(), dbr_schedule(), dead_or_predicable(), debug_rli(), decide_unroll_constant_iterations(), decide_unroll_runtime_iterations(), decide_unroll_stupid(), decl_attributes(), decl_binds_to_current_def_p(), decl_default_tls_model(), decrease_live_ranges_number(), default_addr_space_legitimate_address_p(), default_addr_space_legitimize_address(), default_addr_space_valid_pointer_mode(), default_binds_local_p_3(), default_case_values_threshold(), default_dwarf_frame_reg_mode(), default_eh_return_filter_mode(), default_elf_asm_named_section(), default_elf_asm_output_external(), default_elf_select_rtx_section(), default_encode_section_info(), default_file_start(), default_floatn_mode(), default_get_pch_validity(), default_globalize_decl_name(), default_goacc_fork_join(), default_have_ccmp(), default_mangle_assembler_name(), default_memtag_insert_random_tag(), default_pch_valid_p(), default_pretend_outgoing_varargs_named(), default_secondary_memory_needed_mode(), default_select_rtx_section(), default_unique_section(), default_use_anchors_for_symbol_p(), default_vectorize_related_mode(), default_zero_call_used_regs(), define_builtin_macros_for_type_sizes(), detach_value(), df_get_entry_block_def_set(), df_get_exit_block_use_set(), direct_optab_handler(), disqualify_problematic_components(), do_assemble_alias(), do_compare_and_jump(), do_compile(), do_store_flag(), do_tablejump(), doloop_modify(), doloop_optimize(), doloop_valid_p(), dr_misalignment(), dse_optimize_call(), dump_tm_clone_pairs(), dw2_asm_output_data_sleb128(), dw2_asm_output_data_uleb128(), dw2_force_const_mem(), dwarf2out_do_cfi_startproc(), dwarf2out_do_frame(), dwarf2out_frame_debug_cfa_expression(), dwarf2out_frame_debug_cfa_offset(), dwarf2out_frame_debug_cfa_restore(), dwarf2out_frame_debug_cfa_val_expression(), dwarf2out_frame_debug_expr(), dwarf2out_frame_finish(), dwf_cfa_reg(), elf_record_gcc_switches(), eliminate_partially_redundant_load(), eliminate_regs(), emit_call_1(), emit_case_dispatch_table(), emit_common_heads_for_components(), emit_common_tails_for_components(), emit_cstore(), emit_group_load_1(), emit_group_store(), emit_indirect_jump(), emit_input_reload_insns(), emit_insn_if_valid_for_reload(), emit_jump(), emit_library_call_value_1(), emit_move_insn(), emit_push_insn(), emit_stack_probe(), emit_stack_restore(), emit_stack_save(), emutls_common_1(), estimate_move_cost(), estimated_poly_value(), excess_precision_type(), execute_cse_reciprocals_1(), execute_oacc_device_lower(), execute_omp_device_lower(), execute_omp_oacc_neuter_broadcast(), expand_arith_overflow(), expand_asm_loc(), expand_asm_stmt(), expand_assignment(), expand_atomic_test_and_set(), expand_binop(), expand_builtin(), expand_builtin_adjust_descriptor(), expand_builtin_adjust_trampoline(), expand_builtin_apply(), expand_builtin_apply_args_1(), expand_builtin_cexpi(), expand_builtin_eh_copy_values(), expand_builtin_eh_filter(), expand_builtin_extend_pointer(), expand_builtin_goacc_parlevel_id_size(), expand_builtin_init_dwarf_reg_sizes(), expand_builtin_init_trampoline(), expand_builtin_longjmp(), expand_builtin_memory_copy_args(), expand_builtin_nonlocal_goto(), expand_builtin_prefetch(), expand_builtin_return(), expand_builtin_saveregs(), expand_builtin_setjmp_receiver(), expand_builtin_setjmp_setup(), expand_builtin_trap(), expand_builtin_va_copy(), expand_builtin_va_start(), expand_call(), expand_ccmp_expr_1(), expand_ccmp_next(), expand_debug_expr(), expand_DIVMOD(), expand_divmod(), expand_doubleword_clz_ctz_ffs(), expand_doubleword_shift(), expand_dw2_landing_pad_for_region(), expand_eh_return(), expand_expr_addr_expr(), expand_expr_real_1(), expand_expr_real_2(), expand_expr_real_gassign(), expand_field_assignment(), expand_fix(), expand_float(), expand_function_end(), expand_function_start(), expand_gimple_cond(), expand_GOACC_DIM_POS(), expand_GOACC_DIM_SIZE(), expand_GOMP_SIMT_ENTER_ALLOC(), expand_GOMP_SIMT_EXIT(), expand_GOMP_SIMT_LANE(), expand_GOMP_SIMT_LAST_LANE(), expand_GOMP_SIMT_ORDERED_PRED(), expand_GOMP_SIMT_VOTE_ANY(), expand_GOMP_SIMT_XCHG_BFLY(), expand_GOMP_SIMT_XCHG_IDX(), expand_HWASAN_CHOOSE_TAG(), expand_HWASAN_MARK(), expand_HWASAN_SET_TAG(), expand_ifn_va_arg_1(), expand_mem_thread_fence(), expand_memory_blockage(), expand_misaligned_mem_ref(), expand_movstr(), expand_mul_overflow(), expand_one_stack_var_at(), expand_simd_clones(), expand_sjlj_dispatch_table(), expand_speculation_safe_value(), expand_stack_alignment(), expand_stack_vars(), expand_thunk(), expand_UNIQUE(), expand_used_vars(), expand_vec_perm_const(), extract_bit_field_1(), extract_low_bits(), fill_simple_delay_slots(), fill_slots_from_thread(), final_end_function(), final_scan_insn_1(), final_start_function_1(), finalize_type_size(), find_cond_trap(), find_costs_and_classes(), find_decomposable_subregs(), find_dummy_reload(), find_end_label(), find_flags_uses_in_insn(), find_hard_regno_for_1(), find_if_header(), find_inc(), find_reg(), find_reg_offset_for_const(), find_reloads(), find_reloads_address(), find_reloads_address_part(), find_reloads_toplev(), find_rename_reg(), find_reusable_reload(), find_shift_sequence(), find_valid_class(), find_valid_class_1(), finish_bitfield_representative(), fix_crossing_conditional_branches(), fixup_reorder_chain(), flip_storage_order(), fntype_abi(), fold_builtin_call_array(), fold_builtin_sincos(), fold_call_expr(), fold_call_stmt(), cfn_goacc_dim::fold_range(), cfn_sincos::fold_range(), cfn_sqrt::fold_range(), follow_jumps(), force_const_mem(), force_nonfallthru_and_redirect(), forward_propagate_subreg(), function_attribute_inlinable_p(), function_mergeable_rodata_prefix(), function_section_1(), gen_call_used_regs_seq(), gen_eh_region(), gen_interclass_conv_libfunc(), gen_intraclass_conv_libfunc(), gen_libfunc(), gen_reload(), gen_subprogram_die(), general_operand(), generic_predict_doloop_p(), get_address_mode(), get_builtin_sync_mem(), get_call_args(), get_computation_cost(), get_constant_section(), get_emutls_init_templ_addr(), get_emutls_object_name(), get_emutls_object_type(), get_equiv(), get_extraction_insn(), get_file_function_name(), get_memmodel(), get_named_section(), get_named_text_section(), get_object_alignment_2(), get_reassociation_width(), get_related_vectype_for_scalar_type(), get_secondary_mem(), get_section_anchor(), get_stored_val(), get_uncond_jump_length(), get_variable_align(), get_variable_section(), gimple_builtin_call_types_compatible_p(), gimple_fold_builtin_memory_op(), gimple_fold_call(), gimplify_parameters(), gimplify_va_arg_expr(), globalize_decl(), strlen_pass::handle_builtin_memcmp(), handle_simple_exit(), hard_function_value(), hard_libcall_value(), hash_rtx(), have_global_bss_p(), hook_pass_by_reference_must_pass_in_stack(), hwasan_emit_prologue(), hwasan_frame_base(), immediate_operand(), init_alias_analysis(), init_alias_target(), init_asm_output(), init_attributes(), init_cost(), init_eh(), init_elim_table(), init_elim_table(), init_eliminable_invariants(), init_expr_target(), init_ic_make_global_vars(), init_num_sign_bit_copies_in_rep(), init_optabs(), init_reg_modes_target(), init_reg_sets_1(), init_resource_info(), init_separate_shrink_wrap(), init_varasm_once(), predefined_function_abi::initialize(), initialize_argument_information(), initialize_cfun(), input_eh_regions(), insert_prologue_epilogue_for_components(), insn_callee_abi(), insn_cost(), instantiate_virtual_regs(), instrument_builtin_call(), instrument_mem_ref(), int_loc_descriptor(), integer_asm_op(), internal_len_load_store_bias(), invoke_set_current_function_hook(), ipa_cdtor_merge(), ipa_passes(), ira(), ira_build_conflicts(), ira_get_dup_out_num(), ira_init_once(), ira_init_register_move_cost(), ira_setup_eliminable_regset(), tree_switch_conversion::jump_table_cluster::is_enabled(), is_truth_type_for(), iv_ca_set_cp(), iv_ca_set_no_cp(), jumptable_relocatable(), keep_with_call_p(), layout_decl(), layout_type(), leaf_function_p(), lhd_set_decl_assembler_name(), likely_spilled_retval_p(), loc_list_from_tree_1(), locate_and_pad_parm(), lra_constraints(), lra_update_fp2sp_elimination(), lto_write_options(), toplev::main(), make_decl_rtl(), make_early_clobber_and_input_conflicts(), make_epilogue_seq(), make_node(), make_prologue_seq(), make_split_prologue_seq(), may_trap_p_1(), maybe_assemble_visibility(), maybe_emit_atomic_test_and_set(), maybe_emit_call_builtin___clear_cache(), maybe_mode_change(), maybe_reset_location_view(), maybe_select_cc_mode(), mem_loc_descriptor(), memory_address_addr_space(), memory_address_addr_space_p(), memory_move_cost(), merge_in_block(), mode_dependent_address_p(), mode_for_array(), mode_for_vector(), modified_type_die(), most_expensive_mult_to_index(), move_block_from_reg(), move_block_to_reg(), multiplier_allowed_in_address_p(), must_pass_in_stack_var_size_or_pad(), must_pass_va_arg_in_stack(), native_encode_int(), native_interpret_int(), new_emutls_decl(), bit_field_mode_iterator::next_mode(), noce_convert_multiple_sets(), noce_find_if_block(), noce_get_condition(), noce_process_if_block(), noce_try_addcc(), noce_try_cmove(), noce_try_cmove_arith(), noce_try_cond_zero_arith(), noce_try_store_flag_constants(), noce_try_store_flag_mask(), non_conflicting_reg_copy_p(), non_null_loadstore(), symtab_node::noninterposable_alias(), nonzero_bits1(), notice_global_symbol(), num_sign_bit_copies1(), oacc_parse_default_dims(), oacc_validate_dims(), oacc_xform_loop(), offsettable_address_addr_space_p(), omp_clause_aligned_alignment(), omp_context_selector_matches(), omp_finish_file(), omp_max_vf(), cfn_sincos::op1_range(), cfn_sqrt::op1_range(), op_by_pieces_d::op_by_pieces_d(), optimize_stdarg_builtin(), optimize_va_list_gpr_fpr_size(), option_affects_pch_p(), output_addr_const(), output_addr_table(), output_address(), output_alternate_entry_point(), output_asm_insn(), output_call_frame_info(), output_comdat_type_unit(), output_comp_unit(), output_constant(), output_constant_pool_1(), output_constant_pool_contents(), output_eh_regions(), output_fde(), output_file_directive(), output_function_exception_table(), output_loc_operands(), output_object_block(), output_one_function_exception_table(), output_operand(), output_ttype(), pass_by_reference(), peep2_find_free_register(), place_field(), precompute_register_parameters(), predicate_rhs_code(), bit_field_mode_iterator::prefer_smaller_modes(), prepare_call_address(), prepare_call_arguments(), prepare_cmp_insn(), prepare_float_lib_cmp(), compare_by_pieces_d::prepare_mode(), probe_stack_range(), process_address_1(), process_alt_operands(), process_bb_lives(), process_bb_node_lives(), process_invariant_for_inheritance(), process_options(), process_pending_assemble_externals(), produce_memory_decl_rtl(), profile_after_prologue(), profile_function(), promote_function_mode(), promote_mode(), push_reload(), push_secondary_reload(), recog_for_combine_1(), reference_callee_copied(), reg_loc_descriptor(), reg_save_code(), register_move_cost(), related_vector_mode(), relax_delay_slots(), reload(), reload_adjust_reg_for_temp(), reload_combine_recognize_pattern(), reload_inner_reg_of_subreg(), reposition_prologue_and_epilogue_notes(), resolve_unique_section(), rest_of_decl_compilation(), rest_of_handle_final(), rtl_for_decl_location(), rtx_addr_can_trap_p_1(), rtx_cost(), rtx_equal_for_cselib_1(), rtx_for_static_chain(), rtx_renumbered_equal_p(), scan_one_insn(), secondary_reload_class(), set_initial_elim_offsets(), set_reg_attrs_from_value(), set_reload_reg(), setup_allocno_and_important_classes(), setup_class_subset_and_memory_move_costs(), setup_pressure_classes(), setup_prohibited_and_exclude_class_mode_regs(), setup_prohibited_mode_move_regs(), setup_reg_class_nregs(), setup_reg_equiv(), setup_reg_spill_flag(), simd_clone_adjust(), simple_mem_bitfield_p(), simple_move(), simple_move_p(), simplifiable_subregs(), simplify_operand_subreg(), simplify_subreg_regno(), simplify_context::simplify_unary_operation_1(), simplify_while_replacing(), sjlj_emit_dispatch_table(), small_register_class_p(), spill_pseudos(), split_complex_args(), split_complex_types(), split_reg(), stabilize_va_list_loc(), stack_protect_epilogue(), stack_protect_prologue(), std_gimplify_va_arg_expr(), steal_delay_list_from_target(), store_bit_field_using_insv(), store_by_pieces(), store_expr(), store_field(), store_one_arg(), streamer_read_tree_bitfields(), strict_memory_address_addr_space_p(), strub_target_support_p(), subst(), switch_to_comdat_section(), switch_to_eh_frame_section(), switch_to_section(), target_canonicalize_comparison(), target_default_pointer_address_modes_p(), target_supports_divmod_p(), target_supports_len_load_store_p(), target_supports_section_anchors_p(), thread_prologue_and_epilogue_insns(), tls_referenced_p(), tree_builtin_call_types_compatible_p(), tree_profiling(), tree_ssa_prefetch_arrays(), try_casesi(), try_combine(), try_eliminate_compare(), try_fit_stack_local(), try_optimize_cfg(), try_redirect_by_replacing_jump(), try_shrink_wrapping(), try_shrink_wrapping_separate(), try_tablejump(), rtx_properties::try_to_add_insn(), ubsan_expand_null_ifn(), unpack_ts_decl_common_value_fields(), unpack_ts_function_decl_value_fields(), unpack_ts_type_common_value_fields(), update_alignment_for_field(), update_eliminables(), update_equiv_regs(), update_reg_eliminate(), use_anchored_address(), use_blocks_for_decl_p(), use_register_for_decl(), use_shrink_wrapping_separate(), useless_type_conversion_p(), valid_address_p(), variable_tracking_main_1(), vec_series_highpart_p(), vec_series_lowpart_p(), vect_analyze_loop(), vect_check_gather_scatter(), vect_compute_data_ref_alignment(), vect_create_epilog_for_reduction(), vect_get_load_cost(), vect_lanes_optab_supported_p(), vect_recog_divmod_pattern(), vect_recog_pow_pattern(), vect_setup_realignment(), vect_slp_analyze_node_alignment(), vect_slp_region(), vect_supportable_dr_alignment(), vect_transform_grouped_load(), vect_verify_full_masking(), vect_verify_full_masking_avx512(), vect_verify_loop_lens(), vector_alignment_reachable_p(), vector_type_mode(), vectorizable_call(), vectorizable_operation(), vectorizable_simd_clone_call(), vectorized_internal_fn_supported_p(), verify_initial_elim_offsets(), verify_type_context(), want_pubnames(), warn_function_noreturn(), worker_single_copy(), write_symbol(), and zcur_select_mode_rtx().

◆ VECT_COMPARE_COSTS

const unsigned int VECT_COMPARE_COSTS = 1U << 0
Flags returned by TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_MODES:

VECT_COMPARE_COSTS
    Tells the loop vectorizer to try all the provided modes and
    pick the one with the lowest cost.  By default the vectorizer
    will choose the first mode that works.   

Referenced by vect_analyze_loop().