GCC Middle and Back End API Reference
gimple-iterator.h File Reference

Go to the source code of this file.

Data Structures

struct  gimple_stmt_iterator
struct  gphi_iterator

Enumerations

enum  gsi_iterator_update { GSI_NEW_STMT = 2 , GSI_LAST_NEW_STMT , GSI_SAME_STMT , GSI_CONTINUE_LINKING }

Functions

void gsi_insert_seq_before_without_update (gimple_stmt_iterator *, gimple_seq, enum gsi_iterator_update)
void gsi_insert_seq_before (gimple_stmt_iterator *, gimple_seq, enum gsi_iterator_update)
void gsi_insert_seq_after_without_update (gimple_stmt_iterator *, gimple_seq, enum gsi_iterator_update)
void gsi_insert_seq_after (gimple_stmt_iterator *, gimple_seq, enum gsi_iterator_update)
gimple_seq gsi_split_seq_after (gimple_stmt_iterator)
void gsi_set_stmt (gimple_stmt_iterator *, gimple *)
void gsi_split_seq_before (gimple_stmt_iterator *, gimple_seq *)
bool gsi_replace (gimple_stmt_iterator *, gimple *, bool)
void gsi_replace_with_seq (gimple_stmt_iterator *, gimple_seq, bool)
void gsi_insert_before_without_update (gimple_stmt_iterator *, gimple *, enum gsi_iterator_update)
void gsi_insert_before (gimple_stmt_iterator *, gimple *, enum gsi_iterator_update)
void gsi_insert_after_without_update (gimple_stmt_iterator *, gimple *, enum gsi_iterator_update)
void gsi_insert_after (gimple_stmt_iterator *, gimple *, enum gsi_iterator_update)
bool gsi_remove (gimple_stmt_iterator *, bool)
gimple_stmt_iterator gsi_for_stmt (gimple *)
gimple_stmt_iterator gsi_for_stmt (gimple *, gimple_seq *)
gphi_iterator gsi_for_phi (gphi *)
void gsi_move_after (gimple_stmt_iterator *, gimple_stmt_iterator *)
void gsi_move_before (gimple_stmt_iterator *, gimple_stmt_iterator *, gsi_iterator_update=GSI_SAME_STMT)
void gsi_move_to_bb_end (gimple_stmt_iterator *, basic_block)
void gsi_insert_on_edge (edge, gimple *)
void gsi_insert_seq_on_edge (edge, gimple_seq)
basic_block gsi_insert_on_edge_immediate (edge, gimple *)
basic_block gsi_insert_seq_on_edge_immediate (edge, gimple_seq)
void gsi_safe_insert_before (gimple_stmt_iterator *, gimple *)
void gsi_safe_insert_seq_before (gimple_stmt_iterator *, gimple_seq)
void gsi_commit_edge_inserts (void)
void gsi_commit_one_edge_insert (edge, basic_block *)
gphi_iterator gsi_start_phis (basic_block)
void update_modified_stmts (gimple_seq)
gimple_stmt_iterator gsi_start (gimple_seq &seq)
gimple_stmt_iterator gsi_none (void)
gimple_stmt_iterator gsi_start_bb (basic_block bb)
gimple_stmt_iterator gsi_start_edge (edge e)
gimple_stmt_iterator gsi_last (gimple_seq &seq)
gimple_stmt_iterator gsi_last_bb (basic_block bb)
gimple_stmt_iterator gsi_end (gimple_seq &seq)
gimple_stmt_iterator gsi_end_bb (basic_block bb)
bool gsi_end_p (gimple_stmt_iterator i)
bool gsi_one_before_end_p (gimple_stmt_iterator i)
void gsi_next (gimple_stmt_iterator *i)
void gsi_prev (gimple_stmt_iterator *i)
gimple * gsi_stmt (gimple_stmt_iterator i)
gimple_stmt_iterator gsi_after_labels (basic_block bb)
gimple_stmt_iterator gsi_after_labels (gimple_seq &seq)
void gsi_next_nondebug (gimple_stmt_iterator *i)
void gsi_prev_nondebug (gimple_stmt_iterator *i)
gimple_stmt_iterator gsi_start_nondebug (gimple_seq seq)
gimple_stmt_iterator gsi_start_nondebug_bb (basic_block bb)
gimple_stmt_iterator gsi_start_nondebug_after_labels_bb (basic_block bb)
gimple_stmt_iterator gsi_last_nondebug_bb (basic_block bb)
bool gsi_one_nondebug_before_end_p (gimple_stmt_iterator i)
void gsi_next_nonvirtual_phi (gphi_iterator *i)
gphi_iterator gsi_start_nonvirtual_phis (basic_block bb)
basic_block gsi_bb (gimple_stmt_iterator i)
gimple_seq gsi_seq (gimple_stmt_iterator i)
bool gimple_seq_nondebug_singleton_p (gimple_seq seq)

Enumeration Type Documentation

◆ gsi_iterator_update

Enumerator
GSI_NEW_STMT 
GSI_LAST_NEW_STMT 
GSI_SAME_STMT 
GSI_CONTINUE_LINKING 

Function Documentation

◆ gimple_seq_nondebug_singleton_p()

bool gimple_seq_nondebug_singleton_p ( gimple_seq seq)
inline

◆ gsi_after_labels() [1/2]

gimple_stmt_iterator gsi_after_labels ( basic_block bb)
inline
Return a block statement iterator that points to the first
non-label statement in block BB.   

References gsi_after_labels(), gsi_end_p(), gsi_next(), gsi_start_bb(), and gsi_stmt().

Referenced by back_threader_profitability::account_bb(), add_clobbers_to_eh_landing_pad(), add_header_seq(), add_scope_conflicts_1(), eliminate_dom_walker::before_dom_children(), build_and_add_sum(), rt_bb_visited::check(), cleanup_empty_eh(), compute_live_vars_1(), cond_if_else_store_replacement_1(), cond_only_block_p(), cond_store_replacement(), cond_store_replacement_limited(), create_final_loads_for_reduction(), create_loads_for_reductions(), create_parallel_loop(), destroy_loop(), do_pre_regular_insertion(), eliminate_dom_walker::eliminate_cleanup(), emit_mfence_after_loop(), empty_eh_cleanup(), execute_cse_sincos_1(), tree_switch_conversion::switch_conversion::exp_index_transform(), expand_omp_atomic_fetch_op(), expand_omp_for_generic(), expand_omp_for_init_counts(), expand_omp_for_init_vars(), expand_omp_for_ordered_loops(), expand_omp_for_static_chunk(), expand_omp_for_static_nochunk(), expand_omp_ordered_sink(), expand_omp_simd(), factor_out_conditional_load(), factor_out_conditional_operation(), final_value_replacement_loop(), gimple_can_merge_blocks_p(), gimple_empty_block_p(), gimple_gen_ic_func_profiler(), gimple_lower_bitint(), gimple_split_block(), gsi_after_labels(), gsi_after_labels(), gsi_insert_finally_seq_after_call(), gsi_start_nondebug_after_labels_bb(), handle_abnormal_edges(), infinite_empty_loop_p(), insert_check_and_trap(), insert_edge_check_and_trap(), rt_bb_visited::insert_exit_check_on_edge(), insert_gimplified_predicates(), insert_phi_nodes_for(), insert_reciprocals(), vec_info::insert_seq_on_entry(), insert_stmt_after(), instrument_bool_enum_load(), instrument_builtin(), instrument_nonnull_arg(), instrument_nonnull_return(), instrument_prime_paths(), ipa_simd_modify_function_body(), ipa_simd_modify_stmt_ops(), ipa_tm_insert_irr_call(), match_long_mul_phi(), maybe_move_debug_stmts_to_successors(), maybe_optimize_guarding_check(), tree_loop_interchange::move_code_to_inner_loop(), move_debug_stmts_from_forwarder(), move_early_exit_stmts(), crc_optimization::optimize_crc_loop(), predicate_all_scalar_phis(), propagate_threaded_block_debug_into(), remap_ssa_name(), remove_bb(), remove_unused_ivs(), replace_block_by(), replace_ref_with(), ipa_param_body_adjustments::reset_debug_stmts(), rewrite_all_phi_nodes_with_iv(), rewrite_debug_stmt_uses(), rewrite_use_nonlinear_expr(), simd_clone_adjust(), simd_clone_linear_addend(), sink_clobbers(), sink_common_stores_to_bb(), spaceship_replacement(), ssa_create_duplicates(), statement_sink_location(), transform_to_exit_first_loop(), tree_function_versioning(), ubsan_expand_bounds_ifn(), ubsan_expand_objsize_ifn(), ubsan_expand_vptr_ifn(), loop_cand::undo_simple_reduction(), unsplit_eh(), update_range_test(), value_replacement(), vect_create_constant_vectors(), vect_create_epilog_for_reduction(), vect_do_peeling(), vect_get_loop_iv_increment(), vect_mark_stmts_to_be_vectorized(), vect_schedule_slp_node(), vect_set_loop_condition_normal(), vect_slp_bbs(), vect_transform_loop(), vect_update_ivs_after_vectorizer_for_early_breaks(), vectorizable_induction(), vectorizable_live_operation(), vectorizable_live_operation_1(), vectorizable_nonlinear_induction(), vectorizable_simd_clone_call(), rt_bb_visited::visit(), worker_single_copy(), and worker_single_simple().

◆ gsi_after_labels() [2/2]

gimple_stmt_iterator gsi_after_labels ( gimple_seq & seq)
inline
Return a statement iterator that points to the first
non-label statement in sequence SEQ.   

References gsi_after_labels(), gsi_end_p(), gsi_next(), gsi_start(), and gsi_stmt().

◆ gsi_bb()

basic_block gsi_bb ( gimple_stmt_iterator i)
inline

◆ gsi_commit_edge_inserts()

◆ gsi_commit_one_edge_insert()

void gsi_commit_one_edge_insert ( edge e,
basic_block * new_bb )
extern

◆ gsi_end()

gimple_stmt_iterator gsi_end ( gimple_seq & seq)
inline
Return a new iterator pointing to before the first statement or after
last statement (depending on whether adding statements after it or before it)
in a GIMPLE_SEQ.   

References g, gimple_bb(), gimple_seq_last(), gsi_end(), i, and NULL.

Referenced by gsi_end().

◆ gsi_end_bb()

gimple_stmt_iterator gsi_end_bb ( basic_block bb)
inline
Return a new iterator pointing to before the first statement or after
last statement (depending on whether adding statements after it or before it)
in basic block BB.   

References bb_seq_addr(), gsi_end_bb(), i, and NULL.

Referenced by gsi_end_bb(), and vect_schedule_slp_node().

◆ gsi_end_p()

bool gsi_end_p ( gimple_stmt_iterator i)
inline
Return true if I is at the end of its sequence.   

References gsi_end_p(), i, and NULL.

