GCC Middle and Back End API Reference
|
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 } |
Variables | |
const unsigned int | VECT_COMPARE_COSTS = 1U << 0 |
struct gcc_target | targetm |
#define DEFHOOK_UNDOC DEFHOOK |
The target structure. This holds all the backend hooks.
typedef auto_vec<machine_mode, 8> auto_vector_modes |
Same, but can be used to construct local lists that are automatically freed.
typedef vec<machine_mode> vector_modes |
The type to use for lists of vector sizes.
Types of costs for vectorizer cost model.
|
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(), ggc_alloc(), 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().
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(), ggc_alloc(), NULL, SECTION_DEBUG, SECTION_ENTSIZE, SECTION_MERGE, SECTION_STRINGS, switch_to_section(), and targetm.
|
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().
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.
References ggc_alloc().
Referenced by default_use_by_pieces_infrastructure_p(), and sra_get_max_scalarization_size().
|
extern |
Return TRUE iff the given statement is in an inner loop relative to the loop being vectorized.
References ggc_alloc(), gimple_bb(), loop::inner, basic_block_def::loop_father, LOOP_VINFO_LOOP, and STMT_VINFO_STMT.
Referenced by vector_costs::adjust_cost_for_freq().
|
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().
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().
|
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, ggc_alloc(), targetm, and TYPE_P.
|
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_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_sqrt::fold_range(), cfn_sincos::fold_range(), cfn_goacc_dim::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(), 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_sqrt::op1_range(), cfn_sincos::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().
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().