GCC Middle and Back End API 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 } |
enum gsi_iterator_update |
|
inline |
Determine whether SEQ is a nondebug singleton.
References gsi_one_nondebug_before_end_p(), and gsi_start_nondebug().
Referenced by dump_gimple_try(), and try_transform_to_exit_first_loop_alt().
|
inline |
Return a block statement iterator that points to the first non-label statement in block BB.
References gsi_end_p(), gsi_next(), gsi_start_bb(), and gsi_stmt().
Referenced by 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(), create_final_loads_for_reduction(), create_loads_for_reductions(), create_new_iv(), create_parallel_loop(), destroy_loop(), do_pre_regular_insertion(), eliminate_dom_walker::eliminate_cleanup(), emit_mfence_after_loop(), 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_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_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(), ipa_simd_modify_function_body(), ipa_simd_modify_stmt_ops(), ipa_tm_insert_irr_call(), 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(), optimize_atomic_bit_test_and(), back_threader_profitability::possibly_profitable_path_p(), 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_schedule_slp_node(), vect_set_loop_condition_normal(), vect_slp_bbs(), vect_transform_loop(), 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().
|
inline |
Return a statement iterator that points to the first non-label statement in sequence SEQ.
References gsi_end_p(), gsi_next(), gsi_start(), and gsi_stmt().
|
inline |
Return the basic block associated with this iterator.
References i.
Referenced by rt_bb_visited::check(), create_cond_insert_point(), create_iv(), create_new_iv(), dump_oacc_loop_part(), eliminate_tail_call(), tree_switch_conversion::bit_test_cluster::emit(), tree_switch_conversion::jump_table_cluster::emit(), execute_early_expand_coro_ifns(), expand_complex_div_wide(), expand_complex_move(), expand_complex_multiplication(), expand_omp_for_generic(), expand_omp_for_init_counts(), expand_omp_for_init_vars(), expand_omp_ordered_sink(), expand_omp_simd(), expand_omp_target(), expand_omp_taskloop_for_inner(), fold_builtin_atomic_compare_exchange(), substitute_and_fold_dom_walker::foreach_new_stmt_in_bb(), gimple_expand_builtin_pow(), gimple_lower_bitint(), gsi_insert_finally_seq_after_call(), gsi_insert_seq_nodes_after(), gsi_insert_seq_nodes_before(), gsi_move_to_bb_end(), gsi_prev_dom_bb_nondebug(), gsi_replace(), gsi_safe_insert_before(), gsi_safe_insert_seq_before(), handle_builtin_alloca(), tree_switch_conversion::bit_test_cluster::hoist_edge_and_branch_if_true(), insert_check_and_trap(), insert_reciprocals(), instrument_expr(), maybe_register_def(), oacc_loop_xform_head_tail(), oacc_xform_loop(), optimize_atomic_bit_test_and(), optimize_stack_restore(), optimize_tail_call(), optimize_unreachable(), sink_code_in_bb(), sra_modify_assign(), sra_modify_call_arg(), sra_modify_expr(), ssa_create_duplicates(), ubsan_expand_null_ifn(), and ubsan_expand_ptr_ifn().
|
extern |
This routine will commit all pending edge insertions, creating any new basic blocks which are necessary.
References cfun, ENTRY_BLOCK_PTR_FOR_FN, FOR_EACH_BB_FN, FOR_EACH_EDGE, gsi_commit_one_edge_insert(), NULL, single_succ_edge(), and basic_block_def::succs.
Referenced by analyze_candidates_and_replace(), branch_prob(), create_empty_loop_on_edge(), execute_tm_mark(), gimple_flow_call_edges_add(), gimple_lower_bitint(), loop_invariant_motion_in_fun(), lower_emutls_function_body(), sra_modify_function_body(), and tree_lower_complex().
|
extern |
Commit insertions pending at edge E. If a new block is created, set NEW_BB to this block, otherwise set it to NULL.
References gimple_stmt_iterator::bb, gimple_find_edge_insert_loc(), gimple_seq_first(), gsi_insert_seq_after(), gsi_insert_seq_before(), GSI_NEW_STMT, NULL, PENDING_STMT, and update_call_edge_frequencies().
Referenced by copy_phis_for_bb(), gsi_commit_edge_inserts(), and hoist_memory_references().
|
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(), i, and NULL.
|
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(), i, and NULL.
|
inline |
Return true if I is at the end of its sequence.
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_iv_update_pos(), adjust_simduid_builtins(), autofdo::afdo_set_bb_count(), autofdo::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(), asan_poison_variable(), assign_calc_vals_to_header_phis(), assign_discriminator(), assign_discriminators(), 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_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_if_else_store_replacement(), cond_if_else_store_replacement_1(), cond_only_block_p(), cond_removal_in_builtin_zero_pattern(), cond_store_replacement(), connect_loop_phis(), consider_split(), 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(), count_stmts_in_block(), cprop_into_successor_phis(), create_coalesce_list_for_region(), create_cond_insert_point(), create_expression_by_pieces(), create_iv(), 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_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(), pointer_equiv_analyzer::enter(), same_succ::equal(), estimate_bb_frequencies(), 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(), 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_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_non_label_stmt(), 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_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(), group_case_labels_stmt(), gsi_advance_bw_nondebug_nonlocal(), gsi_advance_fw_nondebug_nonlocal(), gsi_after_labels(), gsi_after_labels(), 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(), autofdo::has_indirect_call(), 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_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_reciprocals(), insert_stmt_after(), instrument_memory_accesses(), ipa_analyze_params_uses_in_bb(), 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(), is_feasible_trace(), isolate_path(), label_rtx_for_bb(), last_and_only_stmt(), last_nondebug_stmt(), 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(), match_arith_overflow(), match_simplify_replacement(), maybe_dead_abnormal_edge_p(), maybe_lower_iteration_bound(), maybe_move_debug_stmts_to_successors(), maybe_optimize_guarding_check(), 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(), optimize_clobbers(), optimize_mask_stores(), optimize_omp_library_calls(), optimize_spaceship(), optimize_stack_restore(), optimize_unreachable(), optimize_va_list_gpr_fpr_size(), output_bb(), ipa_icf_gimple::func_checker::parse_labels(), phi_alternatives_equal(), phi_args_equal_on_edges(), poor_ifcvt_pred(), back_threader_profitability::possibly_profitable_path_p(), 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_forwarder_block(), remove_forwarder_block_with_phi(), 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_forwarder_block_p(), 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_loop_operations(), vect_analyze_scalar_cycles_1(), vect_analyze_slp(), vect_analyze_stmt(), vect_can_advance_ivs_p(), vect_compute_single_scalar_iteration_cost(), vect_detect_hybrid_slp(), vect_determine_precisions(), vect_determine_vectorization_factor(), vect_determine_vf_for_stmt(), 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(), vect_update_vf_for_slp(), 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().
|
extern |
Finds iterator for PHI.
References gimple_bb(), gsi_start_phis(), and i.
Referenced by ifcombine_replace_cond().
|
extern |
Finds iterator for STMT.
References gimple_bb(), 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(), convert_atomic_bit_not(), 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_new_iv(), default_goacc_reduction(), 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_operation(), 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_safe_insert_before(), gsi_safe_insert_seq_before(), 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(), make_bit_field_load(), make_new_ssa_for_def(), tree_loop_interchange::map_inductions_to_loop(), match_arith_overflow(), 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(), 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_atomic_bit_test_and(), optimize_atomic_op_fetch_cmp_0(), 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_one_built_in_call_with_conds(), simple_dce_from_worklist(), simplify_builtin_call(), 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_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_slp_analyze_load_dependences(), vect_slp_analyze_store_dependences(), vect_split_statement(), vect_stmt_dominates_stmt_p(), vect_transform_slp_perm_load_1(), vectorizable_condition(), vectorizable_induction(), vectorizable_live_operation(), vectorizable_recurr(), vectorize_fold_left_reduction(), vectorize_slp_instance_root_stmt(), and verify_bb_vtables().
|
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_start(), and i.
|
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_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(), cond_if_else_store_replacement_1(), cond_store_replacement(), connect_loops(), convert_atomic_bit_not(), copy_bb(), create_call_for_reduction_1(), create_empty_if_region_on_edge(), create_empty_loop_on_edge(), create_iv(), 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_lower_bitint(), gimple_lv_add_condition_to_bb(), gimple_merge_blocks(), gimple_regimplify_operands(), gimple_seq_add_stmt(), 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_atomic_bit_test_and(), optimize_atomic_op_fetch_cmp_0(), optimize_mask_stores(), optimize_recip_sqrt(), reassociate_bb(), remap_ssa_name(), remove_dead_stmt(), replace_goto_queue_cond_clause(), replace_ref_with(), rewrite_stmt(), rewrite_to_defined_overflow(), scan_omp_simd_scan(), simd_clone_adjust(), simplify_builtin_call(), slpeel_add_loop_guard(), 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(), vectorizable_simd_clone_call(), verify_bb_vtables(), worker_single_copy(), and worker_single_simple().
|
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_seq_nodes_after(), and i.
Referenced by gimple_seq_add_stmt_without_update(), gimplify_and_update_call_from_tree(), gsi_insert_after(), and save_tmp_var().
|
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_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(), build_and_insert_cast(), 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(), convert_atomic_bit_not(), convert_if_conditions_to_switch(), convert_nl_goto_receiver(), convert_scalar_cond_reduction(), convert_to_divmod(), create_final_loads_for_reduction(), create_iv(), 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(), 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(), 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_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(), introduce_cast_before_cand(), 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_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(), optimize_atomic_bit_test_and(), crc_optimization::optimize_crc_loop(), optimize_range_tests_var_bound(), optimize_recip_sqrt(), optimize_spaceship(), 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_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_variant_data_ptr_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_condition(), vectorizable_live_operation(), vectorizable_simd_clone_call(), vectorize_fold_left_reduction(), version_loop_for_if_conversion(), worker_single_copy(), and worker_single_simple().
|
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_seq_nodes_before(), and i.
Referenced by gsi_insert_before(), init_tmp_var(), vec_info::insert_on_entry(), lower_rec_input_clauses(), vect_mark_pattern_stmts(), and vect_split_statement().
Add STMT to the pending list of edge E. No actual insertion is made until a call to gsi_commit_edge_inserts () is made.
References gimple_seq_add_stmt(), and PENDING_STMT.
Referenced by cond_store_replacement(), create_add_on_incoming_edge(), execute_sm_exit(), gimple_flow_call_edges_add(), gimple_lower_bitint(), instrument_decisions(), move_computations_worker(), phiprop_insert_phi(), and walk_regimplify_phi().
|
extern |
Similar to gsi_insert_on_edge+gsi_commit_edge_inserts. If a new block has to be created, it is returned.
References gimple_stmt_iterator::bb, gcc_assert, gimple_find_edge_insert_loc(), gsi_insert_after(), gsi_insert_before(), GSI_NEW_STMT, NULL, PENDING_STMT, and update_call_edge_frequencies().
Referenced by asan_maybe_insert_dynamic_shadow_at_function_entry(), fold_builtin_atomic_compare_exchange(), get_last_alloca_addr(), gsi_safe_insert_before(), handle_builtin_alloca(), ifcvt_hoist_invariants(), initialize_root_vars_lm(), instrument_bool_enum_load(), maybe_register_def(), take_address_of(), vect_convert_input(), vect_recog_rotate_pattern(), vect_set_loop_condition_partial_vectors(), vect_set_loop_condition_partial_vectors_avx512(), vect_setup_realignment(), vectorizable_induction(), and vectorizable_load().
|
extern |
Links sequence SEQ after the statement pointed-to by iterator I. MODE is as in gsi_insert_after. Scan the statements in SEQ for new operands.
References gsi_insert_seq_after_without_update(), i, and update_modified_stmts().
Referenced by asan_expand_check_ifn(), do_hoist_insertion(), tree_switch_conversion::jump_table_cluster::emit(), tree_switch_conversion::switch_conversion::exp_index_transform(), expand_complex_asm(), force_gimple_operand_gsi_1(), generate_reduction_builtin_1(), gimple_build_insert_seq(), gimple_merge_blocks(), gimple_seq_add_seq(), gsi_commit_one_edge_insert(), gsi_insert_finally_seq_after_call(), gsi_insert_seq_on_edge_immediate(), insert_gimplified_predicates(), instrument_expr(), lower_omp_directive(), lower_omp_for_scan(), lower_omp_scan(), lower_omp_sections(), lower_transaction(), optimize_atomic_bit_test_and(), replace_goto_queue_cond_clause(), slpeel_add_loop_guard(), ssa_create_duplicates(), update_complex_components(), update_range_test(), vect_create_constant_vectors(), vect_gen_prolog_loop_niters(), vect_transform_cycle_phi(), vect_update_ivs_after_vectorizer(), vectorizable_induction(), vectorizable_live_operation(), and worker_single_copy().
|
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_nodes_after(), i, last, and NULL.
Referenced by combine_blocks(), gimple_build_insert_seq(), gimple_seq_add_seq_without_update(), gimplify_seq_add_seq(), and gsi_insert_seq_after().
|
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_without_update(), i, and update_modified_stmts().
Referenced by add_header_seq(), tree_switch_conversion::switch_conversion::build_one_array(), 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(), 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_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(), vec_info::insert_seq_on_entry(), instrument_expr(), lower_eh_constructs_2(), lower_emutls_function_body(), lower_gimple_bind(), lower_omp_scan(), lower_transaction(), make_bit_field_load(), match_simplify_replacement(), minmax_replacement(), ipa_param_body_adjustments::modify_cfun_body(), optimize_atomic_bit_test_and(), predicate_statements(), replace_goto_queue_1(), replace_stmt_with_simplification(), rewrite_to_defined_overflow(), 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(), 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().
|
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_nodes_before(), i, last, and NULL.
Referenced by gimple_build_insert_seq(), gimplify_bind_expr(), gimplify_cleanup_point_expr(), gsi_insert_seq_before(), rt_bb_visited::insert_exit_check_on_edge(), reset_debug_bindings(), sink_clobbers(), and vect_mark_pattern_stmts().
|
extern |
Add the sequence of statements SEQ to the pending list of edge E. No actual insertion is made until a call to gsi_commit_edge_inserts is made.
References gimple_seq_add_seq(), and PENDING_STMT.
Referenced by asan_expand_poison_ifn(), copy_phis_for_bb(), create_empty_loop_on_edge(), emit_phi_nodes(), expand_call_tm(), lower_emutls_function_body(), move_computations_worker(), and update_complex_components_on_edge().
|
extern |
Insert STMTS on edge E. If a new block has to be created, it is returned.
References gimple_stmt_iterator::bb, gcc_assert, gimple_find_edge_insert_loc(), gimple_seq_first(), gsi_insert_seq_after(), gsi_insert_seq_before(), GSI_NEW_STMT, NULL, PENDING_STMT, and update_call_edge_frequencies().
Referenced by add_preheader_seq(), canonicalize_loop_ivs(), rt_bb_visited::check(), create_iv(), cse_and_gimplify_to_preheader(), determine_exit_conditions(), finalize_eliminated_stores(), gen_parallel_loop(), gsi_insert_finally_seq_after_call(), gsi_safe_insert_seq_before(), initialize_constant_pool_replacements(), initialize_parameter_reductions(), initialize_root_vars(), initialize_root_vars_lm(), initialize_root_vars_store_elim_2(), rt_bb_visited::insert_exit_check_on_edge(), insert_init_seqs(), insert_into_preds_of_block(), vec_info::insert_seq_on_entry(), instrument_expr(), instrument_func_entry(), optimize_atomic_bit_test_and(), rewrite_use_compare(), simd_clone_adjust(), split_loop(), vect_build_loop_niters(), vect_create_constant_vectors(), vect_create_data_ref_ptr(), vect_emit_reduction_init_stmts(), vect_gen_vector_loop_niters(), vect_get_gather_scatter_ops(), vect_prepare_for_masked_peels(), vect_set_loop_condition_normal(), vect_setup_realignment(), vect_transform_cycle_phi(), vectorizable_induction(), vectorizable_nonlinear_induction(), vectorizable_recurr(), and vectorizable_simd_clone_call().
|
inline |
Return a new iterator initially pointing to GIMPLE_SEQ's last statement.
References gimple_bb(), gimple_seq_last(), i, and NULL.
Referenced by asan_poison_variable(), create_expression_by_pieces(), expand_gimple_basic_block(), finalize_nesting_tree_1(), gen_log2(), gen_pow2p(), gimple_build(), gimple_build(), gimple_build(), gimple_build(), gimple_build(), gimple_build(), gimple_build_round_up(), gimple_build_round_up(), gimple_build_vector(), gimple_build_vector(), gimple_build_vector_from_val(), gimple_build_vector_from_val(), gimple_convert(), gimple_convert(), gimple_convert_to_ptrofftype(), gimple_convert_to_ptrofftype(), gimple_gen_edge_profiler(), gimple_seq_add_seq(), gimple_seq_add_seq_without_update(), gimple_seq_add_stmt(), gimple_seq_add_stmt_without_update(), gimple_seq_unreachable_p(), gimplify_and_return_first(), gimplify_and_update_call_from_tree(), gimplify_call_expr(), gimplify_cond_expr(), gimplify_expr(), gimplify_modify_expr(), gimplify_seq_add_seq(), gimplify_target_expr(), gsi_replace_with_seq(), gsi_replace_with_seq_vops(), instrument_object_size(), lower_function_body(), make_blocks(), sink_clobbers(), vectorizable_live_operation_1(), and walk_gimple_omp_for().
|
inline |
Return a new iterator pointing to the last statement in basic block BB.
References bb_seq_addr(), gimple_seq_last(), and i.
Referenced by adjust_return_value(), ipa_param_body_adjustments::append_init_stmts(), 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(), compute_complex_ancestor_jump_func(), path_range_query::compute_outgoing_relations(), cond_if_else_store_replacement_1(), cond_removal_in_builtin_zero_pattern(), cond_store_replacement(), 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_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_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(), 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_nondebug_bb(), gsi_move_to_bb_end(), gsi_prev_dom_bb_nondebug(), handle_abnormal_edges(), hardcfr_scan_block(), hoist_guard(), if_convertible_bb_p(), 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(), is_feasible_trace(), known_succ_p(), last_nondebug_stmt(), loop_niter_by_eval(), lower_eh_dispatch(), lower_resx(), make_cond_expr_edges(), make_edges_bb(), make_gimple_asm_edges(), make_goto_expr_edges(), 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_set_nonzero_bits(), back_threader::maybe_thread_block(), minmax_replacement(), 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(), optimize_unreachable(), patch_loop_exit(), phi_result_unknown_predicate(), back_threader_profitability::possibly_profitable_path_p(), 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(), 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_forwarder_block_p(), 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_detect_hybrid_slp(), 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_slp_function(), vect_transform_cycle_phi(), vect_update_ivs_after_vectorizer(), vectorizable_early_exit(), version_loop_by_alias_check(), version_loop_for_if_conversion(), pointer_equiv_analyzer::visit_edge(), vn_phi_eq(), vn_phi_insert(), vn_phi_lookup(), worker_single_copy(), and worker_single_simple().
|
inline |
Return a new iterator pointing to the last non-debug statement in basic block BB.
References gsi_end_p(), gsi_last_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_block_to_duplicate_for_splitting_paths(), 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(), last_and_only_stmt(), maybe_move_debug_stmts_to_successors(), minmax_replacement(), remove_exit_barrier(), tree_transform_and_unroll_loop(), value_replacement(), and want_merge_blocks_p().
|
extern |
Move the statement at FROM so it comes right after the statement at TO.
References gsi_insert_after(), GSI_NEW_STMT, gsi_remove(), and gsi_stmt().
Referenced by gsi_move_to_bb_end(), make_blocks(), move_debug_stmts_from_forwarder(), and loop_cand::undo_simple_reduction().
|
extern |
Move the statement at FROM so it comes right before the statement at TO using method M. M defaults to GSI_SAME_STMT.
References gsi_insert_before(), gsi_remove(), and gsi_stmt().
Referenced by adjust_iv_update_pos(), cond_removal_in_builtin_zero_pattern(), destroy_loop(), find_tail_calls(), gimple_block_label(), gsi_move_to_bb_end(), ifcombine_replace_cond(), minmax_replacement(), tree_loop_interchange::move_code_to_inner_loop(), move_debug_stmts_from_forwarder(), move_early_exit_stmts(), move_stmt(), optimize_mask_stores(), remove_forwarder_block(), replace_block_by(), shrink_wrap_one_built_in_call_with_conds(), sink_code_in_bb(), and value_replacement().
|
extern |
Move the statement at FROM to the end of basic block BB.
References gcc_checking_assert, gsi_bb(), gsi_end_p(), gsi_last_bb(), gsi_move_after(), gsi_move_before(), gsi_stmt(), is_ctrl_stmt(), and last.
Referenced by hoist_adjacent_loads(), and sink_code_in_bb().
|
inline |
Advance the iterator to the next gimple statement.
References 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_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_discriminator(), assign_discriminators(), assign_known_vals_to_header_phis(), assign_vals_to_header_phis(), 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(), 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_if_else_store_replacement(), 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(), count_stmts_in_block(), cprop_into_successor_phis(), create_coalesce_list_for_region(), create_expression_by_pieces(), create_loads_for_reductions(), 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(), pointer_equiv_analyzer::enter(), estimate_bb_frequencies(), 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(), 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_non_label_stmt(), 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_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(), group_case_labels_stmt(), gsi_after_labels(), gsi_after_labels(), gsi_next_nondebug(), gsi_next_nonvirtual_phi(), gsi_replace_with_seq_vops(), gsi_safe_insert_seq_before(), strlen_pass::handle_store(), autofdo::has_indirect_call(), 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_dont_simulate_again(), init_loop_unswitch_info(), initialize_flags_in_bb(), input_function(), insert_backedge_copies(), insert_reciprocals(), instrument_builtin_call(), instrument_memory_accesses(), ipa_analyze_params_uses_in_bb(), 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_feasible_trace(), 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(), match_simplify_replacement(), maybe_dead_abnormal_edge_p(), maybe_instrument_assignment(), maybe_instrument_call(), maybe_lower_iteration_bound(), maybe_optimize_guarding_check(), 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_unreachable(), 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(), poor_ifcvt_pred(), 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_forwarder_block(), remove_forwarder_block_with_phi(), 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_loop_2(), vect_analyze_loop_operations(), vect_analyze_scalar_cycles_1(), vect_analyze_slp(), vect_analyze_stmt(), vect_can_advance_ivs_p(), vect_compute_single_scalar_iteration_cost(), vect_detect_hybrid_slp(), vect_determine_precisions(), vect_determine_vectorization_factor(), vect_determine_vf_for_stmt(), 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(), vect_update_vf_for_slp(), 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().
|
inline |
Advance the iterator to the next non-debug gimple statement.
References gsi_end_p(), gsi_next(), gsi_stmt(), i, and is_gimple_debug().
Referenced by analyze_function_body(), builtin_unreachable_bb_p(), can_combine_bbs_with_short_circuit(), check_loop_closed_ssa_bb(), cleanup_empty_eh(), ipa_icf_gimple::func_checker::compare_bb(), cond_removal_in_builtin_zero_pattern(), create_iv(), determine_reduction_stmt_1(), empty_bb_or_one_feeding_into_p(), same_succ::equal(), crc_optimization::exists_shift_for_opp_xor_shift(), expand_omp_atomic_fetch_op(), find_always_executed_bbs(), find_deps_in_bb_for_stmt(), find_necessary_statements(), gimple_account_profile_record(), gimple_can_merge_blocks_p(), gsi_advance_fw_nondebug_nonlocal(), gsi_one_nondebug_before_end_p(), gsi_start_nondebug(), gsi_start_nondebug_after_labels_bb(), gsi_start_nondebug_bb(), infinite_empty_loop_p(), is_factor_profitable(), isolate_path(), crc_optimization::loop_may_calculate_crc(), make_edges(), match_arith_overflow(), maybe_dead_abnormal_edge_p(), maybe_diag_stxncpy_trunc(), maybe_optimize_guarding_check(), back_threader_profitability::possibly_profitable_path_p(), same_succ_hash(), should_warn_for_implicit_fallthrough(), unsplit_eh(), value_replacement(), and warn_implicit_fallthrough_r().
|
inline |
Advance I statement iterator to the next non-virtual GIMPLE_PHI statement.
References gimple_phi_result(), gsi_end_p(), gsi_next(), i, and virtual_operand_p().
Referenced by ipa_icf::sem_function::compare_phi_node(), gsi_start_nonvirtual_phis(), and ipa_icf::sem_function::init().
|
inline |
Referenced by expand_omp_for_static_chunk(), expand_omp_for_static_nochunk(), expand_omp_sections(), handle_builtin_alloca(), lower_omp_for_scan(), make_blocks(), scan_omp_simd_scan(), sra_modify_assign(), sra_modify_expr(), ssa_create_duplicates(), update_range_test(), vect_mark_pattern_stmts(), and vect_schedule_slp_node().
|
inline |
Return true if I is one statement before the end of its sequence.
Referenced by can_combine_bbs_with_short_circuit(), rt_bb_visited::check(), dump_gimple_seq(), gimplify_cleanup_point_expr(), gsi_insert_finally_seq_after_call(), gsi_one_nondebug_before_end_p(), lower_omp_sections(), mark_reachable_handlers(), maybe_move_debug_stmts_to_successors(), maybe_register_def(), omp_sese_split_blocks(), optimize_double_finally(), process_bb(), same_handler_p(), split_bb_make_tm_edge(), top_level_omp_for_in_stmt(), and verify_gimple_in_cfg().
|
inline |
Return true if I is followed only by debug statements in its sequence.
References gsi_end_p(), gsi_next_nondebug(), gsi_one_before_end_p(), and i.
Referenced by cleanup_empty_eh(), gimple_seq_nondebug_singleton_p(), gimple_verify_flow_info(), and minmax_replacement().
|
inline |
Advance the iterator to the previous gimple statement.
References 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_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(), 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(), tm_region_init_1(), tree_forwarder_block_p(), tree_switch_conversion::switch_decision_tree::try_switch_expansion(), update_range_test(), vect_analyze_early_break_dependences(), vect_detect_hybrid_slp(), vect_determine_precisions(), vect_loop_dist_alias_call(), vect_loop_vectorized_call(), 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().
|
inline |
Advance the iterator to the previous non-debug gimple statement.
References gsi_end_p(), gsi_prev(), gsi_stmt(), i, and is_gimple_debug().
Referenced by adjust_iv_update_pos(), branch_prob(), expand_omp_atomic_cas(), factor_out_conditional_operation(), find_duplicate(), gimple_find_edge_insert_loc(), gsi_advance_bw_nondebug_nonlocal(), gsi_last_nondebug_bb(), gsi_prev_dom_bb_nondebug(), last_and_only_stmt(), match_arith_overflow(), release_last_vdef(), remove_exit_barrier(), replace_loop_annotate_in_block(), and value_replacement().
|
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_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(), convert_atomic_bit_not(), 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(), eliminate_dom_walker::eliminate_cleanup(), eliminate_tail_call(), tree_switch_conversion::switch_decision_tree::emit(), 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_operation(), find_assumption_locals_r(), find_deps_in_bb_for_stmt(), 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_replace_with_seq(), handle_abnormal_edges(), 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_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_atomic_bit_test_and(), optimize_atomic_op_fetch_cmp_0(), 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(), 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_transform_loop(), vect_transform_slp_perm_load_1(), vectorizable_condition(), and vectorize_fold_left_reduction().
|
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. Assignments must only be replaced with assignments to the same LHS. Returns whether EH edge cleanup is required.
References cfun, 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_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_stpcpy(), gimple_fold_call(), gimple_fold_partial_load(), gimple_fold_partial_store(), gimple_lower_bitint(), gimplify_and_update_call_from_tree(), 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_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(), 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(), simplify_builtin_call(), 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(), vect_transform_loop(), and vectorize_slp_instance_root_stmt().
|
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_SAME_STMT, gsi_stmt(), and last.
Referenced by asan_expand_mark_ifn(), default_goacc_reduction(), gsi_replace_with_seq_vops(), lower_omp_1(), oacc_xform_loop(), oacc_xform_tile(), and simplify_count_trailing_zeroes().
|
extern |
Insert G stmt before ITER and keep ITER pointing to the same statement as before. If ITER is a returns_twice call, insert it on an appropriate edge instead.
References adjust_before_returns_twice_call(), bb_has_abnormal_pred(), ECF_RETURNS_TWICE, edge_before_returns_twice_call(), g, gimple_call_flags(), gsi_bb(), gsi_for_stmt(), gsi_insert_before(), gsi_insert_on_edge_immediate(), GSI_SAME_STMT, gsi_stmt(), is_gimple_call(), and single_succ_edge().
Referenced by asan_expand_mark_ifn(), build_check_stmt(), gimple_lower_bitint(), instrument_mem_ref(), instrument_nonnull_arg(), instrument_nonnull_return(), instrument_object_size(), instrument_pointer_overflow(), maybe_cast_to_ptrmode(), maybe_create_ssa_name(), and maybe_instrument_call().
|
extern |
Similarly for sequence SEQ.
References adjust_before_returns_twice_call(), bb_has_abnormal_pred(), ECF_RETURNS_TWICE, edge_before_returns_twice_call(), g, gimple_call_flags(), gimple_seq_empty_p(), gimple_seq_first_stmt(), gimple_seq_last_stmt(), gsi_bb(), gsi_for_stmt(), gsi_insert_seq_before(), gsi_insert_seq_on_edge_immediate(), gsi_next(), GSI_SAME_STMT, gsi_stmt(), is_gimple_call(), and single_succ_edge().
Referenced by instrument_object_size(), and maybe_instrument_pointer_overflow().
|
inline |
Return the sequence associated with this iterator.
References i.
Referenced by initialize_constant_pool_replacements(), initialize_parameter_reductions(), and walk_gimple_omp_for().
|
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_stmt(), gimple::next, gimple::prev, gimple_stmt_iterator::ptr, and gimple_stmt_iterator::seq.
Referenced by gimplify_cleanup_point_expr(), gsi_replace(), and reserve_phi_args_for_new_edge().
|
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(), i, gimple::next, and NULL.
Referenced by gimplify_body(), gimplify_cleanup_point_expr(), and ssa_create_duplicates().
|
extern |
Move all statements in the sequence before I to a new sequence. Return this new 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(), i, gimple::next, NULL, and gimple::prev.
Referenced by gimple_split_block(), and make_blocks_1().
|
inline |
Return a new iterator pointing to GIMPLE_SEQ's first statement.
References gimple_bb(), gimple_seq_first(), 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(), collect_finally_tree_1(), control_flow_regions::compute_regions(), copy_bb(), create_expression_by_pieces(), decide_copy_try_finally(), decompose_kernels_region_body(), do_warn_unused_result(), dump_gimple_seq(), empty_body_p(), estimate_num_insns_seq(), expand_call_tm(), expand_gimple_basic_block(), 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_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_1(), mark_lhs_in_seq_for_dce(), match_simplify_replacement(), 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_epilogue_loop_vinfo(), update_modified_stmts(), vect_analyze_loop_2(), vect_analyze_stmt(), vect_detect_hybrid_slp(), vect_determine_vf_for_stmt(), vect_init_vector(), vect_loop_versioning(), vect_mark_pattern_stmts(), vect_pattern_recog_1(), vect_transform_loop(), verify_bb_vtables(), verify_gimple_in_seq_2(), and walk_gimple_seq_mod().
|
inline |
Return a new iterator pointing to the first statement in basic block BB.
References bb_seq_addr(), gimple_seq_first(), and i.
Referenced by _bb_vec_info::_bb_vec_info(), _loop_vec_info::_loop_vec_info(), adjust_simduid_builtins(), autofdo::afdo_set_bb_count(), autofdo::afdo_vpt_for_early_inline(), analyze_bb(), analyze_function(), analyze_function_body(), analyze_memory_references(), asan_expand_check_ifn(), assign_discriminator(), assign_discriminators(), 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(), count_stmts_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_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_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_non_label_stmt(), 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_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(), group_case_labels_stmt(), gsi_after_labels(), gsi_for_stmt(), gsi_start_nondebug_bb(), handle_abnormal_edges(), autofdo::has_indirect_call(), 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_dont_simulate_again(), init_loop_unswitch_info(), initialize_flags_in_bb(), input_bb(), input_function(), instrument_memory_accesses(), ipa_analyze_params_uses_in_bb(), 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(), maybe_dead_abnormal_edge_p(), maybe_diag_stxncpy_trunc(), maybe_lower_iteration_bound(), 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(), crc_optimization::optimize_crc_loop(), optimize_mask_stores(), optimize_omp_library_calls(), optimize_unreachable(), 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_forwarder_block(), 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_analyze_loop_2(), vect_analyze_loop_operations(), vect_compute_single_scalar_iteration_cost(), vect_determine_precisions(), vect_determine_vectorization_factor(), vect_do_peeling(), vect_gen_vector_loop_niters_mult_vf(), vect_get_datarefs_in_loop(), vect_mark_stmts_to_be_vectorized(), vect_pattern_recog(), vect_slp_check_for_roots(), vect_slp_region(), vect_transform_loop(), vect_update_vf_for_slp(), 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().
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(), and PENDING_STMT.
Referenced by sra_modify_assign(), sra_modify_call_arg(), and sra_modify_expr().
|
inline |
Return a new iterator pointing to the first non-debug statement in SEQ.
References gsi_end_p(), gsi_next_nondebug(), gsi_start(), gsi_stmt(), and is_gimple_debug().
Referenced by gimple_seq_nondebug_singleton_p().
|
inline |
Return a new iterator pointing to the first non-debug non-label statement in basic block BB.
References gsi_after_labels(), gsi_end_p(), gsi_next_nondebug(), gsi_stmt(), i, and is_gimple_debug().
Referenced by branch_prob(), can_combine_bbs_with_short_circuit(), cleanup_control_flow_pre(), cond_removal_in_builtin_zero_pattern(), edge_before_returns_twice_call(), empty_bb_or_one_feeding_into_p(), expand_complex_multiplication(), find_always_executed_bbs(), get_abnormal_succ_dispatcher(), gimple_account_profile_record(), isolate_path(), maybe_dead_abnormal_edge_p(), minmax_replacement(), and value_replacement().
|
inline |
Return a new iterator pointing to the first non-debug statement in basic block BB.
References gsi_end_p(), gsi_next_nondebug(), gsi_start_bb(), gsi_stmt(), i, and is_gimple_debug().
Referenced by analyze_function_body(), builtin_unreachable_bb_p(), check_loop_closed_ssa_bb(), ipa_icf_gimple::func_checker::compare_bb(), determine_reduction_stmt_1(), edge_before_returns_twice_call(), empty_block_with_phis_p(), same_succ::equal(), crc_optimization::exists_shift_for_opp_xor_shift(), find_deps_in_bb_for_stmt(), crc_optimization::loop_may_calculate_crc(), same_succ_hash(), jump_threader::thread_around_empty_blocks(), and fwd_jt_path_registry::thread_block_1().
|
inline |
Return a new iterator pointing to the first non-virtual phi statement in basic block BB.
References gimple_phi_result(), gsi_end_p(), gsi_next_nonvirtual_phi(), gsi_start_phis(), i, and virtual_operand_p().
Referenced by ipa_icf::sem_function::compare_phi_node(), ipa_icf::sem_function::init(), and make_forwarders_with_degenerate_phis().
|
extern |
Returns iterator at the start of the list of phi nodes of BB.
References gimple_bb(), gimple_seq_first(), 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_set_bb_count(), loop_cand::analyze_carried_vars(), analyze_function_body(), loop_cand::analyze_lcssa_phis(), assign_calc_vals_to_header_phis(), 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(), compute_points_to_sets(), path_range_query::compute_ranges_in_phis(), cond_if_else_store_replacement(), 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(), pointer_equiv_analyzer::enter(), 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(), 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_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(), has_phis_p(), hoist_adjacent_loads(), hoist_guard(), if_convertible_loop_p_1(), ifcombine_replace_cond(), ifcvt_local_dce(), init_copy_prop(), init_dont_simulate_again(), initialize_flags_in_bb(), input_function(), insert_backedge_copies(), ipa_analyze_params_uses_in_bb(), ipa_pta_execute(), ipa_simd_modify_function_body(), is_feasible_trace(), 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(), maybe_optimize_guarding_check(), 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(), poor_ifcvt_pred(), 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_forwarder_block_with_phi(), 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_loop_operations(), vect_analyze_scalar_cycles_1(), vect_analyze_slp(), vect_can_advance_ivs_p(), vect_detect_hybrid_slp(), vect_determine_precisions(), vect_determine_vectorization_factor(), vect_do_peeling(), vect_loop_versioning(), vect_mark_stmts_to_be_vectorized(), vect_transform_loop(), vect_update_ivs_after_vectorizer(), vect_update_vf_for_slp(), 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().
|
inline |
Return the current stmt.
References 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_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_indirect_call(), autofdo::afdo_set_bb_count(), autofdo::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_discriminator(), assign_discriminators(), 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(), 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(), count_stmts_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_iv(), 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_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(), same_succ::equal(), estimate_bb_frequencies(), 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_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_block_to_duplicate_for_splitting_paths(), 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(), first_non_label_stmt(), 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_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_clear_padding(), gimple_fold_builtin_fprintf(), gimple_fold_builtin_fputs(), gimple_fold_builtin_memchr(), gimple_fold_builtin_memory_chk(), gimple_fold_builtin_memory_op(), 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(), group_case_labels_stmt(), 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(), handle_abnormal_edges(), strlen_pass::handle_alloc_call(), handle_builtin_alloca(), strlen_pass::handle_builtin_memcmp(), 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(), autofdo::has_indirect_call(), 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_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_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(), ipa_analyze_params_uses_in_bb(), 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(), load_assign_lhs_subreplacements(), 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_omp_1(), lower_omp_critical(), lower_omp_directive(), lower_omp_dispatch(), lower_omp_for(), lower_omp_for_scan(), 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(), make_tm_uninst(), malloc_candidate_p(), mark_lhs_in_seq_for_dce(), mark_local_labels_stmt(), mark_reachable_handlers(), match_arith_overflow(), match_simplify_replacement(), 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_renumber_stmts_bb(), minmax_replacement(), 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(), 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(), optimize_atomic_bit_test_and(), optimize_atomic_op_fetch_cmp_0(), optimize_clobbers(), optimize_double_finally(), optimize_mask_stores(), optimize_memcpy_to_memset(), optimize_omp_library_calls(), optimize_recip_sqrt(), optimize_stack_restore(), dom_opt_dom_walker::optimize_stmt(), optimize_tail_call(), optimize_unreachable(), optimize_va_list_gpr_fpr_size(), optimize_vector_constructor(), optimize_vector_load(), output_bb(), ipa_icf_gimple::func_checker::parse_labels(), poor_ifcvt_pred(), back_threader_profitability::possibly_profitable_path_p(), 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_forwarder_block(), 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_overflow(), 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_bitfield_ref(), simplify_builtin_call(), simplify_count_trailing_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_forwarder_block_p(), tree_num_loop_insns(), 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_analyze_loop_operations(), vect_analyze_stmt(), vect_compute_single_scalar_iteration_cost(), vect_create_data_ref_ptr(), vect_detect_hybrid_slp(), vect_determine_precisions(), vect_determine_vectorization_factor(), vect_determine_vf_for_stmt(), vect_do_peeling(), 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_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_vf_for_slp(), vectorizable_condition(), vectorizable_load(), vectorizable_store(), 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().
|
extern |
Mark the statements in SEQ as modified, and update them.
References cfun, gsi_end_p(), gsi_next(), gsi_start(), gsi_stmt(), ssa_operands_active(), and update_stmt_if_modified().
Referenced by expand_ifn_va_arg_1(), gsi_insert_seq_after(), and gsi_insert_seq_before().