Referenced by _bb_vec_info::_bb_vec_info(), _loop_vec_info::_loop_vec_info(), back_threader_profitability::account_bb(), add_async_clauses_and_wait(), add_bb_predicate_gimplified_stmts(), add_call_edges_for_seq(), add_phi_args_after_copy_edge(), add_scope_conflicts_1(), add_successor_phi_arg(), adjust_iv_update_pos(), adjust_simduid_builtins(), autofdo::afdo_set_bb_count(), autofdo::afdo_unscaled_edge_count(), afdo_vpt_for_early_inline(), allow_ip_end_pos_p(), analyze_bb(), loop_cand::analyze_carried_vars(), analyze_function(), analyze_function_body(), loop_cand::analyze_lcssa_phis(), analyze_memory_references(), annotate_all_with_location(), annotate_all_with_location_after(), asan_poison_variable(), assign_calc_vals_to_header_phis(), assign_discriminators(), assign_discriminators_to_bb(), assign_known_vals_to_header_phis(), assign_vals_to_header_phis(), associate_equivalences_with_edges(), assume_query::assume_query(), bb_no_side_effects_p(), bb_phis_references_abnormal_uses(), bb_prevents_fusion_p(), check_array_bounds_dom_walker::before_dom_children(), dom_opt_dom_walker::before_dom_children(), eliminate_dom_walker::before_dom_children(), find_candidates_dom_walker::before_dom_children(), ipcp_modif_dom_walker::before_dom_children(), mark_def_dom_walker::before_dom_children(), nontrapping_dom_walker::before_dom_children(), rewrite_dom_walker::before_dom_children(), rewrite_update_dom_walker::before_dom_children(), strlen_pass::before_dom_children(), substitute_and_fold_dom_walker::before_dom_children(), bitfields_to_lower_p(), branch_prob(), break_up_subtract_bb(), build_and_add_sum(), tree_switch_conversion::switch_conversion::build_arrays(), tree_switch_conversion::switch_conversion::build_constructors(), build_omp_regions_1(), build_ssa_conflict_graph(), builtin_setjmp_setup_bb(), builtin_unreachable_bb_p(), calculate_live_on_exit(), loop_cand::can_interchange_p(), can_strub_internally_p(), canonicalize_loop_ivs(), ccp_initialize(), check_all_va_list_escapes(), check_exit_phi(), tree_switch_conversion::switch_conversion::check_final_bb(), check_loop_closed_ssa_bb(), clean_up_loop_closed_phi(), cleanup_control_flow_bb(), cleanup_dead_labels(), cleanup_empty_eh(), cleanup_empty_eh_merge_phis(), cleanup_empty_eh_unsplit(), clear_unused_block_pointer(), clobber_only_eh_bb_p(), coalesce_partitions(), collect_dfa_stats(), collect_fallthrough_labels(), collect_finally_tree_1(), combine_blocks(), ipa_icf_gimple::func_checker::compare_bb(), ipa_icf::sem_function::compare_phi_node(), compute_avail(), compute_dependence_clique(), compute_invariantness(), compute_live_vars_1(), compute_optimized_partition_bases(), path_range_query::compute_phi_relations(), compute_points_to_sets(), path_range_query::compute_ranges_in_phis(), control_flow_regions::compute_regions(), cond_only_block_p(), cond_removal_in_builtin_zero_pattern(), connect_loop_phis(), consider_split(), contains_hot_cold_predict(), convert_nl_goto_receiver(), copy_bb(), copy_cfg_body(), copy_edges_for_bb(), copy_loop_before(), copy_phi_arg_into_existing_phi(), copy_phi_args(), copy_phis_for_bb(), count_stmts_and_phis_in_block(), cprop_into_successor_phis(), create_coalesce_list_for_region(), create_cond_insert_point(), create_expression_by_pieces(), create_loads_for_reductions(), create_new_iv(), create_parallel_loop(), create_preheader(), debug_seed_ranger(), decide_copy_try_finally(), decompose_kernels_region_body(), delete_unreachable_blocks_update_callgraph(), destroy_loop(), determine_max_movement(), determine_reduction_stmt_1(), determine_set_costs(), determine_unlikely_bbs(), determine_value_range(), discover_nonconstant_array_refs(), do_hoist_insertion(), do_rpo_vn_1(), do_warn_unused_result(), dump_enumerated_decls(), dump_gimple_bb_header(), dump_gimple_seq(), dump_oacc_loop_part(), dump_phi_nodes(), easy_exit_values(), edge_before_returns_twice_call(), eliminate_build(), eliminate_local_variables(), eliminate_dom_walker::eliminate_stmt(), eliminate_temp_copies(), eliminate_unnecessary_stmts(), eliminate_useless_phis(), empty_bb_or_one_feeding_into_p(), empty_bb_without_guard_p(), empty_block_with_phis_p(), empty_body_p(), empty_eh_cleanup(), enter_omp_iterator_loop_context_1(), same_succ::equal(), estimate_bb_frequencies(), estimate_loop_insns(), estimate_num_insns_fn(), estimate_num_insns_seq(), estimate_threading_killed_stmts(), loop_distribution::execute(), pass_walloca::execute(), crc_symbolic_execution::execute_bb_gimple_statements(), crc_symbolic_execution::execute_bb_phi_statements(), execute_cleanup_cfg_post_optimizing(), execute_cse_conv_1(), execute_early_expand_coro_ifns(), execute_fixup_cfg(), execute_oacc_device_lower(), execute_omp_device_lower(), execute_omp_oacc_neuter_broadcast(), execute_sm_if_changed(), execute_split_functions(), execute_update_addresses_taken(), crc_optimization::exists_shift_for_opp_xor_shift(), tree_switch_conversion::switch_conversion::exp_index_transform(), expand_block_edges(), expand_block_tm(), expand_call_inline(), expand_FALLTHROUGH_r(), expand_gimple_basic_block(), expand_ifn_va_arg(), expand_ifn_va_arg_1(), expand_omp_atomic_cas(), expand_omp_atomic_fetch_op(), expand_omp_for_generic(), expand_omp_for_init_vars(), expand_omp_for_ordered_loops(), expand_omp_for_static_chunk(), expand_omp_for_static_nochunk(), expand_omp_ordered_sink(), expand_omp_sections(), expand_omp_target(), expand_omp_taskreg(), expand_vector_operations(), factor_out_all(), factor_out_conditional_operation(), fill_always_executed_in(), final_value_replacement_loop(), find_always_executed_bbs(), find_bivs(), find_conditions(), find_data_references_in_bb(), find_deps_in_bb_for_stmt(), find_duplicate(), find_explicit_erroneous_behavior(), find_foldable_builtin_expect(), find_gang_private_vars(), find_givs_in_bb(), find_implicit_erroneous_behavior(), find_interesting_uses(), find_interesting_uses_outside(), find_local_vars_to_propagate(), find_loop_dist_alias(), find_loop_location(), pcom_worker::find_looparound_phi(), find_necessary_statements(), find_obviously_necessary_stmts(), find_outermost_region_in_block(), find_partitioned_var_uses(), find_phi_with_arg_on_edge(), find_replaceable_in_bb(), find_return_bb(), find_retval(), find_seed_stmts_for_distribution(), find_ssa_names_to_propagate(), find_subloop_latch_edge_by_ivs(), find_tail_calls(), find_uses_to_rename_bb(), first_stmt(), tree_switch_conversion::switch_conversion::fix_phi_nodes(), tree_switch_conversion::switch_decision_tree::fix_phi_operands_for_edges(), fixup_noreturn_call(), ipa_icf::sem_item_optimizer::fixup_points_to_sets(), flatten_binds(), flush_pending_stmts(), fold_marked_statements(), force_edge_cold(), substitute_and_fold_dom_walker::foreach_new_stmt_in_bb(), free_rdg(), fuse_loops(), tree_switch_conversion::switch_conversion::gather_default_values(), gather_memory_references(), gather_scalar_reductions(), tree_switch_conversion::switch_conversion::gen_inbound_check(), generate_loops_for_partition(), get_all_stmt_may_generate_copy(), virtual_operand_live::get_live_out(), get_live_virtual_operand_on_edge(), get_loop_body_in_if_conv_order(), crc_optimization::get_output_phi(), get_virtual_phi(), get_vop_from_header(), gimple_account_profile_record(), gimple_block_ends_with_call_p(), gimple_block_label(), gimple_can_duplicate_bb_p(), gimple_can_merge_blocks_p(), gimple_dump_bb_as_sarif_properties(), gimple_dump_bb_buff(), gimple_dump_bb_for_graph(), gimple_duplicate_bb(), gimple_empty_block_p(), gimple_expand_calls_inline(), gimple_find_edge_insert_loc(), gimple_find_values_to_profile(), gimple_flow_call_edges_add(), gimple_ic(), gimple_lower_bitint(), gimple_lv_adjust_loop_header_phi(), gimple_make_forwarder_block(), gimple_merge_blocks(), gimple_outgoing_range_stmt_p(), gimple_redirect_edge_and_branch(), gimple_seq_copy(), gimple_seq_discard(), gimple_seq_set_location(), gimple_seq_unreachable_p(), gimple_split_block(), gimple_split_block_before_cond_jump(), gimple_try_catch_may_fallthru(), gimple_try_redirect_by_replacing_jump(), gimple_value_profile_transformations(), gimple_verify_flow_info(), gimplify_and_return_first(), gimplify_cleanup_point_expr(), gimplify_target_expr(), gsi_advance_bw_nondebug_nonlocal(), gsi_advance_fw_nondebug_nonlocal(), gsi_after_labels(), gsi_after_labels(), gsi_end_p(), gsi_last_nondebug_bb(), gsi_move_to_bb_end(), gsi_next_nondebug(), gsi_next_nonvirtual_phi(), gsi_one_nondebug_before_end_p(), gsi_prev_dom_bb_nondebug(), gsi_prev_nondebug(), gsi_replace_with_seq_vops(), gsi_start_nondebug(), gsi_start_nondebug_after_labels_bb(), gsi_start_nondebug_bb(), gsi_start_nonvirtual_phis(), hardcfr_scan_block(), has_phis_p(), hoist_adjacent_loads(), hoist_guard(), honor_protect_cleanup_actions(), if_convertible_loop_p_1(), ifcombine_replace_cond(), ifcvt_hoist_invariants(), ifcvt_local_dce(), imm_dom_path_with_freeing_call(), independent_of_stmt_p(), infer_loop_bounds_from_undefined(), infinite_empty_loop_p(), ipa_icf::sem_function::init(), init_copy_prop(), init_copyid_allocator(), init_dont_simulate_again(), init_loop_unswitch_info(), init_tmp_var(), init_tmp_var_with_call(), initialize_flags_in_bb(), input_function(), insert_backedge_copies(), insert_clobbers_for_var(), insert_cond_bb(), rt_bb_visited::insert_exit_check_in_block(), insert_gimplified_predicates(), insert_init_debug_bind(), insert_initializers(), insert_iv_increment(), insert_reciprocals(), insert_stmt_after(), instrument_memory_accesses(), pointer_analysis::intra_build_constraints(), ipa_analyze_params_uses_in_bb(), pointer_analysis::ipa_build_constraints(), ipa_profile_generate_summary(), ipa_pta_execute(), ipa_simd_modify_function_body(), ipa_tm_decrement_clone_counts(), ipa_tm_diagnose_transaction(), ipa_tm_scan_calls_block(), ipa_tm_scan_irr_block(), ipa_tm_transform_calls_1(), is_factor_profitable(), isolate_path(), label_rtx_for_bb(), last_and_only_stmt(), last_nondebug_stmt(), long_mul_split_phi(), loop_body_includes_call(), loop_closed_phi_def(), loop_edge_to_cancel(), loop_has_phi_with_address_arg(), loop_has_vector_phi_nodes(), crc_optimization::loop_may_calculate_crc(), loop_nest_has_data_refs(), loop_only_exit_p(), lower_catch(), lower_eh_constructs_1(), lower_emutls_function_body(), lower_omp(), lower_omp_for_scan(), lower_omp_ordered_clauses(), lower_omp_sections(), lower_sequence(), lower_try_catch(), lower_try_finally_dup_block(), lower_try_finally_onedest(), lto_prepare_function_for_streaming(), make_bit_field_load(), make_blocks(), make_blocks_1(), make_edges(), make_forwarders_with_degenerate_phis(), mark_bivs(), mark_lhs_in_seq_for_dce(), mark_reachable_handlers(), autofdo::function_instance::match(), match_arith_overflow(), maybe_dead_abnormal_edge_p(), maybe_lower_iteration_bound(), maybe_move_debug_stmts_to_successors(), maybe_optimize_guarding_check(), maybe_remove_forwarder_block(), maybe_renumber_stmts_bb(), ipa_param_body_adjustments::modify_cfun_body(), move_block_to_fn(), tree_loop_interchange::move_code_to_inner_loop(), move_computations_worker(), move_debug_stmts_from_forwarder(), negate_value(), neuter_worker_single(), no_side_effect_bb(), note_simd_array_uses(), num_phis(), oacc_entry_exit_ok_1(), oacc_entry_exit_single_gang(), oacc_loop_discover_walk(), oacc_loop_xform_head_tail(), object_sizes_execute(), ok_for_auto_simd_clone(), omp_sese_split_blocks(), one_feeding_comparison_into_p(), optimize_clobbers(), optimize_mask_stores(), optimize_omp_library_calls(), optimize_spaceship(), optimize_stack_restore(), optimize_va_list_gpr_fpr_size(), output_bb(), ipa_icf_gimple::func_checker::parse_labels(), phi_alternatives_equal(), phi_analyzer::phi_analyzer(), phi_args_equal_on_edges(), potentially_threadable_block(), fvrp_folder::pre_fold_bb(), rvrp_folder::pre_fold_bb(), predicate_all_scalar_phis(), predicate_statements(), predict_loops(), prepare_block_for_update_1(), process_bb(), substitute_and_fold_engine::propagate_into_phi_args(), propagate_threaded_block_debug_into(), propagate_through_phis(), reassoc_remove_stmt(), reassoc_stmt_dominates_stmt_p(), reassociate_bb(), cgraph_edge::rebuild_edges(), cgraph_edge::rebuild_references(), record_edge_info(), record_equivalences_from_phis(), condition_info::record_phi_mapping(), tree_switch_conversion::switch_decision_tree::record_phi_operand_mapping(), jump_threader::record_temporary_equivalences_from_phis(), jump_threader::record_temporary_equivalences_from_stmts_at_dest(), redirect_all_calls(), redirection_block_p(), ref_conflicts_with_region(), refactor_eh_r(), gimple_ranger::register_transitive_inferred_ranges(), release_bb_predicate(), release_last_vdef(), remap_gimple_seq(), remap_gimple_stmt(), remove_bb(), remove_conditions_and_labels(), remove_ctrl_stmt_and_useless_edges(), remove_dead_phis(), remove_exit_barrier(), remove_indirect_clobbers(), remove_phi_args(), remove_phi_nodes(), remove_unused_locals(), rename_variables_in_bb(), renumber_gimple_stmt_uids_in_block(), reorder_operands(), replace_block_by(), replace_goto_queue_1(), replace_goto_queue_stmt_list(), replace_loop_annotate(), replace_loop_annotate_in_block(), reserve_phi_args_for_new_edge(), reset_flow_sensitive_info_in_bb(), rewrite_add_phi_arguments(), rewrite_all_phi_nodes_with_iv(), rewrite_debug_stmt_uses(), rewrite_trees(), rewrite_update_phi_arguments(), same_phi_alternatives_1(), same_phi_args_p(), same_succ_hash(), sanopt_optimize_walker(), save_tmp_var(), scan_function(), scan_omp_simd_scan(), separate_decls_in_region(), sese_build_liveouts_bb(), sese_trivially_empty_bb_p(), set_location_for_edge(), set_phi_nodes(), set_uid_loop_bbs(), should_duplicate_loop_header_p(), should_warn_for_implicit_fallthrough(), shrink_wrap_one_built_in_call_with_conds(), ssa_propagation_engine::simulate_block(), single_block_loop_p(), single_non_singleton_phi_for_edges(), sink_clobbers(), sink_code_in_bb(), slpeel_tree_duplicate_loop_to_edge_cfg(), slpeel_update_phi_nodes_for_guard1(), sm_seq_valid_bb(), split_critical_edges(), split_function(), split_loop(), split_loop_exit_edge(), sra_modify_function_body(), ssa_create_duplicates(), ssa_prop_init(), ssa_redirect_edge(), stack_protect_return_slot_p(), loop_distribution::stmts_from_loop(), strip_predict_hints(), strub_from_body_p(), suitable_cond_bb(), jump_threader::thread_around_empty_blocks(), fwd_jt_path_registry::thread_block_1(), tm_memopt_accumulate_memops(), tm_memopt_transform_blocks(), tm_region_init_1(), top_level_omp_for_in_stmt(), transform_statements(), transform_to_exit_first_loop(), transform_to_exit_first_loop_alt(), tree_bb_level_predictions(), tree_estimate_loop_size(), tree_estimate_probability_bb(), tree_lower_complex(), tree_num_loop_insns(), tree_profiling(), tree_transform_and_unroll_loop(), try_create_reduction_list(), tree_switch_conversion::switch_decision_tree::try_switch_expansion(), try_vectorize_loop_1(), uncprop_into_successor_phis(), unlikely_executed_bb_p(), unroll_jam_possible_p(), unsplit_eh(), update_debug_stmts(), update_epilogue_loop_vinfo(), update_modified_stmts(), update_phi_components(), update_range_test(), update_ssa(), update_ssa_across_abnormal_edges(), value_dies_in_block_x(), value_replacement(), vect_analyze_early_break_dependences(), vect_analyze_loop_2(), vect_analyze_scalar_cycles_1(), vect_analyze_slp(), vect_can_advance_ivs_p(), vect_compute_single_scalar_iteration_cost(), vect_determine_precisions(), vect_do_peeling(), vect_finish_stmt_generation(), vect_gen_prolog_loop_niters(), vect_get_datarefs_in_loop(), vect_init_vector(), vect_loop_dist_alias_call(), vect_loop_vectorized_call(), vect_loop_versioning(), vect_mark_pattern_stmts(), vect_mark_stmts_to_be_vectorized(), vect_pattern_recog(), vect_pattern_recog_1(), vect_schedule_slp_node(), vect_slp_bbs(), vect_slp_check_for_roots(), vect_slp_region(), vect_stmt_dominates_stmt_p(), vect_transform_cycle_phi(), vect_transform_loop(), vect_update_ivs_after_vectorizer(), verify_bb_vtables(), verify_gimple_in_cfg(), verify_gimple_in_seq_2(), verify_histograms(), verify_live_on_entry(), cgraph_node::verify_node(), verify_non_ssa_vars(), verify_ssa(), verify_ssaname_freelists(), verify_vssa(), visit_bb(), vop_phi(), walk_gimple_seq_mod(), want_merge_blocks_p(), warn_implicit_fallthrough_r(), warn_uninit_phi_uses(), warn_uninitialized_vars(), worker_single_simple(), and _bb_vec_info::~_bb_vec_info().

◆ gsi_for_phi()

gphi_iterator gsi_for_phi ( gphi * phi)
extern
Finds iterator for PHI.   

References gimple_bb(), gsi_for_phi(), gsi_start_phis(), and i.

Referenced by gsi_for_phi(), ifcombine_replace_cond(), and simplify_phi_result_movdiv().

◆ gsi_for_stmt() [1/2]

gimple_stmt_iterator gsi_for_stmt ( gimple * stmt)
extern
Finds iterator for STMT.   

References gimple_bb(), gsi_for_stmt(), gsi_start_bb(), gsi_start_phis(), and i.

Referenced by adjust_iv_update_pos(), strlen_pass::adjust_last_stmt(), asan_expand_poison_ifn(), attempt_builtin_powi(), avoid_deep_ter_for_debug(), branch_fixup(), tree_switch_conversion::switch_conversion::build_arrays(), tree_switch_conversion::switch_conversion::build_one_array(), bump_vector_ptr(), cancel_fma_deferring(), rt_bb_visited::check(), combine_blocks(), cond_if_else_store_replacement_1(), cond_removal_in_builtin_zero_pattern(), cond_store_replacement(), cond_store_replacement_limited(), convert_if_conditions_to_switch(), convert_mult_to_fma_1(), convert_scalar_cond_reduction(), convert_to_divmod(), copy_cfg_body(), copy_debug_stmt(), create_call_for_reduction_1(), create_dispatcher_calls(), create_mul_high_seq(), create_mul_low_seq(), create_new_iv(), default_goacc_reduction(), do_simple_agr_dse(), dse_optimize_redundant_stores(), dump_oacc_loop_part(), eliminate_dom_walker::eliminate_cleanup(), execute_cse_conv_1(), execute_cse_sincos_1(), execute_sm(), execute_update_addresses_taken(), tree_switch_conversion::switch_conversion::exp_index_transform(), expand_call_inline(), expand_oacc_for(), expand_omp_atomic_cas(), expand_omp_build_assign(), expand_omp_build_cond(), expand_omp_for_static_chunk(), expand_omp_for_static_nochunk(), expand_omp_ordered_source_sink(), expand_omp_sections(), expand_omp_simd(), expand_omp_target(), expand_omp_taskloop_for_inner(), expand_omp_taskloop_for_outer(), factor_out_conditional_load(), factor_out_conditional_operation(), factor_out_operators(), final_value_replacement_loop(), find_tail_calls(), fixup_noreturn_call(), fold_builtin_atomic_compare_exchange(), fold_loop_internal_call(), fold_strstr_to_strncmp(), forward_propagate_addr_expr(), tree_switch_conversion::switch_conversion::gen_inbound_check(), get_string_length(), gimple_divmod_fixed_value(), gimple_expand_vec_set_extract_expr(), gimple_gen_average_profiler(), gimple_gen_ic_profiler(), gimple_gen_interval_profiler(), gimple_gen_ior_profiler(), gimple_gen_pow2_profiler(), gimple_gen_topn_values_profiler(), gimple_ic(), gimple_lower_bitint(), gimple_mod_pow2(), gimple_mod_subtract(), gimple_split_block(), gimple_stringop_fixed_value(), gimple_value_profile_transformations(), gimplify_body(), gimplify_size_expressions(), gsi_for_stmt(), gsi_for_stmt(), gsi_safe_insert_before(), gsi_safe_insert_seq_before(), strlen_pass::handle_assign(), handle_builtin_alloca(), strlen_pass::handle_builtin_memset(), hoist_adjacent_loads(), hoist_defs_of_uses(), hoist_memory_references(), ifcombine_ifandif(), ifcombine_replace_cond(), ifcvt_hoist_invariants(), increment_start_addr(), initialize_root_vars_store_elim_2(), insert_backedge_copies(), insert_clobber_before_stack_restore(), insert_debug_temp_for_var_def(), insert_initializers(), insert_stmt_after(), insert_stmt_before_use(), insert_trap(), instrument_bool_enum_load(), instrument_builtin(), instrument_builtin_call(), instrument_mem_region_access(), instrument_memory_accesses(), instrument_nonnull_arg(), instrument_nonnull_return(), introduce_cast_before_cand(), ipa_simd_modify_stmt_ops(), is_factor_profitable(), issue_prefetch_ref(), linearize_expr(), lower_bitfield(), lower_long_mul_high_chain(), make_bit_field_load(), make_new_ssa_for_def(), tree_loop_interchange::map_inductions_to_loop(), match_arith_overflow(), match_long_mul_phi(), match_single_bit_test(), match_uaddc_usubc(), maybe_duplicate_comparison(), maybe_optimize_range_tests(), ipa_param_adjustments::modify_call(), move_early_exit_stmts(), move_stmt(), n_of_executions_at_most(), narrow_long_mul_halves(), narrow_long_mul_operands(), negate_value(), oacc_loop_xform_head_tail(), oacc_rewrite_var_decl(), oacc_xform_loop(), oacc_xform_tile(), omp_sese_split_blocks(), ompdevlow_adjust_simt_enter(), sm_set_flag_if_changed::operator()(), optimize_aggr_zeroprop_1(), optimize_agr_copyprop_1(), crc_optimization::optimize_crc_loop(), optimize_mask_stores(), optimize_range_tests_var_bound(), optimize_recip_sqrt(), optimize_spaceship(), optimize_stack_restore(), optimize_vec_cond_expr(), optimize_vector_load(), predicate_scalar_phi(), propagate_op_to_single_use(), propagate_with_phi(), purge_all_uses(), reassoc_stmt_dominates_stmt_p(), pcom_worker::reassociate_to_the_same_stmt(), record_equivalences_from_phis(), release_defs_bitset(), remove_exits_and_undefined_stmts(), remove_gimple_phi_args(), remove_name_from_operation(), remove_prop_source_from_use(), pcom_worker::remove_stmt(), vec_info::remove_stmt(), remove_unused_ivs(), remove_visited_stmt_chain(), replace_abnormal_ssa_names(), replace_func_exit(), replace_mult_candidate(), replace_one_candidate(), replace_reciprocal(), replace_reciprocal_squares(), replace_ref(), replace_ref_with(), replace_rhs_if_not_dup(), replace_uses_by(), repropagate_negates(), ipa_param_body_adjustments::reset_debug_stmts(), rewrite_expr_tree(), rewrite_use_address(), rewrite_use_compare(), rewrite_use_nonlinear_expr(), sanopt_optimize_walker(), shrink_wrap_len_call(), shrink_wrap_one_built_in_call_with_conds(), simple_dce_from_worklist(), simplify_builtin_call(), simplify_builtin_memcpy_memset(), simplify_phi_result_movdiv(), sink_common_stores_to_bb(), slpeel_tree_duplicate_loop_to_edge_cfg(), spaceship_replacement(), tm_log_emit_stmt(), undistribute_bitref_for_vector(), loop_cand::undo_simple_reduction(), update_ops(), update_range_test(), use_internal_fn(), value_replacement(), vect_create_constant_vectors(), vect_do_peeling(), vect_expand_fold_left(), vect_finish_replace_stmt(), vect_loop_vectorized_call(), vect_loop_versioning(), vect_mark_pattern_stmts(), vect_remove_slp_scalar_calls(), vect_schedule_slp_node(), vect_set_loop_condition(), vect_set_loop_condition_normal(), vect_set_loop_controls_directly(), vect_slp_analyze_load_dependences(), vect_slp_analyze_store_dependences(), vect_split_statement(), vect_stmt_dominates_stmt_p(), vect_transform_slp_perm_load_1(), vect_update_ivs_after_vectorizer_for_early_breaks(), vectorizable_condition(), vectorizable_induction(), vectorizable_live_operation(), vectorizable_recurr(), vectorize_fold_left_reduction(), vectorize_slp_instance_root_stmt(), and verify_bb_vtables().

◆ gsi_for_stmt() [2/2]

gimple_stmt_iterator gsi_for_stmt ( gimple * stmt,
gimple_seq * seq )
extern
Get an iterator for STMT, which is known to belong to SEQ.  This is
equivalent to starting at the beginning of SEQ and searching forward
until STMT is found.   

References gsi_for_stmt(), gsi_start(), and i.

◆ gsi_insert_after()

void gsi_insert_after ( gimple_stmt_iterator * i,
gimple * stmt,
enum gsi_iterator_update m )
extern
Insert statement STMT after the statement pointed-to by iterator I.
Update STMT's basic block and scan it for new operands.  M
specifies how to update iterator I after insertion (see enum
gsi_iterator_update).   

References gsi_insert_after(), gsi_insert_after_without_update(), i, and update_modified_stmt().

Referenced by ipa_param_body_adjustments::append_init_stmts(), asan_expand_check_ifn(), asan_expand_mark_ifn(), asan_poison_variable(), asan_store_shadow_bytes(), avoid_deep_ter_for_debug(), branch_fixup(), build_check_stmt(), build_ref_for_offset(), build_shadow_mem_access(), rt_bb_visited::check(), clobber_subtree(), connect_loops(), copy_bb(), create_call_for_reduction_1(), create_empty_if_region_on_edge(), create_empty_loop_on_edge(), create_loads_and_stores_for_name(), create_loads_for_reductions(), create_parallel_loop(), create_stores_for_reduction(), do_split_loop_on_cond(), early_object_sizes_execute_one(), tree_switch_conversion::jump_table_cluster::emit(), tree_switch_conversion::switch_decision_tree::emit_cmp_and_jump_insns(), execute_cse_sincos_1(), execute_fixup_cfg(), execute_sm_if_changed(), tree_switch_conversion::switch_conversion::exp_index_transform(), expand_call_inline(), expand_call_tm(), expand_complex_div_wide(), expand_complex_multiplication(), expand_oacc_for(), expand_omp_build_assign(), expand_omp_build_cond(), expand_omp_for_generic(), expand_omp_for_init_vars(), expand_omp_for_static_chunk(), expand_omp_for_static_nochunk(), expand_omp_ordered_sink(), expand_omp_sections(), expand_omp_simd(), expand_omp_single(), expand_omp_target(), expand_omp_taskloop_for_inner(), expand_omp_taskloop_for_outer(), expand_omp_taskreg(), expand_parallel_call(), expand_thunk(), expand_transaction(), extract_omp_for_update_vars(), fold_builtin_atomic_compare_exchange(), force_into_ssa_name(), gen_assign_counter_update(), gen_counter_update(), generate_memcpy_builtin(), generate_memset_builtin(), generate_subtree_copies(), gimple_duplicate_bb(), gimple_duplicate_sese_tail(), gimple_fold_builtin_stdarg(), gimple_lower_bitint(), gimple_lv_add_condition_to_bb(), gimple_merge_blocks(), gimple_regimplify_operands(), gimple_seq_add_stmt(), gsi_insert_after(), gsi_insert_on_edge_immediate(), gsi_move_after(), handle_abnormal_edges(), handle_builtin_alloca(), hoist_guard(), ifcvt_hoist_invariants(), increment_start_addr(), init_subtree_with_zero(), initialize_constant_pool_replacements(), initialize_root_vars_store_elim_2(), input_bb(), insert_backedge_copies(), insert_cond_bb(), insert_if_then_before_iter(), insert_init_debug_bind(), insert_init_stmt(), insert_initializers(), insert_reciprocals(), insert_stmt_after(), insert_trap(), instrument_bool_enum_load(), instrument_builtin(), instrument_builtin_call(), instrument_nonnull_arg(), instrument_nonnull_return(), ipa_simd_modify_stmt_ops(), ipa_tm_insert_gettmclone_call(), load_assign_lhs_subreplacements(), lower_builtin_posix_memalign(), lower_eh_constructs_2(), lower_function_body(), lower_omp_1(), lower_omp_scan(), lower_omp_scope(), lower_omp_sections(), lower_omp_single(), lower_resx(), lower_transaction(), make_blocks_1(), make_new_ssa_for_def(), match_arith_overflow(), maybe_cast_to_ptrmode(), maybe_create_ssa_name(), maybe_register_def(), move_sese_in_condition(), neuter_worker_single(), oacc_entry_exit_single_gang(), sm_set_flag_if_changed::operator()(), optimize_mask_stores(), optimize_recip_sqrt(), reassociate_bb(), remap_ssa_name(), remove_dead_stmt(), replace_goto_queue_1(), replace_goto_queue_cond_clause(), replace_ref_with(), rewrite_stmt(), rewrite_to_defined_unconditional(), scan_omp_simd_scan(), simd_clone_adjust(), simplify_builtin_call(), slpeel_add_loop_guard(), slpeel_tree_duplicate_loop_to_edge_cfg(), split_function(), sra_modify_expr(), thunk_adjust(), tm_log_emit_restores(), tree_transform_and_unroll_loop(), ubsan_expand_bounds_ifn(), ubsan_expand_null_ifn(), ubsan_expand_objsize_ifn(), ubsan_expand_ptr_ifn(), ubsan_expand_vptr_ifn(), unloop_loops(), update_accumulator_with_ops(), vect_do_peeling(), vect_loop_versioning(), vect_set_loop_condition_partial_vectors(), vectorizable_simd_clone_call(), verify_bb_vtables(), worker_single_copy(), and worker_single_simple().

◆ gsi_insert_after_without_update()

void gsi_insert_after_without_update ( gimple_stmt_iterator * i,
gimple * stmt,
enum gsi_iterator_update m )
extern
Insert statement STMT after the statement pointed-to by iterator I.
M specifies how to update iterator I after insertion (see enum
gsi_iterator_update).

This function does not scan for new operands.  It is provided for
the use of the gimplifier, which manipulates statements for which
def/use information has not yet been constructed.  Most callers
should use gsi_insert_after.   

References gsi_insert_after_without_update(), gsi_insert_seq_nodes_after(), and i.

Referenced by gimple_seq_add_stmt_without_update(), gimplify_and_update_call_from_tree(), gsi_insert_after(), gsi_insert_after_without_update(), and save_tmp_var().

◆ gsi_insert_before()

void gsi_insert_before ( gimple_stmt_iterator * i,
gimple * stmt,
enum gsi_iterator_update m )
extern
Insert statement STMT before the statement pointed-to by iterator I.
Update STMT's basic block and scan it for new operands.  M
specifies how to update iterator I after insertion (see enum
gsi_iterator_update).   

References gsi_insert_before(), gsi_insert_before_without_update(), i, and update_modified_stmt().

Referenced by add_clobbers_to_eh_landing_pad(), adjust_return_value_with_ops(), asan_expand_check_ifn(), asan_expand_poison_ifn(), asan_poison_variable(), attempt_builtin_powi(), eliminate_dom_walker::before_dom_children(), build_and_add_sum(), build_and_insert_binop(), build_and_insert_call(), tree_switch_conversion::switch_conversion::build_arrays(), tree_switch_conversion::switch_conversion::build_one_array(), build_ref_for_offset(), build_saturation_binary_arith_call_and_insert(), build_tm_load(), build_tm_store(), build_vect_cond_expr(), rt_bb_visited::check(), clear_padding_emit_loop(), clear_padding_flush(), clear_padding_type(), clobber_subtree(), cond_if_else_store_replacement_1(), cond_removal_in_builtin_zero_pattern(), cond_store_replacement(), cond_store_replacement_limited(), convert_if_conditions_to_switch(), convert_nl_goto_receiver(), convert_scalar_cond_reduction(), convert_to_divmod(), create_final_loads_for_reduction(), create_parallel_loop(), detach_value(), tree_switch_conversion::switch_decision_tree::do_jump_if_equal(), do_pre_regular_insertion(), do_vec_conversion(), eliminate_dom_walker::eliminate_cleanup(), eliminate_tail_call(), tree_switch_conversion::bit_test_cluster::emit(), emit_mfence_after_loop(), execute_cse_sincos_1(), execute_omp_device_lower(), execute_sm(), execute_update_addresses_taken(), expand_assign_tm(), expand_call_inline(), expand_complex_div_wide(), expand_complex_libcall(), expand_complex_move(), expand_oacc_collapse_init(), expand_oacc_collapse_vars(), expand_oacc_for(), expand_omp_atomic_cas(), expand_omp_atomic_load(), expand_omp_atomic_mutex(), expand_omp_atomic_pipeline(), expand_omp_atomic_store(), expand_omp_build_assign(), expand_omp_build_cond(), expand_omp_for_generic(), expand_omp_for_init_counts(), expand_omp_for_init_vars(), expand_omp_for_ordered_loops(), expand_omp_for_static_chunk(), expand_omp_for_static_nochunk(), expand_omp_ordered_sink(), expand_omp_ordered_source(), expand_omp_sections(), expand_omp_simd(), expand_omp_target(), expand_omp_taskloop_for_inner(), expand_transaction(), expand_vector_conversion(), expand_vector_divmod(), extract_component(), factor_out_conditional_load(), find_assumption_locals_r(), fold_builtin_atomic_compare_exchange(), fold_strstr_to_strncmp(), force_into_ssa_name(), tree_switch_conversion::switch_conversion::gen_def_assigns(), tree_switch_conversion::switch_conversion::gen_inbound_check(), gen_phi_nest_statement(), generate_subtree_copies(), generate_subtree_deferred_init(), get_string_length(), get_target_arguments(), gimple_block_label(), gimple_divmod_fixed_value(), gimple_expand_vec_set_extract_expr(), gimple_fold_builtin_acc_on_device(), gimple_fold_builtin_clear_padding(), gimple_fold_builtin_memory_op(), gimple_fold_builtin_memset(), gimple_fold_builtin_stpcpy(), gimple_fold_call(), gimple_gen_average_profiler(), gimple_gen_ic_func_profiler(), gimple_gen_ic_profiler(), gimple_gen_interval_profiler(), gimple_gen_ior_profiler(), gimple_gen_pow2_profiler(), gimple_gen_time_profiler(), gimple_gen_topn_values_profiler(), gimple_ic(), gimple_lower_bitint(), gimple_merge_blocks(), gimple_mod_pow2(), gimple_mod_subtract(), gimple_stringop_fixed_value(), gsi_insert_before(), gsi_insert_finally_seq_after_call(), gsi_insert_on_edge_immediate(), gsi_move_before(), gsi_safe_insert_before(), handle_abnormal_edges(), handle_builtin_alloca(), handle_builtin_stack_restore(), hoist_defs_of_uses(), tree_switch_conversion::bit_test_cluster::hoist_edge_and_branch_if_true(), ifc_temp_var(), ifcombine_replace_cond(), increment_start_addr(), init_subtree_with_zero(), init_tmp_var_with_call(), insert_backedge_copies(), insert_check_and_trap(), insert_clobber_before_stack_restore(), insert_cond_bb(), insert_debug_temp_for_var_def(), rt_bb_visited::insert_exit_check_on_edge(), insert_init_debug_bind(), insert_initializers(), insert_phi_nodes_for(), insert_reciprocals(), insert_stmt_after(), insert_stmt_before_use(), insert_trap(), instrument_bool_enum_load(), instrument_builtin(), instrument_builtin_call(), instrument_func_exit(), instrument_si_overflow(), ipa_simd_modify_function_body(), ipa_simd_modify_stmt_ops(), ipa_tm_insert_gettmclone_call(), ipa_tm_insert_irr_call(), issue_prefetch_ref(), label_to_block(), linearize_expr(), lower_assumption(), lower_bitfield(), lower_builtin_setjmp(), lower_coro_builtin(), lower_eh_constructs_2(), lower_eh_dispatch(), lower_gimple_return(), lower_resx(), match_arith_overflow(), match_saturation_trunc(), match_single_bit_test(), match_spaceship(), match_uaddc_usubc(), maybe_add_asan_poison_write(), maybe_duplicate_comparison(), maybe_move_debug_stmts_to_successors(), maybe_optimize_range_tests(), merge_with_identity(), ipa_param_adjustments::modify_call(), negate_value(), neuter_worker_single(), oacc_entry_exit_single_gang(), oacc_rewrite_var_decl(), omp_sese_split_blocks(), ompdevlow_adjust_simt_enter(), crc_optimization::optimize_crc_loop(), optimize_range_tests_var_bound(), optimize_recip_sqrt(), optimize_spaceship(), optimize_tail_call(), optimize_vector_constructor(), optimize_vector_load(), powi_as_mults(), powi_as_mults_1(), predicate_scalar_phi(), prepare_target_mem_ref_lvalue(), prepare_vec_mask(), propagate_threaded_block_debug_into(), pcom_worker::reassociate_to_the_same_stmt(), remap_ssa_name(), remove_bb(), remove_exits_and_undefined_stmts(), remove_unused_ivs(), replace_abnormal_ssa_names(), replace_ref_with(), repropagate_negates(), ipa_param_body_adjustments::reset_debug_stmts(), rewrite_bittest(), rewrite_debug_stmt_uses(), rewrite_expr_tree(), rewrite_phi_with_iv(), rewrite_reciprocal(), rewrite_use_nonlinear_expr(), set_ifsese_condition(), shrink_wrap_len_call(), shrink_wrap_one_built_in_call_with_conds(), simd_clone_adjust(), simd_clone_linear_addend(), simplify_using_ranges::simplify_float_conversion_using_ranges(), simplify_using_ranges::simplify_internal_call_using_ranges(), simplify_permutation(), simplify_rotate(), simplify_using_ranges::simplify_truth_ops_using_ranges(), simplify_vector_constructor(), sink_clobbers(), sink_common_stores_to_bb(), spaceship_replacement(), sra_modify_assign(), sra_modify_expr(), ssa_create_duplicates(), tm_log_emit_saves(), tm_log_emit_stmt(), transform_to_exit_first_loop(), tree_function_versioning(), tree_vec_extract(), ubsan_expand_bounds_ifn(), ubsan_expand_null_ifn(), ubsan_expand_objsize_ifn(), ubsan_expand_ptr_ifn(), ubsan_expand_vptr_ifn(), undistribute_bitref_for_vector(), update_ops(), use_internal_fn(), value_replacement(), vect_create_epilog_for_reduction(), vect_do_peeling(), vect_expand_fold_left(), vect_finish_stmt_generation(), vect_gen_loop_len_mask(), vect_get_loop_iv_increment(), vect_set_loop_condition_normal(), vect_set_loop_condition_partial_vectors(), vect_set_loop_condition_partial_vectors_avx512(), vect_setup_realignment(), vector_element(), vectorizable_live_operation(), vectorizable_simd_clone_call(), vectorize_fold_left_reduction(), version_loop_for_if_conversion(), worker_single_copy(), and worker_single_simple().

◆ gsi_insert_before_without_update()

void gsi_insert_before_without_update ( gimple_stmt_iterator * i,
gimple * stmt,
enum gsi_iterator_update m )
extern
Insert statement STMT before the statement pointed-to by iterator I.
M specifies how to update iterator I after insertion (see enum
gsi_iterator_update).

This function does not scan for new operands.  It is provided for
the use of the gimplifier, which manipulates statements for which
def/use information has not yet been constructed.  Most callers
should use gsi_insert_before.   

References gsi_insert_before_without_update(), gsi_insert_seq_nodes_before(), and i.

Referenced by gsi_insert_before(), gsi_insert_before_without_update(), init_tmp_var(), vec_info::insert_on_entry(), lower_rec_input_clauses(), vect_mark_pattern_stmts(), and vect_split_statement().

◆ gsi_insert_on_edge()

void gsi_insert_on_edge ( edge e,
gimple * stmt )
extern

◆ gsi_insert_on_edge_immediate()

◆ gsi_insert_seq_after()

◆ gsi_insert_seq_after_without_update()

void gsi_insert_seq_after_without_update ( gimple_stmt_iterator * i,
gimple_seq seq,
enum gsi_iterator_update mode )
extern
Links sequence SEQ after the statement pointed-to by iterator I.
MODE is as in gsi_insert_after.

This function does not scan for new operands.  It is provided for
the use of the gimplifier, which manipulates statements for which
def/use information has not yet been constructed.  Most callers
should use gsi_insert_seq_after.   

References gcc_assert, gimple_seq_first(), gimple_seq_last(), gsi_insert_seq_after_without_update(), gsi_insert_seq_nodes_after(), i, and NULL.

Referenced by combine_blocks(), gimple_build_insert_seq(), gimple_seq_add_seq_without_update(), gimplify_seq_add_seq(), gsi_insert_seq_after(), and gsi_insert_seq_after_without_update().

◆ gsi_insert_seq_before()

void gsi_insert_seq_before ( gimple_stmt_iterator * i,
gimple_seq seq,
enum gsi_iterator_update mode )
extern
Inserts the sequence of statements SEQ before the statement pointed
by iterator I.  MODE indicates what to do with the iterator after
insertion (see enum gsi_iterator_update). Scan the statements in SEQ
for new operands.   

References gsi_insert_seq_before(), gsi_insert_seq_before_without_update(), i, and update_modified_stmts().

Referenced by add_header_seq(), tree_switch_conversion::switch_conversion::build_one_array(), comparison_combine(), convert_mult_to_fma_1(), convert_scalar_cond_reduction(), decompose_kernels_region_body(), do_hoist_insertion(), eliminate_dom_walker::eliminate_insert(), tree_switch_conversion::switch_conversion::exp_index_transform(), expand_complex_addition(), expand_complex_comparison(), expand_complex_conjugate(), expand_complex_div_straight(), expand_complex_div_wide(), expand_complex_division(), expand_complex_multiplication(), expand_complex_negation(), expand_complex_paren(), factor_out_conditional_operation(), factor_out_operators(), final_value_replacement_loop(), force_gimple_operand_gsi_1(), generate_range_test(), gimple_build_insert_seq(), gimple_expand_builtin_cabs(), gimple_expand_vec_cond_expr(), gimple_fold_builtin_memory_chk(), gimple_fold_builtin_memory_op(), gimple_fold_builtin_stpcpy(), gimple_fold_builtin_stxcpy_chk(), gimple_regimplify_operands(), gimplify_size_expressions(), gsi_commit_one_edge_insert(), gsi_insert_finally_seq_after_call(), gsi_insert_seq_before(), gsi_insert_seq_on_edge_immediate(), gsi_replace_with_seq(), gsi_safe_insert_seq_before(), handle_builtin_alloca(), honor_protect_cleanup_actions(), rt_bb_visited::insert_exit_check_in_block(), insert_gimplified_predicates(), insert_initializers(), insert_iv_increment(), vec_info::insert_seq_on_entry(), instrument_expr(), long_mul_split_phi(), lower_eh_constructs_2(), lower_emutls_function_body(), lower_gimple_bind(), lower_omp_scan(), lower_omp_target(), lower_transaction(), make_bit_field_load(), make_blocks(), match_long_mul_phi(), match_simplify_replacement(), ipa_param_body_adjustments::modify_cfun_body(), narrow_long_mul_halves(), narrow_long_mul_low_half(), predicate_statements(), replace_goto_queue_1(), replace_stmt_with_simplification(), rewrite_to_defined_unconditional(), rewrite_use_nonlinear_expr(), simd_clone_adjust(), simplify_vector_constructor(), take_address_of(), tree_vec_extract(), loop_cand::undo_simple_reduction(), update_range_test(), vect_create_constant_vectors(), vect_create_data_ref_ptr(), vect_create_epilog_for_reduction(), vect_emit_reduction_init_stmts(), vect_gen_prolog_loop_niters(), vect_gen_vector_loop_niters_mult_vf(), vect_get_loop_len(), vect_get_loop_mask(), vect_loop_versioning(), vect_set_loop_controls_directly(), vect_setup_realignment(), vect_transform_loop(), vect_update_ivs_after_vectorizer(), vect_update_ivs_after_vectorizer_for_early_breaks(), vectorizable_induction(), vectorizable_live_operation(), vectorizable_live_operation_1(), vectorizable_load(), vectorizable_nonlinear_induction(), vectorizable_store(), vectorize_slp_instance_root_stmt(), version_loop_by_alias_check(), and rt_bb_visited::visit().

◆ gsi_insert_seq_before_without_update()

void gsi_insert_seq_before_without_update ( gimple_stmt_iterator * i,
gimple_seq seq,
enum gsi_iterator_update mode )
extern
Inserts the sequence of statements SEQ before the statement pointed
by iterator I.  MODE indicates what to do with the iterator after
insertion (see enum gsi_iterator_update).

This function does not scan for new operands.  It is provided for
the use of the gimplifier, which manipulates statements for which
def/use information has not yet been constructed.  Most callers
should use gsi_insert_seq_before.   

References gcc_assert, gimple_seq_first(), gimple_seq_last(), gsi_insert_seq_before_without_update(), gsi_insert_seq_nodes_before(), i, and NULL.

Referenced by gimple_build_insert_seq(), gimplify_bind_expr(), gimplify_cleanup_point_expr(), gsi_insert_seq_before(), gsi_insert_seq_before_without_update(), rt_bb_visited::insert_exit_check_on_edge(), reset_debug_bindings(), sink_clobbers(), and vect_mark_pattern_stmts().

◆ gsi_insert_seq_on_edge()

void gsi_insert_seq_on_edge ( edge e,
gimple_seq seq )
extern

◆ gsi_insert_seq_on_edge_immediate()

basic_block gsi_insert_seq_on_edge_immediate ( edge e,
gimple_seq stmts )
extern

◆ gsi_last()

◆ gsi_last_bb()

gimple_stmt_iterator gsi_last_bb ( basic_block bb)
inline
Return a new iterator pointing to the last statement in basic block BB.   

References bb_seq_addr(), gimple_seq_last(), gsi_last_bb(), and i.

Referenced by back_threader_profitability::account_bb(), adjust_return_value(), allow_ip_end_pos_p(), ipa_param_body_adjustments::append_init_stmts(), apply_clusters(), apply_return_prediction(), asan_expand_check_ifn(), assert_unreachable_fallthru_edge_p(), associate_equivalences_with_edges(), dom_opt_dom_walker::before_dom_children(), bound_difference(), build_and_add_sum(), build_ssa_conflict_graph(), canonicalize_loop_ivs(), cfun_returns(), clean_up_after_unswitching(), cleanup_control_flow_bb(), cleanup_dead_labels(), cleanup_empty_eh(), cleanup_empty_eh_move_lp(), clobber_only_eh_bb_p(), combine_blocks(), comparison_combine(), compute_complex_ancestor_jump_func(), path_range_query::compute_outgoing_relations(), cond_removal_in_builtin_zero_pattern(), connect_loops(), control_dep_semi_invariant_p(), copy_bb(), copy_edges_for_bb(), crc_optimization::crc_cond(), create_call_for_reduction_1(), create_canonical_iv(), create_cond_insert_point(), create_edge_for_control_dependence(), create_empty_if_region_on_edge(), create_empty_loop_on_edge(), create_loads_and_stores_for_name(), create_new_iv(), create_parallel_loop(), create_preheader(), create_stores_for_reduction(), determine_max_movement(), determine_value_range(), do_hoist_insertion(), tree_switch_conversion::switch_decision_tree::do_jump_if_equal(), do_split_loop_on_cond(), do_while_loop_p(), dse_classify_store(), dump_implicit_edges(), eliminate_tail_call(), eliminate_unnecessary_stmts(), tree_switch_conversion::bit_test_cluster::emit(), tree_switch_conversion::switch_decision_tree::emit(), tree_switch_conversion::switch_decision_tree::emit_cmp_and_jump_insns(), end_recording_case_labels(), estimate_numbers_of_iterations(), estimate_threading_killed_stmts(), evaluate_bbs(), execute_fixup_cfg(), execute_omp_device_lower(), execute_over_cond_phis(), execute_ranger_vrp(), tree_switch_conversion::switch_conversion::exp_index_transform(), expand_call_inline(), expand_complex_div_wide(), expand_complex_multiplication(), expand_gimple_basic_block(), expand_oacc_for(), expand_omp_for_generic(), expand_omp_for_init_vars(), expand_omp_for_ordered_loops(), expand_omp_for_static_chunk(), expand_omp_for_static_nochunk(), expand_omp_ordered_sink(), expand_omp_simd(), expand_omp_target(), expand_omp_taskloop_for_outer(), expand_thunk(), expand_transaction(), find_conditions(), find_loop_dist_alias(), find_loop_guard(), find_return_bb(), find_tail_calls(), find_taken_edge(), find_unswitching_predicates_for_bb(), fixup_noreturn_call(), gen_parallel_loop(), generate_memcpy_builtin(), generate_memset_builtin(), generate_range_test(), generate_reduction_builtin_1(), virtual_operand_live::get_live_out(), get_live_virtual_operand_on_edge(), get_loop_exit_condition(), get_pred_info_from_cond_edge(), gimple_block_ends_with_condjump_p(), gimple_can_merge_blocks_p(), gimple_duplicate_sese_tail(), gimple_expand_calls_inline(), gimple_find_edge_insert_loc(), gimple_lower_bitint(), gimple_lv_add_condition_to_bb(), gimple_merge_blocks(), gimple_purge_dead_abnormal_call_edges(), gimple_purge_dead_eh_edges(), gimple_try_redirect_by_replacing_jump(), group_case_labels(), gsi_last_bb(), gsi_last_nondebug_bb(), gsi_move_to_bb_end(), gsi_prev_dom_bb_nondebug(), handle_abnormal_edges(), hardcfr_scan_block(), hoist_guard(), if_convertible_bb_p(), if_convertible_loop_p_1(), ifcombine_ifandif(), ifcombine_replace_cond(), ifcvt_local_dce(), ifcvt_split_critical_edges(), predicate::init_from_control_deps(), insert_backedge_copies(), insert_cond_bb(), rt_bb_visited::insert_exit_check_in_block(), insert_gimplified_predicates(), insert_init_debug_bind(), insert_init_stmt(), insert_initializers(), insert_stmt_after(), instrument_func_exit(), tree_loop_interchange::interchange_loops(), ip_normal_pos(), ipa_analyze_indirect_call_uses(), uninit_analysis::is_use_guarded(), known_succ_p(), last_nondebug_stmt(), long_mul_split_phi(), loop_niter_by_eval(), lower_eh_dispatch(), lower_resx(), make_cond_expr_edges(), make_edges_bb(), make_gimple_asm_edges(), make_goto_expr_edges(), lazy_diagnostic_context_path::make_inner_path(), malloc_candidate_p(), tree_loop_interchange::map_inductions_to_loop(), mark_last_stmt_necessary(), match_cond_with_binary_phi(), match_simplify_replacement(), maybe_move_debug_stmts_to_successors(), maybe_optimize_guarding_check(), maybe_optimize_range_tests(), maybe_remove_forwarder_block(), maybe_set_nonzero_bits(), back_threader::maybe_thread_block(), tree_loop_interchange::move_code_to_inner_loop(), move_computations_worker(), move_debug_stmts_from_forwarder(), move_sese_in_condition(), number_of_iterations_cltz(), number_of_iterations_cltz_complement(), number_of_iterations_exit_assumptions(), number_of_iterations_popcount(), oacc_entry_exit_single_gang(), omp_sese_find_par(), optimize_clobbers(), optimize_mask_stores(), optimize_spaceship(), patch_loop_exit(), phi_result_unknown_predicate(), potentially_threadable_block(), predicate_bbs(), predict_extra_loop_exits(), predict_iv_comparison(), predict_loops(), propagate_threaded_block_debug_into(), reassociate_bb(), record_edge_info(), redirect_eh_edge_1(), release_last_vdef(), remap_ssa_name(), remove_bb(), remove_ctrl_stmt_and_useless_edges(), replace_loop_annotate(), replace_loop_annotate_in_block(), replace_phi_edge_with_variable(), set_cond_stmt_execution_predicate(), dom_opt_dom_walker::set_global_ranges_from_unreachable_edges(), set_ifsese_condition(), set_location_for_edge(), set_switch_stmt_execution_predicate(), should_duplicate_loop_header_p(), simd_clone_adjust(), simplify_loop_version(), simplify_using_initial_conditions(), single_block_loop_p(), sink_clobbers(), sink_code_in_bb(), slpeel_add_loop_guard(), slpeel_can_duplicate_loop_p(), slpeel_tree_duplicate_loop_to_edge_cfg(), sm_seq_valid_bb(), spaceship_replacement(), split_at_bb_p(), split_critical_edges(), split_function(), split_loop(), split_loop_on_cond(), ssa_create_duplicates(), standard_iv_increment_position(), static_loop_exit(), jump_threader::thread_outgoing_edges(), tm_log_emit_saves(), tm_region_init_1(), loop_distribution::transform_reduction_loop(), transform_to_exit_first_loop(), transform_to_exit_first_loop_alt(), tree_estimate_loop_size(), tree_optimize_tail_calls_1(), tree_predict_by_opcode(), tree_ssa_iv_optimize_loop(), tree_transform_and_unroll_loop(), tree_switch_conversion::switch_decision_tree::try_switch_expansion(), try_transform_to_exit_first_loop_alt(), try_unroll_loop_completely(), update_profile_after_ch(), update_range_test(), value_replacement(), vect_analyze_early_break_dependences(), vect_determine_precisions(), vect_do_peeling(), vect_emit_reduction_init_stmts(), vect_gen_prolog_loop_niters(), vect_iv_increment_position(), vect_loop_dist_alias_call(), vect_loop_vectorized_call(), vect_loop_versioning(), vect_set_loop_condition_partial_vectors(), vect_slp_function(), vect_transform_cycle_phi(), vect_update_ivs_after_vectorizer(), vectorizable_early_exit(), version_loop_by_alias_check(), version_loop_for_if_conversion(), vn_phi_eq(), vn_phi_insert(), vn_phi_lookup(), worker_single_copy(), and worker_single_simple().

◆ gsi_last_nondebug_bb()

gimple_stmt_iterator gsi_last_nondebug_bb ( basic_block bb)
inline
Return a new iterator pointing to the last non-debug statement in
basic block BB.   

References gsi_end_p(), gsi_last_bb(), gsi_last_nondebug_bb(), gsi_prev_nondebug(), gsi_stmt(), i, and is_gimple_debug().

Referenced by adjust_iv_update_pos(), assume_query::assume_query(), branch_prob(), build_omp_regions_1(), builtin_setjmp_setup_bb(), canonicalize_loop_ivs(), cleanup_control_flow_bb(), cleanup_empty_eh(), create_parallel_loop(), expand_oacc_for(), expand_omp_atomic_cas(), expand_omp_atomic_fetch_op(), expand_omp_atomic_load(), expand_omp_atomic_mutex(), expand_omp_atomic_pipeline(), expand_omp_atomic_store(), expand_omp_for_generic(), expand_omp_for_init_counts(), expand_omp_for_static_chunk(), expand_omp_for_static_nochunk(), expand_omp_sections(), expand_omp_simd(), expand_omp_single(), expand_omp_synch(), expand_omp_target(), expand_omp_taskloop_for_inner(), expand_omp_taskloop_for_outer(), expand_omp_taskreg(), expand_parallel_call(), expand_task_call(), expand_taskwait_call(), expand_teams_call(), find_conditions(), find_duplicate(), fixup_noreturn_call(), gimple_block_ends_with_call_p(), gimple_can_merge_blocks_p(), gimple_flow_call_edges_add(), gimple_outgoing_range_stmt_p(), gimple_redirect_edge_and_branch(), gimple_split_block_before_cond_jump(), gimple_verify_flow_info(), gsi_last_nondebug_bb(), ifconvertable_edge(), last_and_only_stmt(), last_stmt_ptr_check(), maybe_move_debug_stmts_to_successors(), remove_exit_barrier(), tree_transform_and_unroll_loop(), value_replacement(), vect_update_ivs_after_vectorizer_for_early_breaks(), and want_merge_blocks_p().

◆ gsi_move_after()

void gsi_move_after ( gimple_stmt_iterator * from,
gimple_stmt_iterator * to )
extern
Move the statement at FROM so it comes right after the statement at TO.   

References gsi_insert_after(), gsi_move_after(), GSI_NEW_STMT, gsi_remove(), and gsi_stmt().

Referenced by gsi_move_after(), gsi_move_to_bb_end(), make_blocks(), move_debug_stmts_from_forwarder(), and loop_cand::undo_simple_reduction().

◆ gsi_move_before()

◆ gsi_move_to_bb_end()

void gsi_move_to_bb_end ( gimple_stmt_iterator * from,
basic_block bb )
extern

◆ gsi_next()

void gsi_next ( gimple_stmt_iterator * i)
inline
Advance the iterator to the next gimple statement.   

References gsi_next(), and i.

Referenced by _bb_vec_info::_bb_vec_info(), _loop_vec_info::_loop_vec_info(), add_async_clauses_and_wait(), add_bb_predicate_gimplified_stmts(), add_call_edges_for_seq(), add_phi_args_after_copy_edge(), add_scope_conflicts_1(), add_successor_phi_arg(), adjust_simduid_builtins(), autofdo::afdo_set_bb_count(), autofdo::afdo_unscaled_edge_count(), afdo_vpt_for_early_inline(), analyze_bb(), loop_cand::analyze_carried_vars(), analyze_function(), analyze_function_body(), loop_cand::analyze_lcssa_phis(), analyze_memory_references(), annotate_all_with_location(), annotate_all_with_location_after(), assign_calc_vals_to_header_phis(), assign_discriminators(), assign_discriminators_to_bb(), assign_known_vals_to_header_phis(), assign_vals_to_header_phis(), bb_no_side_effects_p(), bb_phis_references_abnormal_uses(), bb_prevents_fusion_p(), check_array_bounds_dom_walker::before_dom_children(), dom_opt_dom_walker::before_dom_children(), eliminate_dom_walker::before_dom_children(), find_candidates_dom_walker::before_dom_children(), ipcp_modif_dom_walker::before_dom_children(), mark_def_dom_walker::before_dom_children(), nontrapping_dom_walker::before_dom_children(), rewrite_dom_walker::before_dom_children(), rewrite_update_dom_walker::before_dom_children(), strlen_pass::before_dom_children(), substitute_and_fold_dom_walker::before_dom_children(), bitfields_to_lower_p(), branch_prob(), break_up_subtract_bb(), tree_switch_conversion::switch_conversion::build_arrays(), build_check_stmt(), tree_switch_conversion::switch_conversion::build_constructors(), build_ssa_conflict_graph(), calculate_live_on_exit(), loop_cand::can_interchange_p(), can_strub_internally_p(), canonicalize_loop_ivs(), ccp_initialize(), check_all_va_list_escapes(), check_exit_phi(), tree_switch_conversion::switch_conversion::check_final_bb(), check_loop_closed_ssa_bb(), clean_up_loop_closed_phi(), cleanup_control_flow_bb(), cleanup_dead_labels(), cleanup_empty_eh_merge_phis(), cleanup_empty_eh_unsplit(), clear_unused_block_pointer(), coalesce_partitions(), collect_dfa_stats(), collect_fallthrough_labels(), collect_finally_tree_1(), combine_blocks(), compute_avail(), compute_dependence_clique(), compute_invariantness(), compute_live_vars_1(), compute_optimized_partition_bases(), path_range_query::compute_phi_relations(), compute_points_to_sets(), path_range_query::compute_ranges_in_phis(), control_flow_regions::compute_regions(), cond_only_block_p(), connect_loop_phis(), consider_split(), copy_bb(), copy_cfg_body(), copy_loop_before(), copy_phi_arg_into_existing_phi(), copy_phi_args(), copy_phis_for_bb(), count_stmts_and_phis_in_block(), cprop_into_successor_phis(), create_coalesce_list_for_region(), create_expression_by_pieces(), create_loads_for_reductions(), create_new_iv(), create_parallel_loop(), debug_seed_ranger(), decide_copy_try_finally(), decompose_kernels_region_body(), delete_unreachable_blocks_update_callgraph(), destroy_loop(), determine_reduction_stmt_1(), determine_set_costs(), determine_unlikely_bbs(), determine_value_range(), discover_nonconstant_array_refs(), do_rpo_vn_1(), do_warn_unused_result(), dump_enumerated_decls(), dump_gimple_bb_header(), dump_gimple_seq(), dump_oacc_loop_part(), dump_phi_nodes(), easy_exit_values(), edge_before_returns_twice_call(), eliminate_build(), eliminate_local_variables(), eliminate_dom_walker::eliminate_stmt(), eliminate_tail_call(), eliminate_temp_copies(), eliminate_unnecessary_stmts(), eliminate_useless_phis(), empty_bb_without_guard_p(), empty_body_p(), empty_eh_cleanup(), enter_omp_iterator_loop_context_1(), estimate_bb_frequencies(), estimate_loop_insns(), estimate_num_insns_fn(), estimate_num_insns_seq(), estimate_threading_killed_stmts(), loop_distribution::execute(), pass_walloca::execute(), crc_symbolic_execution::execute_bb_gimple_statements(), crc_symbolic_execution::execute_bb_phi_statements(), execute_cse_conv_1(), execute_early_expand_coro_ifns(), execute_fixup_cfg(), execute_oacc_device_lower(), execute_omp_device_lower(), execute_omp_oacc_neuter_broadcast(), execute_sm_if_changed(), execute_split_functions(), execute_update_addresses_taken(), tree_switch_conversion::switch_conversion::exp_index_transform(), expand_assign_tm(), expand_block_edges(), expand_block_tm(), expand_call_inline(), expand_FALLTHROUGH_r(), expand_gimple_basic_block(), expand_ifn_va_arg(), expand_ifn_va_arg_1(), expand_omp_for_generic(), expand_omp_for_static_chunk(), expand_omp_for_static_nochunk(), expand_omp_target(), expand_omp_taskreg(), expand_vector_operations(), factor_out_all(), fill_always_executed_in(), final_value_replacement_loop(), find_bivs(), find_data_references_in_bb(), find_deps_in_bb_for_stmt(), find_explicit_erroneous_behavior(), find_foldable_builtin_expect(), find_gang_private_vars(), find_givs_in_bb(), find_implicit_erroneous_behavior(), find_interesting_uses(), find_interesting_uses_outside(), find_local_vars_to_propagate(), find_loop_location(), pcom_worker::find_looparound_phi(), find_necessary_statements(), find_obviously_necessary_stmts(), find_outermost_region_in_block(), find_partitioned_var_uses(), find_phi_with_arg_on_edge(), find_replaceable_in_bb(), find_retval(), find_seed_stmts_for_distribution(), find_ssa_names_to_propagate(), find_subloop_latch_edge_by_ivs(), find_tail_calls(), find_uses_to_rename_bb(), first_stmt(), tree_switch_conversion::switch_conversion::fix_phi_nodes(), tree_switch_conversion::switch_decision_tree::fix_phi_operands_for_edges(), fixup_noreturn_call(), ipa_icf::sem_item_optimizer::fixup_points_to_sets(), flatten_binds(), flush_pending_stmts(), fold_marked_statements(), force_edge_cold(), substitute_and_fold_dom_walker::foreach_new_stmt_in_bb(), free_rdg(), fuse_loops(), tree_switch_conversion::switch_conversion::gather_default_values(), gather_memory_references(), gather_scalar_reductions(), tree_switch_conversion::switch_conversion::gen_inbound_check(), generate_loops_for_partition(), get_all_stmt_may_generate_copy(), get_loop_body_in_if_conv_order(), crc_optimization::get_output_phi(), get_virtual_phi(), get_vop_from_header(), gimple_block_label(), gimple_can_duplicate_bb_p(), gimple_can_merge_blocks_p(), gimple_dump_bb_as_sarif_properties(), gimple_dump_bb_buff(), gimple_dump_bb_for_graph(), gimple_duplicate_bb(), gimple_empty_block_p(), gimple_find_edge_insert_loc(), gimple_find_values_to_profile(), gimple_ic(), gimple_lower_bitint(), gimple_lv_adjust_loop_header_phi(), gimple_make_forwarder_block(), gimple_merge_blocks(), gimple_seq_copy(), gimple_seq_set_location(), gimple_split_block(), gimple_try_catch_may_fallthru(), gimple_value_profile_transformations(), gimple_verify_flow_info(), gimplify_and_return_first(), gimplify_cleanup_point_expr(), gsi_after_labels(), gsi_after_labels(), gsi_next(), gsi_next_nondebug(), gsi_next_nonvirtual_phi(), gsi_replace_with_seq_vops(), gsi_safe_insert_seq_before(), strlen_pass::handle_store(), hoist_adjacent_loads(), hoist_guard(), if_convertible_loop_p_1(), ifcombine_replace_cond(), ifcvt_hoist_invariants(), ifcvt_local_dce(), imm_dom_path_with_freeing_call(), independent_of_stmt_p(), infer_loop_bounds_from_undefined(), ipa_icf::sem_function::init(), init_copy_prop(), init_copyid_allocator(), init_dont_simulate_again(), init_loop_unswitch_info(), initialize_flags_in_bb(), input_function(), insert_backedge_copies(), insert_reciprocals(), instrument_builtin_call(), instrument_memory_accesses(), pointer_analysis::intra_build_constraints(), ipa_analyze_params_uses_in_bb(), pointer_analysis::ipa_build_constraints(), ipa_profile_generate_summary(), ipa_pta_execute(), ipa_simd_modify_function_body(), ipa_tm_decrement_clone_counts(), ipa_tm_diagnose_transaction(), ipa_tm_scan_calls_block(), ipa_tm_scan_irr_block(), ipa_tm_transform_calls_1(), isolate_path(), loop_body_includes_call(), loop_closed_phi_def(), loop_edge_to_cancel(), loop_has_phi_with_address_arg(), loop_has_vector_phi_nodes(), loop_nest_has_data_refs(), loop_only_exit_p(), lower_catch(), lower_eh_constructs_2(), lower_emutls_function_body(), lower_omp(), lower_omp_directive(), lower_omp_for_scan(), lower_omp_ordered_clauses(), lower_omp_scan(), lower_omp_sections(), lower_stmt(), lower_try_catch(), lower_try_finally_dup_block(), lower_try_finally_onedest(), lto_prepare_function_for_streaming(), make_bit_field_load(), make_blocks_1(), make_edges(), make_forwarders_with_degenerate_phis(), mark_bivs(), mark_lhs_in_seq_for_dce(), mark_reachable_handlers(), autofdo::function_instance::match(), maybe_dead_abnormal_edge_p(), maybe_instrument_assignment(), maybe_instrument_call(), maybe_lower_iteration_bound(), maybe_optimize_guarding_check(), maybe_remove_forwarder_block(), maybe_renumber_stmts_bb(), ipa_param_body_adjustments::modify_cfun_body(), move_block_to_fn(), tree_loop_interchange::move_code_to_inner_loop(), move_computations_worker(), move_debug_stmts_from_forwarder(), n_of_executions_at_most(), neuter_worker_single(), no_side_effect_bb(), note_simd_array_uses(), num_phis(), oacc_entry_exit_ok_1(), oacc_entry_exit_single_gang(), oacc_loop_discover_walk(), oacc_loop_xform_head_tail(), object_sizes_execute(), ok_for_auto_simd_clone(), omp_sese_split_blocks(), optimize_mask_stores(), optimize_omp_library_calls(), optimize_spaceship(), optimize_stack_restore(), optimize_va_list_gpr_fpr_size(), optimize_vector_load(), output_bb(), ipa_icf_gimple::func_checker::parse_labels(), phi_alternatives_equal(), phi_args_equal_on_edges(), fvrp_folder::pre_fold_bb(), rvrp_folder::pre_fold_bb(), predicate_all_scalar_phis(), predicate_statements(), predict_loops(), prepare_block_for_update_1(), process_bb(), substitute_and_fold_engine::propagate_into_phi_args(), propagate_threaded_block_debug_into(), propagate_through_phis(), reassoc_remove_stmt(), reassoc_stmt_dominates_stmt_p(), cgraph_edge::rebuild_edges(), cgraph_edge::rebuild_references(), record_edge_info(), record_equivalences_from_phis(), condition_info::record_phi_mapping(), tree_switch_conversion::switch_decision_tree::record_phi_operand_mapping(), jump_threader::record_temporary_equivalences_from_phis(), jump_threader::record_temporary_equivalences_from_stmts_at_dest(), redirect_all_calls(), redirection_block_p(), ref_conflicts_with_region(), refactor_eh_r(), gimple_ranger::register_transitive_inferred_ranges(), release_bb_predicate(), release_last_vdef(), remap_gimple_seq(), remap_gimple_stmt(), remove_conditions_and_labels(), remove_dead_phis(), remove_indirect_clobbers(), remove_phi_args(), remove_unused_locals(), rename_variables_in_bb(), renumber_gimple_stmt_uids_in_block(), reorder_operands(), replace_block_by(), replace_goto_queue_1(), reserve_phi_args_for_new_edge(), reset_flow_sensitive_info_in_bb(), rewrite_add_phi_arguments(), rewrite_debug_stmt_uses(), rewrite_phi_with_iv(), rewrite_trees(), rewrite_update_phi_arguments(), same_phi_alternatives_1(), same_phi_args_p(), same_succ_hash(), sanopt_optimize_walker(), scan_function(), scan_omp_simd_scan(), separate_decls_in_region(), sese_build_liveouts_bb(), sese_trivially_empty_bb_p(), set_location_for_edge(), set_phi_nodes(), set_uid_loop_bbs(), should_duplicate_loop_header_p(), ssa_propagation_engine::simulate_block(), single_non_singleton_phi_for_edges(), sink_clobbers(), slpeel_tree_duplicate_loop_to_edge_cfg(), slpeel_update_phi_nodes_for_guard1(), split_function(), split_loop(), split_loop_exit_edge(), sra_modify_assign(), sra_modify_function_body(), ssa_create_duplicates(), ssa_prop_init(), ssa_redirect_edge(), stack_protect_return_slot_p(), stmt_dominates_stmt_p(), loop_distribution::stmts_from_loop(), strip_predict_hints(), strub_from_body_p(), suitable_cond_bb(), tm_memopt_accumulate_memops(), tm_memopt_transform_blocks(), top_level_omp_for_in_stmt(), transform_statements(), transform_to_exit_first_loop(), transform_to_exit_first_loop_alt(), tree_bb_level_predictions(), tree_estimate_loop_size(), tree_estimate_probability_bb(), tree_lower_complex(), tree_num_loop_insns(), tree_profiling(), tree_transform_and_unroll_loop(), try_create_reduction_list(), try_vectorize_loop_1(), uncprop_into_successor_phis(), unlikely_executed_bb_p(), unroll_jam_possible_p(), unsplit_eh(), update_debug_stmts(), update_epilogue_loop_vinfo(), update_modified_stmts(), update_phi_components(), update_range_test(), update_ssa(), update_ssa_across_abnormal_edges(), value_dies_in_block_x(), vect_analyze_early_break_dependences(), vect_analyze_loop_2(), vect_analyze_scalar_cycles_1(), vect_analyze_slp(), vect_can_advance_ivs_p(), vect_compute_single_scalar_iteration_cost(), vect_determine_precisions(), vect_do_peeling(), vect_get_datarefs_in_loop(), vect_loop_versioning(), vect_mark_pattern_stmts(), vect_mark_stmts_to_be_vectorized(), vect_pattern_recog(), vect_pattern_recog_1(), vect_schedule_slp_node(), vect_slp_analyze_store_dependences(), vect_slp_bbs(), vect_slp_check_for_roots(), vect_slp_region(), vect_stmt_dominates_stmt_p(), vect_transform_loop(), vect_update_ivs_after_vectorizer(), vectorizable_load(), vectorizable_recurr(), verify_bb_vtables(), verify_gimple_in_cfg(), verify_gimple_in_seq_2(), verify_histograms(), verify_live_on_entry(), cgraph_node::verify_node(), verify_non_ssa_vars(), verify_ssa(), verify_ssaname_freelists(), verify_vssa(), visit_bb(), vop_phi(), walk_gimple_seq_mod(), warn_uninit_phi_uses(), warn_uninitialized_vars(), worker_single_simple(), and _bb_vec_info::~_bb_vec_info().

◆ gsi_next_nondebug()

◆ gsi_next_nonvirtual_phi()

void gsi_next_nonvirtual_phi ( gphi_iterator * i)
inline

◆ gsi_none()

◆ gsi_one_before_end_p()

◆ gsi_one_nondebug_before_end_p()

bool gsi_one_nondebug_before_end_p ( gimple_stmt_iterator i)
inline

◆ gsi_prev()

void gsi_prev ( gimple_stmt_iterator * i)
inline
Advance the iterator to the previous gimple statement.   

References gsi_prev(), i, gimple::next, and NULL.

Referenced by attempt_builtin_powi(), dom_opt_dom_walker::before_dom_children(), substitute_and_fold_dom_walker::before_dom_children(), build_ssa_conflict_graph(), clobber_only_eh_bb_p(), collect_fallthrough_labels(), convert_nl_goto_receiver(), copy_edges_for_bb(), create_cond_insert_point(), create_expression_by_pieces(), eliminate_dom_walker::eliminate_stmt(), eliminate_tail_call(), eliminate_unnecessary_stmts(), execute_oacc_device_lower(), execute_omp_device_lower(), tree_switch_conversion::switch_conversion::exp_index_transform(), expand_call_inline(), expand_complex_multiplication(), expand_omp_for_generic(), expand_omp_for_init_counts(), expand_omp_for_init_vars(), expand_omp_for_ordered_loops(), expand_omp_for_static_chunk(), expand_omp_for_static_nochunk(), expand_omp_ordered_sink(), expand_omp_simd(), expand_omp_target(), expand_omp_taskloop_for_outer(), find_duplicate(), find_loop_dist_alias(), find_return_bb(), find_tail_calls(), fold_marked_statements(), virtual_operand_live::get_live_out(), get_live_virtual_operand_on_edge(), gimple_expand_calls_inline(), gimple_flow_call_edges_add(), gimple_fold_builtin_clear_padding(), gimple_fold_builtin_memset(), gimple_fold_builtin_snprintf(), gimple_fold_builtin_sprintf(), gimple_fold_builtin_stpcpy(), gimple_fold_builtin_strcat(), gimple_fold_builtin_strchr(), gimple_lower_bitint(), gimple_seq_unreachable_p(), gimple_split_block_before_cond_jump(), gsi_prev(), gsi_prev_nondebug(), gsi_replace_with_seq_vops(), hardcfr_scan_block(), ifcombine_replace_cond(), ifcvt_local_dce(), rt_bb_visited::insert_exit_check_in_block(), last_nondebug_stmt(), make_blocks(), maybe_move_debug_stmts_to_successors(), maybe_remove_forwarder_block(), ipa_param_adjustments::modify_call(), negate_value(), oacc_entry_exit_single_gang(), omp_sese_split_blocks(), optimize_clobbers(), optimize_mask_stores(), propagate_threaded_block_debug_into(), reassoc_remove_stmt(), reassociate_bb(), remove_bb(), replace_loop_annotate(), replace_loop_annotate_in_block(), set_location_for_edge(), single_block_loop_p(), sink_clobbers(), sink_code_in_bb(), sm_seq_valid_bb(), split_function(), tm_region_init_1(), tree_switch_conversion::switch_decision_tree::try_switch_expansion(), update_range_test(), vect_analyze_early_break_dependences(), vect_determine_precisions(), vect_loop_dist_alias_call(), vect_loop_vectorized_call(), vect_schedule_slp_node(), vect_slp_analyze_load_dependences(), vect_stmt_dominates_stmt_p(), vect_transform_cycle_phi(), warn_implicit_fallthrough_r(), worker_single_copy(), and worker_single_simple().

◆ gsi_prev_nondebug()

◆ gsi_remove()

bool gsi_remove ( gimple_stmt_iterator * i,
bool remove_permanently )
extern
Remove the current stmt from the sequence.  The iterator is updated
to point to the next statement.

REMOVE_PERMANENTLY is true when the statement is going to be removed
from the IL and not reinserted elsewhere.  In that case we remove the
statement pointed to by iterator I from the EH tables, and free its
operand caches.  Otherwise we do not modify this information.  Returns
true whether EH edge cleanup is required.   

References cfun, delink_stmt_imm_use(), gimple_debug_nonbind_marker_p(), gimple_remove_stmt_histograms(), gimple_seq_set_last(), gimple_set_bb(), gimple_set_modified(), gsi_remove(), gsi_stmt(), i, insert_debug_temps_for_defs(), gimple::next, NULL, gimple::prev, and remove_stmt_from_eh_lp().

Referenced by strlen_pass::adjust_last_stmt(), adjust_simduid_builtins(), asan_expand_check_ifn(), asan_expand_poison_ifn(), rewrite_update_dom_walker::before_dom_children(), branch_fixup(), cancel_fma_deferring(), cleanup_control_expr_graph(), cleanup_control_flow_bb(), cleanup_dead_labels(), cleanup_empty_eh_move_lp(), clear_unused_block_pointer(), cond_if_else_store_replacement_1(), cond_removal_in_builtin_zero_pattern(), cond_store_replacement(), cond_store_replacement_limited(), convert_if_conditions_to_switch(), convert_mult_to_fma_1(), convert_scalar_cond_reduction(), copy_bb(), copy_debug_stmt(), create_call_for_reduction_1(), create_parallel_loop(), decompose_kernels_region_body(), delete_dead_or_redundant_assignment(), delete_dead_or_redundant_call(), do_simple_agr_dse(), eliminate_dom_walker::eliminate_cleanup(), eliminate_tail_call(), tree_switch_conversion::switch_decision_tree::emit(), execute_cleanup_cfg_post_optimizing(), execute_cse_conv_1(), execute_early_expand_coro_ifns(), execute_oacc_device_lower(), execute_omp_device_lower(), expand_assign_tm(), expand_call_inline(), expand_complex_div_wide(), expand_FALLTHROUGH_r(), expand_gimple_basic_block(), expand_ifn_va_arg_1(), expand_oacc_for(), expand_omp_atomic_cas(), expand_omp_atomic_fetch_op(), expand_omp_atomic_load(), expand_omp_atomic_mutex(), expand_omp_atomic_pipeline(), expand_omp_atomic_store(), expand_omp_for_generic(), expand_omp_for_static_chunk(), expand_omp_for_static_nochunk(), expand_omp_ordered_source_sink(), expand_omp_sections(), expand_omp_simd(), expand_omp_single(), expand_omp_synch(), expand_omp_target(), expand_omp_taskloop_for_inner(), expand_omp_taskloop_for_outer(), expand_omp_taskreg(), expand_transaction(), factor_out_conditional_load(), factor_out_conditional_operation(), factor_out_operators(), find_assumption_locals_r(), find_deps_in_bb_for_stmt(), finish_long_mul_low_half(), fixup_noreturn_call(), fold_strstr_to_strncmp(), forward_propagate_addr_expr(), generate_loops_for_partition(), gimple_expand_vec_set_extract_expr(), gimple_fold_builtin_clear_padding(), gimple_fold_builtin_memset(), gimple_lower_bitint(), gimple_merge_blocks(), gimple_redirect_edge_and_branch(), gimple_seq_discard(), gimple_try_redirect_by_replacing_jump(), gimplify_body(), gimplify_cleanup_point_expr(), gsi_move_after(), gsi_move_before(), gsi_remove(), gsi_replace_with_seq(), handle_abnormal_edges(), strlen_pass::handle_assign(), strlen_pass::handle_builtin_memset(), strlen_pass::handle_store(), hoist_memory_references(), honor_protect_cleanup_actions(), ifcvt_hoist_invariants(), ifcvt_local_dce(), input_function(), instrument_memory_accesses(), ipa_simd_modify_function_body(), lower_bitfield(), lower_builtin_setjmp(), lower_coro_builtin(), lower_eh_constructs_2(), lower_eh_dispatch(), lower_gimple_bind(), lower_gimple_return(), lower_long_mul_high_chain(), lower_omp_for_scan(), lower_omp_ordered_clauses(), lower_omp_scan(), lower_resx(), lower_stmt(), lower_transaction(), make_goto_expr_edges(), match_arith_overflow(), match_single_bit_test(), match_uaddc_usubc(), maybe_move_debug_stmts_to_successors(), maybe_remove_writeonly_store(), move_computations_worker(), optimize_clobbers(), optimize_mask_stores(), optimize_recip_sqrt(), dom_opt_dom_walker::optimize_stmt(), optimize_vector_load(), predicate_statements(), propagate_with_phi(), purge_all_uses(), reassoc_remove_stmt(), release_defs_bitset(), remove_bb(), remove_conditions_and_labels(), remove_ctrl_stmt_and_useless_edges(), remove_dead_stmt(), remove_indirect_clobbers(), remove_phi_node(), remove_prop_source_from_use(), pcom_worker::remove_stmt(), vec_info::remove_stmt(), remove_unused_locals(), replace_goto_queue_1(), replace_phi_edge_with_variable(), ipa_param_body_adjustments::reset_debug_stmts(), rewrite_bittest(), sanopt_optimize_walker(), separate_decls_in_region(), set_ifsese_condition(), simple_dce_from_worklist(), simplify_builtin_call(), simplify_builtin_memcpy_memset(), sink_clobbers(), sink_code_in_bb(), sink_common_stores_to_bb(), spaceship_replacement(), split_function(), sra_modify_assign(), sra_modify_constructor_assign(), sra_modify_deferred_init(), strip_predict_hints(), ubsan_expand_bounds_ifn(), ubsan_expand_null_ifn(), ubsan_expand_objsize_ifn(), ubsan_expand_ptr_ifn(), ubsan_expand_vptr_ifn(), loop_cand::undo_simple_reduction(), vect_init_vector(), vect_mark_pattern_stmts(), vect_set_loop_condition(), vect_set_loop_controls_directly(), vect_transform_loop(), vect_transform_slp_perm_load_1(), vect_update_ivs_after_vectorizer_for_early_breaks(), vectorizable_condition(), and vectorize_fold_left_reduction().

◆ gsi_replace()

bool gsi_replace ( gimple_stmt_iterator * gsi,
gimple * stmt,
bool update_eh_info )
extern
Replace the statement pointed-to by GSI to STMT.  If UPDATE_EH_INFO
is true, the exception handling information of the original
statement is moved to the new statement.  Returns whether EH edge
cleanup is required.

If the two statements assign to different SSA names, the caller must
ensure that all uses of the old SSA name have been removed before
calling this function.  This includes removing all debug uses.   

References cfun, completely_unused(), delink_stmt_imm_use(), gcc_assert, gimple_duplicate_stmt_histograms(), gimple_get_lhs(), gimple_has_lhs(), gimple_location(), gimple_remove_stmt_histograms(), gimple_set_bb(), gimple_set_location(), gimple_set_modified(), gsi_bb(), gsi_replace(), gsi_set_stmt(), gsi_stmt(), maybe_clean_or_replace_eh_stmt(), NULL, and update_modified_stmt().

Referenced by adjust_simduid_builtins(), asan_expand_check_ifn(), asan_expand_mark_ifn(), asan_expand_poison_ifn(), build_saturation_binary_arith_call_and_replace(), convert_expand_mult_copysign(), convert_local_reference_stmt(), convert_mult_to_fma_1(), convert_mult_to_highpart(), convert_nl_goto_reference(), convert_nonlocal_reference_stmt(), convert_single_case_switch(), copy_bb(), delete_dead_or_redundant_call(), diagnose_sb_0(), eliminate_local_variables_stmt(), execute_cse_sincos_1(), execute_early_expand_coro_ifns(), execute_oacc_device_lower(), execute_omp_device_lower(), execute_update_addresses_taken(), expand_call_inline(), expand_complex_libcall(), expand_omp_atomic_load(), expand_omp_atomic_store(), expand_vector_conversion(), finish_update_gimple_call(), fold_builtin_atomic_compare_exchange(), gimple_assign_set_rhs_with_ops(), gimple_expand_builtin_cabs(), gimple_expand_vec_set_extract_expr(), gimple_fold_builtin_clear_padding(), gimple_fold_builtin_memory_op(), gimple_fold_builtin_memset(), gimple_fold_builtin_stdarg(), gimple_fold_builtin_stpcpy(), gimple_fold_call(), gimple_fold_partial_load_store(), gimple_lower_bitint(), gimplify_and_update_call_from_tree(), gsi_replace(), gsi_replace_with_seq(), handle_builtin_alloca(), strlen_pass::handle_builtin_memset(), instrument_si_overflow(), ipa_simd_modify_function_body(), lower_assumption(), lower_coro_builtin(), lower_omp_1(), lower_omp_critical(), lower_omp_dispatch(), lower_omp_for(), lower_omp_interop(), lower_omp_master(), lower_omp_ordered(), lower_omp_ordered_clauses(), lower_omp_scan(), lower_omp_scope(), lower_omp_sections(), lower_omp_single(), lower_omp_target(), lower_omp_taskgroup(), lower_omp_taskreg(), lower_omp_teams(), match_arith_overflow(), match_single_bit_test(), match_uaddc_usubc(), match_unsigned_saturation_trunc(), ipa_param_adjustments::modify_call(), ipa_param_body_adjustments::modify_cfun_body(), narrow_long_mul_halves(), narrow_long_mul_low_half(), omp_oacc_kernels_decompose_callback_stmt(), omp_sese_split_blocks(), ompdevlow_adjust_simt_enter(), optimize_vector_constructor(), predicate_statements(), replace_call_with_call_and_fold(), replace_call_with_value(), replace_func_exit(), replace_loop_annotate(), replace_loop_annotate_in_block(), replace_mult_candidate(), replace_one_candidate(), vec_info::replace_stmt(), rewrite_reciprocal(), rewrite_stmt(), scan_omp_1_stmt(), scan_omp_parallel(), scan_omp_simd(), scan_omp_simd_scan(), scan_omp_task(), simple_dce_from_worklist(), simplify_builtin_memcpy_memset(), simplify_using_ranges::simplify_internal_call_using_ranges(), simplify_rotate(), strip_predict_hints(), tm_memopt_transform_stmt(), ubsan_expand_null_ifn(), ubsan_expand_ptr_ifn(), ubsan_instrument_unreachable(), use_internal_fn(), vect_finish_replace_stmt(), and vect_transform_loop().

◆ gsi_replace_with_seq()

void gsi_replace_with_seq ( gimple_stmt_iterator * gsi,
gimple_seq seq,
bool update_eh_info )
extern
Replace the statement pointed-to by GSI with the sequence SEQ.
If UPDATE_EH_INFO is true, the exception handling information of
the original statement is moved to the last statement of the new
sequence.  If the old statement is an assignment, then so must
be the last statement of the new sequence, and they must have the
same LHS.   

References gimple_seq_empty_p(), gsi_insert_seq_before(), gsi_last(), gsi_remove(), gsi_replace(), gsi_replace_with_seq(), GSI_SAME_STMT, gsi_split_seq_before(), and gsi_stmt().

Referenced by asan_expand_mark_ifn(), create_mul_high_seq(), create_mul_low_seq(), default_goacc_reduction(), gsi_replace_with_seq(), gsi_replace_with_seq_vops(), lower_long_mul_high_chain(), lower_omp_1(), oacc_xform_loop(), oacc_xform_tile(), and simplify_count_zeroes().

◆ gsi_safe_insert_before()

◆ gsi_safe_insert_seq_before()

◆ gsi_seq()

gimple_seq gsi_seq ( gimple_stmt_iterator i)
inline
Return the sequence associated with this iterator.   

References gsi_seq(), and i.

Referenced by gsi_seq(), initialize_constant_pool_replacements(), initialize_parameter_reductions(), and walk_gimple_omp_for().

◆ gsi_set_stmt()

void gsi_set_stmt ( gimple_stmt_iterator * gsi,
gimple * stmt )
extern
Set the statement to which GSI points to STMT.  This only updates
the iterator and the gimple sequence, it doesn't do the bookkeeping
of gsi_replace.   

References gimple_seq_set_first(), gimple_seq_set_last(), gsi_set_stmt(), gsi_stmt(), gimple::next, gimple::prev, gimple_stmt_iterator::ptr, and gimple_stmt_iterator::seq.

Referenced by gimplify_cleanup_point_expr(), gsi_replace(), gsi_set_stmt(), and reserve_phi_args_for_new_edge().

◆ gsi_split_seq_after()

gimple_seq gsi_split_seq_after ( gimple_stmt_iterator i)
extern
Move all statements in the sequence after I to a new sequence.
Return this new sequence.   

References gcc_assert, gimple_seq_last(), gimple_seq_set_first(), gimple_seq_set_last(), gsi_split_seq_after(), i, gimple::next, and NULL.

Referenced by gimplify_body(), gimplify_cleanup_point_expr(), gsi_split_seq_after(), and ssa_create_duplicates().

◆ gsi_split_seq_before()

void gsi_split_seq_before ( gimple_stmt_iterator * i,
gimple_seq * pnew_seq )
extern
Move all statements in the sequence starting at I to a new sequence.
Set *PNEW_SEQ to this sequence.  I is set to the head of the new list.   

References gcc_assert, gimple_seq_last(), gimple_seq_set_first(), gimple_seq_set_last(), gsi_split_seq_before(), i, gimple::next, NULL, and gimple::prev.

Referenced by gimple_split_block(), gsi_replace_with_seq(), gsi_split_seq_before(), and make_blocks_1().

◆ gsi_start()

gimple_stmt_iterator gsi_start ( gimple_seq & seq)
inline
Return a new iterator pointing to GIMPLE_SEQ's first statement.   

References gimple_bb(), gimple_seq_first(), gsi_start(), i, and NULL.

Referenced by add_async_clauses_and_wait(), add_bb_predicate_gimplified_stmts(), add_call_edges_for_seq(), annotate_all_with_location(), annotate_all_with_location_after(), bb_phis_references_abnormal_uses(), collect_finally_tree_1(), control_flow_regions::compute_regions(), copy_bb(), create_expression_by_pieces(), create_new_iv(), decide_copy_try_finally(), decompose_kernels_region_body(), do_warn_unused_result(), dump_gimple_seq(), empty_body_p(), enter_omp_iterator_loop_context_1(), estimate_num_insns_seq(), expand_call_tm(), expand_omp_for_generic(), final_value_replacement_loop(), flatten_binds(), gimple_seq_copy(), gimple_seq_discard(), gimple_seq_set_location(), gimple_split_block(), gimple_try_catch_may_fallthru(), gimplify_bind_expr(), gimplify_cleanup_point_expr(), gimplify_target_expr(), gsi_after_labels(), gsi_for_stmt(), gsi_replace_with_seq_vops(), gsi_start(), gsi_start_edge(), gsi_start_nondebug(), honor_protect_cleanup_actions(), initialize_constant_pool_replacements(), initialize_parameter_reductions(), vec_info::insert_on_entry(), lower_assumption(), lower_catch(), lower_eh_constructs_1(), lower_function_body(), lower_omp(), lower_omp_scan(), lower_omp_scope(), lower_omp_sections(), lower_omp_single(), lower_rec_input_clauses(), lower_sequence(), lower_try_catch(), lower_try_finally_dup_block(), lower_try_finally_onedest(), make_bit_field_load(), make_blocks(), make_blocks_1(), mark_lhs_in_seq_for_dce(), optimize_double_finally(), refactor_eh_r(), release_bb_predicate(), remap_gimple_seq(), remap_gimple_stmt(), reorder_operands(), replace_goto_queue_1(), replace_goto_queue_stmt_list(), same_handler_p(), set_phi_nodes(), single_non_singleton_phi_for_edges(), sink_clobbers(), split_loop(), top_level_omp_for_in_stmt(), uncprop_into_successor_phis(), update_modified_stmts(), vect_analyze_early_break_dependences(), vect_init_vector(), vect_loop_versioning(), vect_mark_pattern_stmts(), vect_pattern_recog_1(), verify_bb_vtables(), verify_gimple_in_seq_2(), and walk_gimple_seq_mod().

◆ gsi_start_bb()

gimple_stmt_iterator gsi_start_bb ( basic_block bb)
inline
Return a new iterator pointing to the first statement in basic block BB.   

References bb_seq_addr(), gimple_seq_first(), gsi_start_bb(), and i.

Referenced by _bb_vec_info::_bb_vec_info(), _loop_vec_info::_loop_vec_info(), adjust_simduid_builtins(), autofdo::afdo_set_bb_count(), afdo_vpt_for_early_inline(), analyze_bb(), analyze_function(), analyze_function_body(), analyze_memory_references(), asan_expand_check_ifn(), assign_discriminators(), assign_discriminators_to_bb(), bb_no_side_effects_p(), bb_prevents_fusion_p(), check_array_bounds_dom_walker::before_dom_children(), dom_opt_dom_walker::before_dom_children(), eliminate_dom_walker::before_dom_children(), find_candidates_dom_walker::before_dom_children(), ipcp_modif_dom_walker::before_dom_children(), mark_def_dom_walker::before_dom_children(), nontrapping_dom_walker::before_dom_children(), rewrite_dom_walker::before_dom_children(), rewrite_update_dom_walker::before_dom_children(), strlen_pass::before_dom_children(), substitute_and_fold_dom_walker::before_dom_children(), bitfields_to_lower_p(), branch_prob(), break_up_subtract_bb(), loop_cand::can_interchange_p(), can_strub_internally_p(), ccp_initialize(), check_all_va_list_escapes(), cleanup_dead_labels(), cleanup_empty_eh_unsplit(), clear_unused_block_pointer(), collect_dfa_stats(), combine_blocks(), compute_avail(), compute_dependence_clique(), compute_invariantness(), compute_points_to_sets(), copy_bb(), count_stmts_and_phis_in_block(), create_call_for_reduction_1(), create_coalesce_list_for_region(), create_cond_insert_point(), debug_seed_ranger(), delete_unreachable_blocks_update_callgraph(), destroy_loop(), determine_unlikely_bbs(), discover_nonconstant_array_refs(), dump_enumerated_decls(), dump_gimple_bb_header(), dump_oacc_loop_part(), eliminate_local_variables(), eliminate_dom_walker::eliminate_stmt(), tree_switch_conversion::jump_table_cluster::emit(), empty_bb_without_guard_p(), estimate_bb_frequencies(), estimate_loop_insns(), estimate_num_insns_fn(), loop_distribution::execute(), pass_walloca::execute(), crc_symbolic_execution::execute_bb_gimple_statements(), execute_early_expand_coro_ifns(), execute_fixup_cfg(), execute_oacc_device_lower(), execute_omp_device_lower(), execute_omp_oacc_neuter_broadcast(), execute_sm_if_changed(), execute_split_functions(), execute_update_addresses_taken(), expand_block_edges(), expand_block_tm(), expand_call_inline(), expand_complex_div_wide(), expand_complex_libcall(), expand_gimple_basic_block(), expand_ifn_va_arg(), expand_ifn_va_arg_1(), expand_oacc_for(), expand_omp_atomic_pipeline(), expand_omp_for_generic(), expand_omp_for_static_chunk(), expand_omp_for_static_nochunk(), expand_omp_sections(), expand_omp_simd(), expand_omp_target(), expand_omp_taskreg(), expand_parallel_call(), expand_thunk(), expand_vector_operations(), extract_omp_for_update_vars(), fill_always_executed_in(), find_data_references_in_bb(), find_deps_in_bb_for_stmt(), find_explicit_erroneous_behavior(), find_foldable_builtin_expect(), find_gang_private_vars(), find_givs_in_bb(), find_interesting_uses(), find_local_vars_to_propagate(), find_loop_location(), find_necessary_statements(), find_obviously_necessary_stmts(), find_outermost_region_in_block(), find_partitioned_var_uses(), find_replaceable_in_bb(), find_retval(), find_seed_stmts_for_distribution(), find_ssa_names_to_propagate(), find_tail_calls(), find_uses_to_rename_bb(), first_stmt(), ipa_icf::sem_item_optimizer::fixup_points_to_sets(), fold_marked_statements(), force_edge_cold(), substitute_and_fold_dom_walker::foreach_new_stmt_in_bb(), free_rdg(), gather_memory_references(), tree_switch_conversion::switch_conversion::gen_inbound_check(), generate_loops_for_partition(), get_all_stmt_may_generate_copy(), get_loop_body_in_if_conv_order(), gimple_block_label(), gimple_can_duplicate_bb_p(), gimple_can_merge_blocks_p(), gimple_dump_bb_as_sarif_properties(), gimple_dump_bb_buff(), gimple_dump_bb_for_graph(), gimple_duplicate_bb(), gimple_find_edge_insert_loc(), gimple_find_values_to_profile(), gimple_gen_ic_func_profiler(), gimple_gen_time_profiler(), gimple_merge_blocks(), gimple_value_profile_transformations(), gimple_verify_flow_info(), gimplify_size_expressions(), gsi_after_labels(), gsi_for_stmt(), gsi_start_bb(), gsi_start_nondebug_bb(), handle_abnormal_edges(), if_convertible_loop_p_1(), ifcombine_replace_cond(), ifcvt_hoist_invariants(), ifcvt_local_dce(), imm_dom_path_with_freeing_call(), infer_loop_bounds_from_undefined(), ipa_icf::sem_function::init(), init_copy_prop(), init_copyid_allocator(), init_dont_simulate_again(), init_loop_unswitch_info(), initialize_flags_in_bb(), input_bb(), input_function(), instrument_memory_accesses(), pointer_analysis::intra_build_constraints(), ipa_analyze_params_uses_in_bb(), pointer_analysis::ipa_build_constraints(), ipa_profile_generate_summary(), ipa_pta_execute(), ipa_simd_modify_function_body(), ipa_tm_decrement_clone_counts(), ipa_tm_diagnose_transaction(), ipa_tm_scan_calls_block(), ipa_tm_scan_irr_block(), ipa_tm_transform_calls_1(), isolate_path(), label_rtx_for_bb(), label_to_block(), loop_body_includes_call(), loop_edge_to_cancel(), loop_nest_has_data_refs(), loop_only_exit_p(), lower_emutls_function_body(), lower_resx(), lto_prepare_function_for_streaming(), make_edges(), mark_reachable_handlers(), autofdo::function_instance::match(), maybe_dead_abnormal_edge_p(), maybe_diag_stxncpy_trunc(), maybe_lower_iteration_bound(), maybe_remove_forwarder_block(), maybe_renumber_stmts_bb(), ipa_param_body_adjustments::modify_cfun_body(), move_block_to_fn(), move_computations_worker(), neuter_worker_single(), no_side_effect_bb(), note_simd_array_uses(), oacc_entry_exit_ok_1(), oacc_entry_exit_single_gang(), oacc_loop_discover_walk(), oacc_loop_xform_head_tail(), object_sizes_execute(), ok_for_auto_simd_clone(), omp_sese_split_blocks(), optimize_mask_stores(), optimize_omp_library_calls(), optimize_va_list_gpr_fpr_size(), output_bb(), ipa_icf_gimple::func_checker::parse_labels(), predicate_statements(), predict_loops(), prepare_block_for_update_1(), process_bb(), reassoc_remove_stmt(), cgraph_edge::rebuild_edges(), cgraph_edge::rebuild_references(), jump_threader::record_temporary_equivalences_from_stmts_at_dest(), redirect_all_calls(), redirection_block_p(), ref_conflicts_with_region(), gimple_ranger::register_transitive_inferred_ranges(), remove_conditions_and_labels(), remove_indirect_clobbers(), remove_unused_locals(), rename_variables_in_bb(), renumber_gimple_stmt_uids_in_block(), replace_block_by(), reset_flow_sensitive_info_in_bb(), sanopt_optimize_walker(), scan_function(), separate_decls_in_region(), sese_build_liveouts_bb(), sese_trivially_empty_bb_p(), set_location_for_edge(), set_uid_loop_bbs(), should_duplicate_loop_header_p(), shrink_wrap_one_built_in_call_with_conds(), ssa_propagation_engine::simulate_block(), split_bb_make_tm_edge(), split_function(), sra_modify_function_body(), ssa_create_duplicates(), ssa_prop_init(), stack_protect_return_slot_p(), stmt_dominates_stmt_p(), loop_distribution::stmts_from_loop(), strip_predict_hints(), strub_from_body_p(), tm_log_emit_restores(), tm_memopt_accumulate_memops(), tm_memopt_transform_blocks(), transform_statements(), tree_bb_level_predictions(), tree_estimate_loop_size(), tree_estimate_probability_bb(), tree_lower_complex(), tree_num_loop_insns(), tree_profiling(), try_vectorize_loop_1(), ubsan_expand_bounds_ifn(), ubsan_expand_null_ifn(), ubsan_expand_objsize_ifn(), ubsan_expand_ptr_ifn(), ubsan_expand_vptr_ifn(), unlikely_executed_bb_p(), unloop_loops(), unsplit_eh(), update_debug_stmts(), update_epilogue_loop_vinfo(), update_range_test(), update_ssa(), value_dies_in_block_x(), vect_compute_single_scalar_iteration_cost(), vect_determine_precisions(), vect_do_peeling(), vect_gen_vector_loop_niters_mult_vf(), vect_get_datarefs_in_loop(), vect_pattern_recog(), vect_slp_check_for_roots(), vect_slp_region(), vect_transform_loop(), verify_gimple_in_cfg(), verify_histograms(), cgraph_node::verify_node(), verify_non_ssa_vars(), verify_ssa(), verify_ssaname_freelists(), verify_vssa(), visit_bb(), warn_uninitialized_vars(), worker_single_copy(), worker_single_simple(), and _bb_vec_info::~_bb_vec_info().

◆ gsi_start_edge()

gimple_stmt_iterator gsi_start_edge ( edge e)
Return a new iterator pointing to the first statement in sequence of
statements on edge E.  Such statements need to be subsequently moved into a
basic block by calling gsi_commit_edge_inserts.   

References gsi_start(), gsi_start_edge(), and PENDING_STMT.

Referenced by gsi_start_edge(), sra_modify_assign(), sra_modify_call_arg(), and sra_modify_expr().

◆ gsi_start_nondebug()

gimple_stmt_iterator gsi_start_nondebug ( gimple_seq seq)
inline
Return a new iterator pointing to the first non-debug statement in
SEQ.   

References gsi_end_p(), gsi_next_nondebug(), gsi_start(), gsi_start_nondebug(), gsi_stmt(), and is_gimple_debug().

Referenced by gimple_seq_nondebug_singleton_p(), and gsi_start_nondebug().

◆ gsi_start_nondebug_after_labels_bb()

◆ gsi_start_nondebug_bb()

◆ gsi_start_nonvirtual_phis()

◆ gsi_start_phis()

gphi_iterator gsi_start_phis ( basic_block bb)
extern
Returns iterator at the start of the list of phi nodes of BB.   

References gimple_bb(), gimple_seq_first(), gsi_start_phis(), i, NULL, and phi_nodes_ptr().

Referenced by _bb_vec_info::_bb_vec_info(), _loop_vec_info::_loop_vec_info(), add_phi_args_after_copy_edge(), add_scope_conflicts_1(), add_successor_phi_arg(), autofdo::afdo_unscaled_edge_count(), loop_cand::analyze_carried_vars(), analyze_function_body(), loop_cand::analyze_lcssa_phis(), assign_calc_vals_to_header_phis(), assign_discriminators(), assign_discriminators_to_bb(), assign_known_vals_to_header_phis(), assign_vals_to_header_phis(), dom_opt_dom_walker::before_dom_children(), eliminate_dom_walker::before_dom_children(), find_candidates_dom_walker::before_dom_children(), rewrite_dom_walker::before_dom_children(), rewrite_update_dom_walker::before_dom_children(), strlen_pass::before_dom_children(), substitute_and_fold_dom_walker::before_dom_children(), tree_switch_conversion::switch_conversion::build_arrays(), tree_switch_conversion::switch_conversion::build_constructors(), build_ssa_conflict_graph(), calculate_live_on_exit(), loop_cand::can_interchange_p(), canonicalize_loop_ivs(), ccp_initialize(), check_all_va_list_escapes(), check_exit_phi(), tree_switch_conversion::switch_conversion::check_final_bb(), check_loop_closed_ssa_bb(), clean_up_loop_closed_phi(), cleanup_empty_eh_merge_phis(), coalesce_partitions(), collect_dfa_stats(), combine_blocks(), compute_avail(), compute_invariantness(), compute_live_vars_1(), compute_optimized_partition_bases(), path_range_query::compute_phi_relations(), path_range_query::compute_ranges_in_phis(), connect_loop_phis(), consider_split(), copy_loop_before(), copy_phi_arg_into_existing_phi(), copy_phi_args(), copy_phis_for_bb(), count_stmts_and_phis_in_block(), cprop_into_successor_phis(), create_coalesce_list_for_region(), create_loads_for_reductions(), create_parallel_loop(), destroy_loop(), determine_reduction_stmt_1(), determine_set_costs(), determine_value_range(), do_rpo_vn_1(), dump_phi_nodes(), easy_exit_values(), edge_before_returns_twice_call(), eliminate_build(), eliminate_tail_call(), eliminate_temp_copies(), eliminate_unnecessary_stmts(), eliminate_useless_phis(), empty_bb_without_guard_p(), estimate_threading_killed_stmts(), loop_distribution::execute(), crc_symbolic_execution::execute_bb_phi_statements(), execute_omp_device_lower(), execute_sm_if_changed(), execute_update_addresses_taken(), tree_switch_conversion::switch_conversion::exp_index_transform(), expand_omp_for_generic(), expand_omp_for_static_chunk(), expand_omp_for_static_nochunk(), factor_out_all(), final_value_replacement_loop(), find_bivs(), find_implicit_erroneous_behavior(), find_interesting_uses(), find_interesting_uses_outside(), pcom_worker::find_looparound_phi(), find_necessary_statements(), find_obviously_necessary_stmts(), find_phi_with_arg_on_edge(), find_seed_stmts_for_distribution(), find_ssa_names_to_propagate(), find_subloop_latch_edge_by_ivs(), find_uses_to_rename_bb(), tree_switch_conversion::switch_conversion::fix_phi_nodes(), tree_switch_conversion::switch_decision_tree::fix_phi_operands_for_edges(), flush_pending_stmts(), free_rdg(), fuse_loops(), tree_switch_conversion::switch_conversion::gather_default_values(), gather_scalar_reductions(), tree_switch_conversion::switch_conversion::gen_inbound_check(), generate_loops_for_partition(), get_all_stmt_may_generate_copy(), crc_optimization::get_output_phi(), get_virtual_phi(), get_vop_from_header(), gimple_can_merge_blocks_p(), gimple_dump_bb_as_sarif_properties(), gimple_dump_bb_for_graph(), gimple_duplicate_bb(), gimple_ic(), gimple_lower_bitint(), gimple_lv_adjust_loop_header_phi(), gimple_make_forwarder_block(), gimple_merge_blocks(), gsi_for_phi(), gsi_for_stmt(), gsi_start_nonvirtual_phis(), gsi_start_phis(), has_phis_p(), hoist_adjacent_loads(), hoist_guard(), if_convertible_loop_p_1(), ifcombine_replace_cond(), ifcvt_local_dce(), init_copy_prop(), init_copyid_allocator(), init_dont_simulate_again(), initialize_flags_in_bb(), input_function(), insert_backedge_copies(), pointer_analysis::intra_build_constraints(), ipa_analyze_params_uses_in_bb(), pointer_analysis::ipa_build_constraints(), ipa_simd_modify_function_body(), loop_closed_phi_def(), loop_has_phi_with_address_arg(), loop_has_vector_phi_nodes(), lower_emutls_function_body(), lto_prepare_function_for_streaming(), mark_bivs(), autofdo::function_instance::match(), maybe_optimize_guarding_check(), maybe_remove_forwarder_block(), ipa_param_body_adjustments::modify_cfun_body(), move_block_to_fn(), move_computations_worker(), num_phis(), optimize_spaceship(), optimize_va_list_gpr_fpr_size(), output_bb(), phi_alternatives_equal(), phi_args_equal_on_edges(), fvrp_folder::pre_fold_bb(), rvrp_folder::pre_fold_bb(), predicate_all_scalar_phis(), prepare_block_for_update_1(), process_bb(), substitute_and_fold_engine::propagate_into_phi_args(), propagate_through_phis(), cgraph_edge::rebuild_edges(), cgraph_edge::rebuild_references(), record_edge_info(), record_equivalences_from_phis(), condition_info::record_phi_mapping(), tree_switch_conversion::switch_decision_tree::record_phi_operand_mapping(), jump_threader::record_temporary_equivalences_from_phis(), release_last_vdef(), remove_dead_phis(), remove_phi_args(), remove_phi_nodes(), remove_unused_locals(), rename_variables_in_bb(), renumber_gimple_stmt_uids_in_block(), reserve_phi_args_for_new_edge(), reset_flow_sensitive_info_in_bb(), rewrite_add_phi_arguments(), rewrite_all_phi_nodes_with_iv(), rewrite_trees(), rewrite_update_phi_arguments(), same_phi_alternatives_1(), same_phi_args_p(), same_succ_hash(), scan_function(), separate_decls_in_region(), sese_build_liveouts_bb(), set_uid_loop_bbs(), should_duplicate_loop_header_p(), shrink_wrap_one_built_in_call_with_conds(), ssa_propagation_engine::simulate_block(), sink_clobbers(), slpeel_tree_duplicate_loop_to_edge_cfg(), slpeel_update_phi_nodes_for_guard1(), split_function(), split_loop_exit_edge(), ssa_prop_init(), ssa_redirect_edge(), loop_distribution::stmts_from_loop(), suitable_cond_bb(), transform_to_exit_first_loop(), transform_to_exit_first_loop_alt(), tree_transform_and_unroll_loop(), try_create_reduction_list(), unroll_jam_possible_p(), unsplit_eh(), update_epilogue_loop_vinfo(), update_phi_components(), update_ssa_across_abnormal_edges(), vect_analyze_loop_2(), vect_analyze_scalar_cycles_1(), vect_analyze_slp(), vect_can_advance_ivs_p(), vect_determine_precisions(), vect_do_peeling(), vect_loop_versioning(), vect_mark_stmts_to_be_vectorized(), vect_update_ivs_after_vectorizer(), verify_gimple_in_cfg(), verify_live_on_entry(), cgraph_node::verify_node(), verify_non_ssa_vars(), verify_ssa(), verify_ssaname_freelists(), verify_vssa(), visit_bb(), vop_phi(), warn_uninit_phi_uses(), and _bb_vec_info::~_bb_vec_info().

◆ gsi_stmt()

gimple * gsi_stmt ( gimple_stmt_iterator i)
inline
Return the current stmt.   

References gsi_stmt(), and i.

Referenced by _bb_vec_info::_bb_vec_info(), _loop_vec_info::_loop_vec_info(), back_threader_profitability::account_bb(), add_async_clauses_and_wait(), add_bb_predicate_gimplified_stmts(), add_call_edges_for_seq(), add_scope_conflicts_1(), adjust_assumption_stmt_r(), adjust_iv_update_pos(), adjust_nested_loop_clauses(), adjust_region_code_walk_stmt_fn(), adjust_simduid_builtins(), autofdo::afdo_set_bb_count(), afdo_vpt_for_early_inline(), analyze_bb(), analyze_function(), analyze_function_body(), analyze_memory_references(), annotate_all_with_location(), annotate_all_with_location_after(), asan_expand_check_ifn(), asan_expand_mark_ifn(), asan_expand_poison_ifn(), assign_discriminators(), assign_discriminators_to_bb(), associate_equivalences_with_edges(), assume_query::assume_query(), attempt_builtin_powi(), bb_no_side_effects_p(), bb_prevents_fusion_p(), check_array_bounds_dom_walker::before_dom_children(), dom_opt_dom_walker::before_dom_children(), find_candidates_dom_walker::before_dom_children(), ipcp_modif_dom_walker::before_dom_children(), mark_def_dom_walker::before_dom_children(), nontrapping_dom_walker::before_dom_children(), rewrite_dom_walker::before_dom_children(), rewrite_update_dom_walker::before_dom_children(), substitute_and_fold_dom_walker::before_dom_children(), bitfields_to_lower_p(), branch_prob(), break_up_subtract_bb(), build_and_add_sum(), build_omp_regions_1(), build_ssa_conflict_graph(), builtin_setjmp_setup_bb(), builtin_unreachable_bb_p(), bump_vector_ptr(), can_combine_bbs_with_short_circuit(), loop_cand::can_interchange_p(), can_strub_internally_p(), ccp_initialize(), rt_bb_visited::check(), check_all_va_list_escapes(), strlen_pass::check_and_optimize_call(), strlen_pass::check_and_optimize_stmt(), check_combined_parallel(), check_loop_closed_ssa_bb(), check_stmt(), cleanup_control_expr_graph(), cleanup_control_flow_bb(), cleanup_control_flow_pre(), cleanup_dead_labels(), cleanup_empty_eh(), cleanup_empty_eh_move_lp(), cleanup_empty_eh_unsplit(), clear_unused_block_pointer(), clobber_only_eh_bb_p(), collect_dfa_stats(), collect_fallthrough_labels(), collect_finally_tree_1(), combine_blocks(), ipa_icf_gimple::func_checker::compare_bb(), compute_avail(), compute_dependence_clique(), compute_invariantness(), compute_live_vars_1(), compute_points_to_sets(), control_flow_regions::compute_regions(), cond_only_block_p(), cond_removal_in_builtin_zero_pattern(), contains_hot_cold_predict(), convert_gimple_call(), convert_local_reference_stmt(), convert_mult_to_fma_1(), convert_nl_goto_receiver(), convert_nl_goto_reference(), convert_nonlocal_reference_stmt(), convert_plusminus_to_widen(), convert_tramp_reference_stmt(), copy_bb(), copy_edges_for_bb(), count_stmts_and_phis_in_block(), crc_optimization::crc_cond(), create_call_for_reduction_1(), create_coalesce_list_for_region(), create_cond_insert_point(), create_expression_by_pieces(), create_loads_for_reductions(), create_new_iv(), create_parallel_loop(), debug_seed_ranger(), decide_copy_try_finally(), decompose_kernels_region_body(), delete_dead_or_redundant_assignment(), delete_dead_or_redundant_call(), delete_unreachable_blocks_update_callgraph(), destroy_loop(), determine_max_movement(), determine_reduction_stmt_1(), determine_unlikely_bbs(), diagnose_assume_labels(), diagnose_sb_1(), diagnose_sb_2(), diagnose_tm_1(), discover_nonconstant_array_refs(), do_cond(), do_hoist_insertion(), do_warn_unused_result(), dse_optimize_call(), dse_optimize_stmt(), dump_enumerated_decls(), dump_gimple_bb_header(), dump_gimple_seq(), dump_ic_profile(), dump_oacc_loop_part(), edge_before_returns_twice_call(), eliminate_dom_walker::eliminate_cleanup(), eliminate_local_variables(), eliminate_local_variables_stmt(), eliminate_redundant_computations(), eliminate_dom_walker::eliminate_stmt(), eliminate_tail_call(), eliminate_unnecessary_stmts(), empty_bb_or_one_feeding_into_p(), empty_bb_without_guard_p(), empty_body_p(), empty_eh_cleanup(), enter_omp_iterator_loop_context_1(), same_succ::equal(), estimate_bb_frequencies(), estimate_loop_insns(), estimate_num_insns_fn(), estimate_num_insns_seq(), estimate_threading_killed_stmts(), examine_assign_tm(), examine_call_tm(), loop_distribution::execute(), pass_walloca::execute(), crc_symbolic_execution::execute_bb_gimple_statements(), execute_cleanup_cfg_post_optimizing(), execute_cse_conv_1(), execute_early_expand_coro_ifns(), execute_fixup_cfg(), execute_oacc_device_lower(), execute_omp_device_lower(), execute_omp_oacc_neuter_broadcast(), execute_split_functions(), execute_update_addresses_taken(), crc_optimization::exists_shift_for_opp_xor_shift(), tree_switch_conversion::switch_conversion::exp_index_transform(), expand_assign_tm(), expand_block_edges(), expand_block_tm(), expand_call_inline(), expand_call_tm(), expand_complex_addition(), expand_complex_asm(), expand_complex_comparison(), expand_complex_conjugate(), expand_complex_div_straight(), expand_complex_div_wide(), expand_complex_division(), expand_complex_libcall(), expand_complex_move(), expand_complex_multiplication(), expand_complex_negation(), expand_complex_operations_1(), expand_complex_paren(), expand_FALLTHROUGH_r(), expand_gimple_basic_block(), expand_ifn_va_arg(), expand_ifn_va_arg_1(), expand_oacc_for(), expand_omp_atomic_cas(), expand_omp_atomic_fetch_op(), expand_omp_atomic_load(), expand_omp_atomic_mutex(), expand_omp_atomic_pipeline(), expand_omp_atomic_store(), expand_omp_for_generic(), expand_omp_for_init_counts(), expand_omp_for_init_vars(), expand_omp_for_ordered_loops(), expand_omp_for_static_chunk(), expand_omp_for_static_nochunk(), expand_omp_ordered_sink(), expand_omp_sections(), expand_omp_simd(), expand_omp_single(), expand_omp_synch(), expand_omp_target(), expand_omp_taskloop_for_inner(), expand_omp_taskloop_for_outer(), expand_omp_taskreg(), expand_transaction(), expand_vector_comparison(), expand_vector_condition(), expand_vector_conversion(), expand_vector_operations(), expand_vector_operations_1(), expand_vector_parallel(), expand_vector_piecewise(), expand_vector_scalar_condition(), factor_out_conditional_operation(), fill_always_executed_in(), final_value_replacement_loop(), find_always_executed_bbs(), find_assumption_locals_r(), find_conditions(), find_conditions(), find_data_references_in_bb(), find_deps_in_bb_for_stmt(), find_duplicate(), find_explicit_erroneous_behavior(), find_foldable_builtin_expect(), find_gang_private_vars(), find_givs_in_bb(), find_interesting_uses(), find_local_vars_to_propagate(), find_loop_dist_alias(), find_loop_location(), find_necessary_statements(), find_obviously_necessary_stmts(), find_outermost_region_in_block(), find_replaceable_in_bb(), find_return_bb(), find_retval(), find_seed_stmts_for_distribution(), find_ssa_names_to_propagate(), find_tail_calls(), find_uses_to_rename_bb(), finish_long_mul_low_half(), first_stmt(), fixup_noreturn_call(), ipa_icf::sem_item_optimizer::fixup_points_to_sets(), flatten_binds(), fold_builtin_atomic_compare_exchange(), fold_gimple_assign(), fold_marked_statements(), ccp_folder::fold_stmt(), gimple_ranger::fold_stmt(), rvrp_folder::fold_stmt(), fold_stmt_1(), fold_stmt_inplace(), force_edge_cold(), substitute_and_fold_dom_walker::foreach_new_stmt_in_bb(), forward_propagate_addr_expr(), forward_propagate_addr_expr_1(), forward_propagate_into_comparison(), free_rdg(), gather_memory_references(), gather_scalar_reductions(), gen_parallel_loop(), generate_loops_for_partition(), generate_subtree_copies(), get_abnormal_succ_dispatcher(), get_all_stmt_may_generate_copy(), virtual_operand_live::get_live_out(), get_live_virtual_operand_on_edge(), get_loop_body_in_if_conv_order(), gimple_account_profile_record(), gimple_assign_set_rhs_with_ops(), gimple_block_ends_with_call_p(), gimple_block_label(), gimple_can_duplicate_bb_p(), gimple_can_merge_blocks_p(), gimple_divmod_fixed_value_transform(), gimple_dump_bb_as_sarif_properties(), gimple_dump_bb_buff(), gimple_dump_bb_for_graph(), gimple_duplicate_bb(), gimple_empty_block_p(), gimple_expand_calls_inline(), gimple_expand_vec_cond_expr(), gimple_expand_vec_set_extract_expr(), gimple_find_edge_insert_loc(), gimple_find_sub_bbs(), gimple_find_values_to_profile(), gimple_flow_call_edges_add(), gimple_fold_builtin(), gimple_fold_builtin_acc_on_device(), gimple_fold_builtin_bcmp(), gimple_fold_builtin_bcopy(), gimple_fold_builtin_bzero(), gimple_fold_builtin_call_info(), gimple_fold_builtin_clear_padding(), gimple_fold_builtin_constant_p(), gimple_fold_builtin_fprintf(), gimple_fold_builtin_fputs(), gimple_fold_builtin_fwrite(), gimple_fold_builtin_memchr(), gimple_fold_builtin_memory_chk(), gimple_fold_builtin_memory_op(), gimple_fold_builtin_mempcpy(), gimple_fold_builtin_memset(), gimple_fold_builtin_printf(), gimple_fold_builtin_realloc(), gimple_fold_builtin_snprintf(), gimple_fold_builtin_snprintf_chk(), gimple_fold_builtin_sprintf(), gimple_fold_builtin_sprintf_chk(), gimple_fold_builtin_stpcpy(), gimple_fold_builtin_strcat(), gimple_fold_builtin_strcat_chk(), gimple_fold_builtin_strchr(), gimple_fold_builtin_strcpy(), gimple_fold_builtin_string_compare(), gimple_fold_builtin_strlen(), gimple_fold_builtin_strncat(), gimple_fold_builtin_strncat_chk(), gimple_fold_builtin_strncpy(), gimple_fold_builtin_strstr(), gimple_fold_builtin_stxcpy_chk(), gimple_fold_builtin_stxncpy_chk(), gimple_fold_call(), gimple_lower_bitint(), gimple_merge_blocks(), gimple_mod_pow2_value_transform(), gimple_mod_subtract_transform(), gimple_outgoing_range_stmt_p(), gimple_redirect_edge_and_branch(), gimple_seq_copy(), gimple_seq_discard(), gimple_seq_set_location(), gimple_seq_unreachable_p(), gimple_split_block(), gimple_split_block_before_cond_jump(), gimple_stringops_transform(), gimple_try_catch_may_fallthru(), gimple_try_redirect_by_replacing_jump(), gimple_value_profile_transformations(), gimple_verify_flow_info(), gimplify_and_return_first(), gimplify_and_update_call_from_tree(), gimplify_build1(), gimplify_build2(), gimplify_build3(), gimplify_cleanup_point_expr(), gsi_advance_bw_nondebug_nonlocal(), gsi_advance_fw_nondebug_nonlocal(), gsi_after_labels(), gsi_after_labels(), gsi_insert_finally_seq_after_call(), gsi_last_nondebug_bb(), gsi_move_after(), gsi_move_before(), gsi_move_to_bb_end(), gsi_next_nondebug(), gsi_prev_nondebug(), gsi_remove(), gsi_replace(), gsi_replace_with_seq(), gsi_replace_with_seq_vops(), gsi_safe_insert_before(), gsi_safe_insert_seq_before(), gsi_set_stmt(), gsi_start_nondebug(), gsi_start_nondebug_after_labels_bb(), gsi_start_nondebug_bb(), gsi_stmt(), handle_abnormal_edges(), strlen_pass::handle_alloc_call(), strlen_pass::handle_assign(), handle_builtin_alloca(), strlen_pass::handle_builtin_memcpy(), strlen_pass::handle_builtin_memset(), strlen_pass::handle_builtin_strcat(), strlen_pass::handle_builtin_strchr(), strlen_pass::handle_builtin_strcpy(), strlen_pass::handle_builtin_string_cmp(), strlen_pass::handle_builtin_strlen(), strlen_pass::handle_builtin_stxncpy_strncat(), strlen_pass::handle_integral_assign(), strlen_pass::handle_pointer_plus(), handle_printf_call(), strlen_pass::handle_store(), hardcfr_scan_block(), hoist_guard(), honor_protect_cleanup_actions(), if_convertible_loop_p_1(), ifc_temp_var(), ifcombine_replace_cond(), ifcombine_rewrite_to_defined_overflow(), ifcvt_hoist_invariants(), ifcvt_local_dce(), imm_dom_path_with_freeing_call(), independent_of_stmt_p(), infer_loop_bounds_from_undefined(), infinite_empty_loop_p(), ipa_icf::sem_function::init(), init_copy_prop(), init_copyid_allocator(), init_dont_simulate_again(), init_loop_unswitch_info(), init_subtree_with_zero(), init_tmp_var(), init_tmp_var_with_call(), initialize_flags_in_bb(), inline_forbidden_p_stmt(), input_function(), insert_backedge_copies(), insert_clobbers_for_var(), insert_debug_temp_for_var_def(), insert_debug_temps_for_defs(), rt_bb_visited::insert_exit_check_in_block(), insert_gimplified_predicates(), insert_init_debug_bind(), insert_initializers(), insert_iv_increment(), insert_reciprocals(), insert_stmt_after(), insert_trap(), instrument_bool_enum_load(), instrument_builtin(), instrument_builtin_call(), instrument_builtin_call(), instrument_expr(), instrument_func_exit(), instrument_gimple(), instrument_mem_ref(), instrument_mem_region_access(), instrument_memory_accesses(), instrument_nonnull_arg(), instrument_nonnull_return(), instrument_object_size(), instrument_pointer_overflow(), instrument_si_overflow(), pointer_analysis::intra_build_constraints(), ipa_analyze_params_uses_in_bb(), pointer_analysis::ipa_build_constraints(), ipa_profile_generate_summary(), ipa_pta_execute(), ipa_simd_modify_function_body(), ipa_tm_decrement_clone_counts(), ipa_tm_diagnose_transaction(), ipa_tm_scan_calls_block(), ipa_tm_scan_irr_block(), ipa_tm_transform_calls_1(), ipa_tm_transform_calls_redirect(), is_factor_profitable(), isolate_path(), label_rtx_for_bb(), last_and_only_stmt(), last_nondebug_stmt(), last_stmt_ptr_check(), load_assign_lhs_subreplacements(), long_mul_split_phi(), loop_body_includes_call(), loop_edge_to_cancel(), crc_optimization::loop_may_calculate_crc(), loop_nest_has_data_refs(), loop_only_exit_p(), lower_assumption(), lower_builtin_assume_aligned(), lower_builtin_posix_memalign(), lower_builtin_setjmp(), lower_catch(), lower_coro_builtin(), lower_eh_constructs_2(), lower_emutls_function_body(), lower_gimple_bind(), lower_gimple_return(), lower_long_mul_high_chain(), lower_omp_1(), lower_omp_critical(), lower_omp_directive(), lower_omp_dispatch(), lower_omp_for(), lower_omp_for_scan(), lower_omp_interop(), lower_omp_master(), lower_omp_ordered(), lower_omp_ordered_clauses(), lower_omp_scan(), lower_omp_scope(), lower_omp_sections(), lower_omp_single(), lower_omp_target(), lower_omp_taskgroup(), lower_omp_taskreg(), lower_omp_teams(), lower_sequence_no_tm(), lower_sequence_tm(), lower_stmt(), lower_transaction(), lower_try_catch(), lower_try_finally_dup_block(), lower_try_finally_onedest(), lower_vec_perm(), lto_prepare_function_for_streaming(), make_bit_field_load(), make_blocks(), make_blocks_1(), make_edges(), make_goto_expr_edges(), lazy_diagnostic_context_path::make_inner_path(), make_tm_uninst(), malloc_candidate_p(), mark_lhs_in_seq_for_dce(), mark_local_labels_stmt(), mark_reachable_handlers(), autofdo::function_instance::match(), match_arith_overflow(), maybe_add_asan_poison_write(), maybe_dead_abnormal_edge_p(), maybe_diag_stxncpy_trunc(), maybe_fold_stmt(), maybe_instrument_assignment(), maybe_instrument_call(), maybe_lower_iteration_bound(), maybe_move_debug_stmts_to_successors(), maybe_optimize_arith_overflow(), maybe_optimize_guarding_check(), maybe_remove_forwarder_block(), maybe_renumber_stmts_bb(), ipa_param_adjustments::modify_call(), ipa_param_body_adjustments::modify_cfun_body(), move_block_to_fn(), tree_loop_interchange::move_code_to_inner_loop(), move_computations_worker(), move_debug_stmts_from_forwarder(), move_stmt_r(), n_of_executions_at_most(), narrow_long_mul_low_half(), negate_value(), neuter_worker_single(), no_side_effect_bb(), note_simd_array_uses(), oacc_entry_exit_ok_1(), oacc_entry_exit_single_gang(), oacc_loop_discover_walk(), oacc_loop_xform_head_tail(), object_sizes_execute(), ok_for_auto_simd_clone(), omp_find_combined_for(), omp_find_scan(), omp_find_stores_stmt(), omp_oacc_kernels_decompose_callback_stmt(), omp_sese_find_par(), omp_sese_split_blocks(), ompdevlow_adjust_simt_enter(), one_feeding_comparison_into_p(), optimize_clobbers(), optimize_double_finally(), optimize_mask_stores(), optimize_omp_library_calls(), optimize_recip_sqrt(), optimize_stack_restore(), dom_opt_dom_walker::optimize_stmt(), optimize_tail_call(), optimize_va_list_gpr_fpr_size(), optimize_vector_constructor(), optimize_vector_load(), output_bb(), ipa_icf_gimple::func_checker::parse_labels(), potentially_threadable_block(), predicate_scalar_phi(), predicate_statements(), predict_loops(), prepare_block_for_update_1(), process_bb(), propagate_threaded_block_debug_into(), propagate_tree_value_into_stmt(), reassoc_remove_stmt(), reassoc_stmt_dominates_stmt_p(), reassociate_bb(), pcom_worker::reassociate_to_the_same_stmt(), cgraph_edge::rebuild_edges(), cgraph_edge::rebuild_references(), record_edge_info(), jump_threader::record_temporary_equivalences_from_stmts_at_dest(), redirect_all_calls(), redirection_block_p(), ref_conflicts_with_region(), refactor_eh_r(), gimple_ranger::register_transitive_inferred_ranges(), release_bb_predicate(), release_last_vdef(), remap_gimple_seq(), remap_gimple_stmt(), remove_bb(), remove_conditions_and_labels(), remove_ctrl_stmt_and_useless_edges(), remove_dead_stmt(), remove_exit_barrier(), remove_indirect_clobbers(), remove_name_from_operation(), remove_phi_node(), remove_unused_locals(), rename_variables_in_bb(), renumber_gimple_stmt_uids_in_block(), reorder_operands(), replace_block_by(), replace_call_with_call_and_fold(), replace_call_with_value(), replace_goto_queue_1(), replace_goto_queue_cond_clause(), replace_goto_queue_stmt_list(), replace_locals_op(), replace_locals_stmt(), replace_loop_annotate(), replace_loop_annotate_in_block(), replace_mult_candidate(), replace_one_candidate(), replace_ref_with(), replace_rhs_if_not_dup(), vec_info::replace_stmt(), replace_stmt_with_simplification(), replace_uses_by(), repropagate_negates(), reset_flow_sensitive_info_in_bb(), rewrite_bittest(), rewrite_debug_stmt_uses(), rewrite_reciprocal(), rewrite_stmt(), rewrite_to_defined_unconditional(), rewrite_use_nonlinear_expr(), same_handler_p(), same_succ_hash(), sanopt_optimize_walker(), save_tmp_var(), scan_function(), scan_omp_1_stmt(), scan_omp_parallel(), scan_omp_simd_scan(), scan_omp_task(), separate_decls_in_region(), sese_build_liveouts_bb(), sese_trivially_empty_bb_p(), set_location_for_edge(), set_phi_nodes(), set_uid_loop_bbs(), should_duplicate_loop_header_p(), should_warn_for_implicit_fallthrough(), simd_clone_adjust(), simplify_using_ranges::simplify(), simplify_using_ranges::simplify_bit_ops_using_ranges(), simplify_builtin_call(), simplify_count_zeroes(), simplify_permutation(), simplify_rotate(), simplify_using_ranges::simplify_truth_ops_using_ranges(), simplify_vector_constructor(), ssa_propagation_engine::simulate_block(), single_block_loop_p(), single_non_singleton_phi_for_edges(), sink_clobbers(), sink_code_in_bb(), slpeel_can_duplicate_loop_p(), slpeel_tree_duplicate_loop_to_edge_cfg(), sm_seq_valid_bb(), split_critical_edges(), split_function(), split_loop(), sra_modify_assign(), sra_modify_call_arg(), sra_modify_expr(), sra_modify_function_body(), ssa_create_duplicates(), ssa_prop_init(), stack_protect_return_slot_p(), stmt_dominates_stmt_p(), loop_distribution::stmts_from_loop(), strip_predict_hints(), strub_from_body_p(), jump_threader::thread_around_empty_blocks(), fwd_jt_path_registry::thread_block_1(), tm_memopt_accumulate_memops(), tm_memopt_transform_blocks(), tm_region_init_1(), top_level_omp_for_in_stmt(), transform_statements(), transform_stmt_to_multiply(), tree_bb_level_predictions(), tree_estimate_loop_size(), tree_estimate_probability_bb(), tree_num_loop_insns(), tree_optimize_tail_calls_1(), tree_profiling(), tree_transform_and_unroll_loop(), tree_switch_conversion::switch_decision_tree::try_switch_expansion(), try_vectorize_loop_1(), ubsan_expand_bounds_ifn(), ubsan_expand_null_ifn(), ubsan_expand_objsize_ifn(), ubsan_expand_ptr_ifn(), ubsan_expand_vptr_ifn(), ubsan_instrument_unreachable(), uncprop_into_successor_phis(), unlikely_executed_bb_p(), unsplit_eh(), update_complex_assignment(), update_debug_stmts(), update_epilogue_loop_vinfo(), update_gimple_call(), update_modified_stmts(), update_range_test(), update_ssa(), value_dies_in_block_x(), value_replacement(), vect_analyze_early_break_dependences(), vect_analyze_loop_2(), vect_compute_single_scalar_iteration_cost(), vect_create_data_ref_ptr(), vect_determine_precisions(), vect_do_peeling(), vect_expand_fold_left(), vect_finish_stmt_generation(), vect_get_datarefs_in_loop(), vect_init_vector(), vect_loop_dist_alias_call(), vect_loop_vectorized_call(), vect_loop_versioning(), vect_mark_pattern_stmts(), vect_mark_stmts_to_be_vectorized(), vect_pattern_recog(), vect_pattern_recog_1(), vect_schedule_slp_node(), vect_set_loop_condition_partial_vectors(), vect_setup_realignment(), vect_slp_analyze_load_dependences(), vect_slp_analyze_store_dependences(), vect_slp_bbs(), vect_slp_check_for_roots(), vect_slp_region(), vect_stmt_dominates_stmt_p(), vect_transform_cycle_phi(), vect_transform_loop(), vect_update_ivs_after_vectorizer(), vectorizable_condition(), vectorizable_load(), vectorizable_recurr(), vectorize_slp_instance_root_stmt(), verify_bb_vtables(), verify_gimple_in_cfg(), verify_gimple_in_seq_2(), verify_histograms(), cgraph_node::verify_node(), verify_non_ssa_vars(), verify_ssa(), verify_ssaname_freelists(), verify_vssa(), visit_bb(), visit_loops_in_gang_single_region(), walk_gimple_seq_mod(), walk_gimple_stmt(), want_merge_blocks_p(), warn_implicit_fallthrough_r(), warn_switch_unreachable_and_auto_init_r(), warn_uninitialized_vars(), worker_single_copy(), worker_single_simple(), and _bb_vec_info::~_bb_vec_info().

◆ update_modified_stmts()

void update_modified_stmts ( gimple_seq seq)
extern