GCC Middle and Back End API Reference
|
Go to the source code of this file.
Data Structures | |
struct | use_optype_d |
struct | ssa_operand_memory_d |
struct | ssa_operands |
Macros | |
#define | NULL_USE_OPERAND_P ((use_operand_p)NULL) |
#define | NULL_DEF_OPERAND_P ((def_operand_p)NULL) |
#define | USE_FROM_PTR(PTR) |
#define | DEF_FROM_PTR(PTR) |
#define | SET_USE(USE, V) |
#define | SET_DEF(DEF, V) |
#define | USE_STMT(USE) |
#define | USE_OP_PTR(OP) |
#define | USE_OP(OP) |
#define | PHI_RESULT(PHI) |
#define | SET_PHI_RESULT(PHI, V) |
#define | PHI_ARG_DEF_PTR(PHI, I) |
#define | PHI_ARG_DEF(PHI, I) |
#define | SET_PHI_ARG_DEF(PHI, I, V) |
#define | SET_PHI_ARG_DEF_ON_EDGE(PHI, E, V) |
#define | PHI_ARG_DEF_FROM_EDGE(PHI, E) |
#define | PHI_ARG_DEF_PTR_FROM_EDGE(PHI, E) |
#define | PHI_ARG_INDEX_FROM_USE(USE) |
Typedefs | |
typedef tree * | def_operand_p |
typedef ssa_use_operand_t * | use_operand_p |
typedef struct use_optype_d * | use_optype_p |
Functions | |
bool | ssa_operands_active (struct function *) |
void | init_ssa_operands (struct function *fn) |
void | fini_ssa_operands (struct function *) |
bool | verify_ssa_operands (struct function *, gimple *stmt) |
void | free_stmt_operands (struct function *, gimple *) |
void | update_stmt_operands (struct function *, gimple *) |
void | swap_ssa_operands (gimple *, tree *, tree *) |
bool | verify_imm_links (FILE *f, tree var) |
void | dump_immediate_uses_for (FILE *file, tree var) |
void | dump_immediate_uses (FILE *file) |
void | debug_immediate_uses (void) |
void | debug_immediate_uses_for (tree var) |
void | unlink_stmt_vdef (gimple *) |
tree | get_use_from_ptr (use_operand_p use) |
tree | get_def_from_ptr (def_operand_p def) |
#define DEF_FROM_PTR | ( | PTR | ) |
Referenced by all_immediate_uses_same_place(), create_rdg_flow_edges(), defs_to_varying(), expand_gimple_basic_block(), gimple_duplicate_bb(), hoist_defs_of_uses(), insert_debug_temps_for_defs(), insert_phi_nodes(), maybe_push_to_hybrid_worklist(), maybe_register_def(), ipa_param_body_adjustments::modify_cfun_body(), nearest_common_dominator_of_uses(), prepare_block_for_update_1(), release_defs_bitset(), reset_debug_uses(), rewrite_stmt(), separate_decls_in_region_stmt(), statement_sink_location(), stmt_has_scalar_dependences_outside_loop(), stmt_local_def(), vect_bb_slp_mark_live_stmts(), vect_bb_slp_scalar_cost(), vect_do_peeling(), vect_loop_kill_debug_uses(), vect_stmt_relevant_p(), and operands_scanner::verify_ssa_operands().
#define NULL_DEF_OPERAND_P ((def_operand_p)NULL) |
#define NULL_USE_OPERAND_P ((use_operand_p)NULL) |
NULL operand types.
Referenced by check_reduction_path(), find_replaceable_in_bb(), first_imm_use_stmt(), first_readonly_imm_use(), gimple_vuse_op(), link_use_stmts_after(), next_imm_use_on_stmt(), next_readonly_imm_use(), op_iter_init_phiuse(), op_iter_next_use(), single_imm_use(), single_ssa_use_operand(), ssa_vuse_operand(), statement_sink_location(), and operands_scanner::verify_ssa_operands().
#define PHI_ARG_DEF | ( | PHI, | |
I ) |
Referenced by analyze_evolution_in_loop(), analyze_initial_condition(), apply_return_prediction(), build_new_reduction(), calculate_live_on_exit(), coalesce_partitions(), compute_complex_ancestor_jump_func(), compute_optimized_partition_bases(), create_coalesce_list_for_region(), eliminate_build(), eliminate_temp_copies(), execute_update_addresses_taken(), expand_simple_operations(), expr_expected_value_1(), extract_true_false_args_from_phi(), find_bb_for_arg(), find_necessary_statements(), scev_dfs::follow_ssa_edge_in_condition_phi_branch(), scev_dfs::follow_ssa_edge_inner_loop_phi(), get_continuation_for_phi(), gimple_lv_adjust_loop_header_phi(), interpret_condition_phi(), ipa_analyze_indirect_call_uses(), move_computations_worker(), optimize_pow_to_exp(), parloops_is_simple_reduction(), phi_translate_1(), propagate_necessity(), record_edge_info(), rewrite_trees(), thread_private_new_memory(), translate_vuse_through_block(), uncprop_into_successor_phis(), vect_analyze_loop_operations(), vect_is_simple_reduction(), and zero_one_minusone().
#define PHI_ARG_DEF_FROM_EDGE | ( | PHI, | |
E ) |
Referenced by add_iv_candidate_for_biv(), add_phi_args_after_copy_edge(), adjust_phi_and_debug_stmts(), analyze_and_compute_bitop_with_inv_effect(), analyze_and_compute_bitwise_induction_effect(), loop_cand::analyze_iloop_reduction_var(), loop_cand::analyze_induction_var(), loop_cand::analyze_oloop_reduction_var(), assign_calc_vals_to_header_phis(), assign_known_vals_to_header_phis(), assign_vals_to_header_phis(), tree_switch_conversion::switch_conversion::build_arrays(), tree_switch_conversion::switch_conversion::build_constructors(), check_exit_phi(), cond_if_else_store_replacement(), connect_loop_phis(), copy_phis_for_bb(), create_parallel_loop(), determine_value_range(), easy_exit_values(), edge_forwards_cmp_to_conditional_jump_through_empty_bb_p(), eliminate_temp_copies(), crc_optimization::execute(), crc_symbolic_execution::execute_bb_phi_statements(), tree_switch_conversion::switch_conversion::exp_index_transform(), expand_omp_for_generic(), expand_omp_for_static_chunk(), final_value_replacement_loop(), find_bivs(), find_interesting_uses_outside(), pcom_worker::find_looparound_phi(), back_threader::find_paths_to_names(), find_phi_with_arg_on_edge(), find_reduc_addr(), find_subloop_latch_edge_by_ivs(), find_uses_to_rename_bb(), find_vdef_in_loop(), tree_switch_conversion::switch_conversion::gather_default_values(), tree_switch_conversion::switch_conversion::gen_inbound_check(), get_base_for(), get_vop_from_header(), gimple_ic(), hoist_guard(), ifcvt_local_dce(), independent_of_stmt_p(), initialize_reductions(), is_cond_scalar_reduction(), crc_optimization::is_output_crc(), crc_optimization::loop_calculates_crc(), loop_closed_phi_def(), loop_iter_phi_semi_invariant_p(), loop_niter_by_eval(), make_forwarders_with_degenerate_phis(), mark_bivs(), maybe_set_vectorized_backedge_value(), move_computations_worker(), parloops_is_simple_reduction(), phiprop_insert_phi(), pcom_worker::prepare_initializers_chain(), process_use(), propagate_through_phis(), condition_info::record_phi_mapping(), jump_threader::record_temporary_equivalences_from_phis(), same_phi_args_p(), ssa_propagation_engine::simulate_stmt(), slpeel_tree_duplicate_loop_to_edge_cfg(), slpeel_update_phi_nodes_for_guard1(), split_loop(), path_range_query::ssa_range_in_phi(), stmt_semi_invariant_p_1(), crc_optimization::swap_crc_and_data_if_needed(), transform_to_exit_first_loop(), transform_to_exit_first_loop_alt(), tree_transform_and_unroll_loop(), try_create_reduction_list(), crc_optimization::validate_crc_and_data(), vect_find_reusable_accumulator(), vect_is_nonlinear_iv_evolution(), vect_is_simple_reduction(), vect_loop_versioning(), vect_phi_first_order_recurrence_p(), vect_phi_initial_value(), vect_setup_realignment(), vect_update_ivs_after_vectorizer(), vectorizable_induction(), vectorizable_load(), vectorizable_recurr(), vectorizable_reduction(), verify_vssa(), visit_phi(), vn_phi_insert(), vn_phi_lookup(), and warn_uninit_phi_uses().
#define PHI_ARG_DEF_PTR | ( | PHI, | |
I ) |
Referenced by op_iter_next_use(), substitute_and_fold_engine::replace_phi_args_in(), and replace_phi_edge_with_variable().
#define PHI_ARG_DEF_PTR_FROM_EDGE | ( | PHI, | |
E ) |
Referenced by eliminate_dom_walker::before_dom_children(), connect_loop_phis(), copy_loop_before(), create_parallel_loop(), expand_omp_atomic_pipeline(), expand_omp_for_generic(), gimple_ic(), initialize_reductions(), process_bb(), substitute_and_fold_engine::propagate_into_phi_args(), rename_variables_in_bb(), rewrite_update_phi_arguments(), sink_clobbers(), slpeel_tree_duplicate_loop_to_edge_cfg(), split_loop_exit_edge(), tree_transform_and_unroll_loop(), and update_ssa_across_abnormal_edges().
#define PHI_ARG_INDEX_FROM_USE | ( | USE | ) |
Referenced by add_ssa_edge(), check_loop_closed_ssa_def(), dse_classify_store(), find_uninit_use(), ipa_param_body_adjustments::mark_dead_statements(), nearest_common_dominator_of_uses(), prepare_use_sites_for(), propagate_value(), remove_unused_locals(), replace_uses_by(), rewrite_update_phi_arguments(), set_var_live_on_entry(), stmt_local_def(), and ter_is_replaceable_p().
#define PHI_RESULT | ( | PHI | ) |
Referenced by pcom_worker::add_looparound_copies(), add_phi_arg(), add_successor_phi_arg(), adjust_phi_and_debug_stmts(), loop_cand::analyze_carried_vars(), loop_cand::analyze_lcssa_phis(), base_names_in_chain_on(), eliminate_dom_walker::before_dom_children(), tree_switch_conversion::switch_conversion::build_one_array(), build_ssa_conflict_graph(), loop_cand::can_interchange_p(), canonicalize_loop_ivs(), check_all_va_list_escapes(), check_loop_closed_ssa_bb(), check_reduction_path(), loop_cand::classify_simple_reduction(), coalesce_partitions(), compute_optimized_partition_bases(), copy_phis_for_bb(), count_stmts_and_phis_in_block(), create_call_for_reduction_1(), create_loads_for_reductions(), create_tailcall_accumulator(), determine_set_costs(), dse_classify_store(), eliminate_tail_call(), eliminate_temp_copies(), empty_bb_without_guard_p(), expr_expected_value_1(), final_value_replacement_loop(), find_bivs(), find_interesting_uses_stmt(), pcom_worker::find_looparound_phi(), scev_dfs::follow_ssa_edge_inner_loop_phi(), gather_scalar_reductions(), get_virtual_phi(), gimple_can_merge_blocks_p(), insert_phi_nodes_for(), is_cond_scalar_reduction(), iv_phi_p(), loop_closed_phi_def(), loop_has_vector_phi_nodes(), mark_bivs(), maybe_skip_until(), move_block_to_fn(), name_for_ref(), num_phis(), oacc_entry_exit_ok_1(), optimize_va_list_gpr_fpr_size(), output_phi(), parloops_is_simple_reduction(), parloops_is_slp_reduction(), phiprop_insert_phi(), fvrp_folder::pre_fold_bb(), process_bb(), propagate_through_phis(), propagate_with_phi(), record_edge_info(), pcom_worker::remove_stmt(), replace_phis_by_defined_names(), replace_ref_with(), rewrite_phi_with_iv(), rewrite_use_nonlinear_expr(), shrink_wrap_one_built_in_call_with_conds(), pcom_worker::single_nonlooparound_use(), slpeel_tree_duplicate_loop_to_edge_cfg(), slpeel_update_phi_nodes_for_guard1(), split_loop_exit_edge(), transform_to_exit_first_loop(), transform_to_exit_first_loop_alt(), try_create_reduction_list(), uncprop_into_successor_phis(), loop_cand::undo_simple_reduction(), update_ssa_across_abnormal_edges(), vect_analyze_scalar_cycles_1(), vect_build_slp_tree_2(), vect_create_epilog_for_reduction(), vect_determine_vectorization_factor(), vect_do_peeling(), vect_is_nonlinear_iv_evolution(), vect_is_simple_reduction(), vect_loop_versioning(), vectorizable_induction(), vectorizable_nonlinear_induction(), vectorizable_reduction(), and visit_phi().
#define SET_DEF | ( | DEF, | |
V ) |
Referenced by create_new_def_for(), hoist_defs_of_uses(), insert_phi_nodes(), maybe_register_def(), ipa_param_body_adjustments::modify_cfun_body(), and rewrite_stmt().
#define SET_PHI_ARG_DEF | ( | PHI, | |
I, | |||
V ) |
Referenced by add_phi_arg(), adjust_phi_and_debug_stmts(), copy_phi_arg_into_existing_phi(), insert_backedge_copies(), ipa_simd_modify_function_body(), make_forwarders_with_degenerate_phis(), reserve_phi_args_for_new_edge(), slpeel_tree_duplicate_loop_to_edge_cfg(), tree_lower_complex(), uncprop_into_successor_phis(), update_phi_components(), value_replacement(), vect_create_epilog_for_reduction(), vectorizable_live_operation_1(), and walk_regimplify_phi().
#define SET_PHI_ARG_DEF_ON_EDGE | ( | PHI, | |
E, | |||
V ) |
Referenced by move_early_exit_stmts(), optimize_spaceship(), and slpeel_tree_duplicate_loop_to_edge_cfg().
#define SET_PHI_RESULT | ( | PHI, | |
V ) |
Referenced by move_block_to_fn(), and transform_to_exit_first_loop().
#define SET_USE | ( | USE, | |
V ) |
Referenced by adjust_before_returns_twice_call(), adjust_debug_stmts_now(), bump_vector_ptr(), clean_up_loop_closed_phi(), combine_blocks(), connect_loop_phis(), copy_loop_before(), create_parallel_loop(), expand_gimple_basic_block(), expand_omp_atomic_pipeline(), expand_omp_for_generic(), fold_loop_internal_call(), generate_reduction_builtin_1(), gimple_ic(), gimple_lower_bitint(), gimple_merge_blocks(), hoist_defs_of_uses(), initialize_reductions(), insert_backedge_copies(), insert_debug_temp_for_var_def(), insert_phi_nodes(), make_new_ssa_for_def(), tree_loop_interchange::map_inductions_to_loop(), mark_virtual_operand_for_renaming(), maybe_optimize_range_tests(), maybe_replace_use(), maybe_replace_use_in_debug_stmt(), move_block_to_fn(), move_computations_worker(), move_early_exit_stmts(), optimize_atomic_bit_test_and(), propagate_op_to_single_use(), record_equivalences_from_phis(), jt_state::register_equivs_stmt(), remove_dead_phis(), remove_gimple_phi_args(), remove_unused_ivs(), rename_use_op(), replace_abnormal_ssa_names(), replace_exp(), replace_phi_edge_with_variable(), replace_reciprocal(), replace_reciprocal_squares(), replace_uses_in_bb_by(), ipa_param_body_adjustments::reset_debug_stmts(), rewrite_bittest(), rewrite_debug_stmt_uses(), rewrite_stmt(), rewrite_update_phi_arguments(), separate_decls_in_region_debug(), separate_decls_in_region_stmt(), shrink_wrap_one_built_in_call_with_conds(), simd_clone_adjust(), sink_clobbers(), sink_code_in_bb(), split_function(), split_loop_exit_edge(), tree_transform_and_unroll_loop(), loop_cand::undo_simple_reduction(), unlink_stmt_vdef(), unsplit_eh(), update_ssa_across_abnormal_edges(), vect_create_epilog_for_reduction(), vect_finish_stmt_generation(), vectorizable_live_operation(), and verify_bb_vtables().
#define USE_FROM_PTR | ( | PTR | ) |
Referenced by add_scope_conflicts_1(), adjust_before_returns_twice_call(), avoid_deep_ter_for_debug(), eliminate_dom_walker::before_dom_children(), bump_vector_ptr(), check_all_va_list_escapes(), check_reduction_path(), combine_blocks(), compute_added_num_insns(), connect_loop_phis(), convert_mult_to_fma(), copy_loop_before(), cprop_into_stmt(), cprop_operand(), determine_max_movement(), dump_immediate_uses_for(), eliminate_dom_walker::eliminate_stmt(), eliminate_unnecessary_stmts(), estimate_threading_killed_stmts(), find_deps_in_bb_for_stmt(), find_deriving_biv_for_expr(), find_interesting_uses_stmt(), find_invariants_stmt(), find_ssa_names_to_propagate(), find_uninit_use(), gimple_lower_bitint(), hoist_defs_of_uses(), ifcombine_replace_cond(), ifcvt_local_dce(), invariant_in_sese_p_rec(), last_fma_candidate_feeds_initial_phi(), link_use_stmts_after(), tree_loop_interchange::map_inductions_to_loop(), mark_def_sites(), maybe_replace_use(), maybe_replace_use_in_debug_stmt(), move_block_to_fn(), move_use_after_head(), movement_possibility(), optimize_va_list_gpr_fpr_size(), prepare_block_for_update_1(), ipa_param_body_adjustments::prepare_debug_expressions(), process_bb(), substitute_and_fold_engine::propagate_into_phi_args(), propagate_value(), propagate_with_phi(), jt_state::register_equivs_stmt(), remove_gimple_phi_args(), remove_unused_locals(), rename_use_op(), reorder_operands(), replace_abnormal_ssa_names(), substitute_and_fold_engine::replace_uses_in(), rewrite_debug_stmt_uses(), rewrite_stmt(), rewrite_update_phi_arguments(), separate_decls_in_region_debug(), separate_decls_in_region_stmt(), sese_build_liveouts_bb(), simple_dce_from_worklist(), ssa_propagation_engine::simulate_stmt(), split_function(), split_loop_exit_edge(), statement_sink_location(), stmt_references_abnormal_ssa_name(), stmt_update_dep_bb(), tree_transform_and_unroll_loop(), update_debug_stmt(), update_ssa(), update_ssa_across_abnormal_edges(), vect_inner_phi_in_double_reduction_p(), vect_loop_versioning(), vect_mark_stmts_to_be_vectorized(), verify_imm_links(), verify_phi_args(), verify_ssa(), operands_scanner::verify_ssa_operands(), verify_use(), and warn_uninitialized_vars().
#define USE_OP | ( | OP | ) |
Referenced by op_iter_next_tree().
#define USE_OP_PTR | ( | OP | ) |
Referenced by add_use_op(), operands_scanner::finalize_ssa_uses(), free_stmt_operands(), gimple_vuse_op(), op_iter_next_use(), ssa_vuse_operand(), and swap_ssa_operands().
#define USE_STMT | ( | USE | ) |
Referenced by add_ssa_edge(), all_immediate_uses_same_place(), all_uses_feed_or_dominated_by_stmt(), loop_cand::analyze_iloop_reduction_var(), loop_cand::analyze_oloop_reduction_var(), back_propagate_equivalences(), check_forbidden_calls(), check_loop_closed_ssa_def(), check_reduction_path(), check_scan_store(), cleanup_empty_eh_merge_phis(), compute_added_num_insns(), convert_mult_to_fma(), create_rdg_edges_for_scalar(), do_warn_nonnull_compare(), dse_classify_store(), dump_immediate_uses_for(), execute_cse_reciprocals_1(), expand_gimple_basic_block(), crc_optimization::find_shift_after_xor(), find_uninit_use(), first_imm_use_stmt(), fully_replaceable(), get_reassociation_width(), gimple_lower_bitint(), has_single_use(), has_zero_uses(), ifcvt_local_dce(), insert_debug_temp_for_var_def(), is_cond_scalar_reduction(), is_factor_profitable(), is_feasible_trace(), link_use_stmts_after(), ipa_param_body_adjustments::mark_clobbers_dead(), ipa_param_body_adjustments::mark_dead_statements(), mark_ssa_maybe_undefs(), match_arith_overflow(), match_uaddc_usubc(), maybe_duplicate_comparison(), maybe_optimize_arith_overflow(), maybe_optimize_mod_cmp(), maybe_push_to_hybrid_worklist(), maybe_set_vectorized_backedge_value(), maybe_warn_operand(), nearest_common_dominator_of_uses(), next_imm_use_stmt(), no_side_effect_bb(), num_imm_uses(), optimize_mask_stores(), optimize_successive_divisions_p(), optimize_vector_load(), parloops_is_simple_reduction(), parloops_is_slp_reduction(), phi_arg_index_from_use(), prepare_use_sites_for(), propagate_bias_p(), propagate_value(), propagate_with_phi(), infer_range_manager::register_all_uses(), remove_unreachable::remove_and_update_globals(), replace_reciprocal(), replace_reciprocal_squares(), set_var_live_on_entry(), single_imm_use(), single_imm_use_1(), pcom_worker::single_nonlooparound_use(), single_trailing_store_in_bb(), single_use(), single_use_in_loop(), sink_common_stores_to_bb(), spaceship_replacement(), ssa_name_any_use_dominates_bb_p(), ssa_name_has_uses_outside_loop_p(), statement_sink_location(), stmt_local_def(), trivially_conflicts_p(), try_create_reduction_list(), unroll_jam_possible_p(), use_in_zero_equality(), used_outside_loop_p(), uses_in_bb(), var_is_used_for_virtual_call_p(), vect_build_slp_instance(), vect_create_epilog_for_reduction(), vect_determine_min_output_precision_1(), vect_is_simple_reduction(), vect_phi_first_order_recurrence_p(), vect_stmt_relevant_p(), vectorizable_induction(), vectorizable_scan_store(), and warn_uninit_phi_uses().
typedef tree* def_operand_p |
SSA operand management for trees. Copyright (C) 2003-2024 Free Software Foundation, Inc. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see <http://www.gnu.org/licenses/>.
Interface to SSA operands.
This represents a pointer to a DEF operand.
typedef ssa_use_operand_t* use_operand_p |
This represents a pointer to a USE operand.
typedef struct use_optype_d* use_optype_p |
|
extern |
Dump def-use edges on stderr.
References dump_immediate_uses().
|
extern |
Dump def-use edges on stderr.
References dump_immediate_uses_for().
|
extern |
Dump all the immediate uses to FILE.
References cfun, dump_immediate_uses_for(), and FOR_EACH_SSA_NAME.
Referenced by debug_immediate_uses().
|
extern |
Dump all the immediate uses to FILE.
References FOR_EACH_IMM_USE_FAST, gcc_assert, has_single_use(), has_zero_uses(), is_gimple_reg(), ssa_use_operand_t::loc, NULL, num_imm_uses(), print_generic_expr(), print_gimple_stmt(), ssa_use_operand_t::stmt, TDF_MEMSYMS, TDF_SLIM, TDF_VOPS, TREE_CODE, ssa_use_operand_t::use, USE_FROM_PTR, and USE_STMT.
Referenced by debug_immediate_uses_for(), and dump_immediate_uses().
|
extern |
Dispose of anything required by the operand routines.
References ssa_operands::free_uses, ggc_free(), function::gimple_df, gimple_ssa_operands(), ssa_operand_memory_d::next, NULL, NULL_TREE, ssa_operands::operand_memory, ssa_operands::ops_active, and gimple_df::vop.
Referenced by delete_tree_ssa().
Releases the operands of STMT back to their freelists, and clears the stmt operand lists.
References delink_imm_use(), ssa_operands::free_uses, gimple_has_mem_ops(), gimple_set_use_ops(), gimple_set_vdef(), gimple_set_vuse(), gimple_ssa_operands(), gimple_use_ops(), use_optype_d::next, NULL, NULL_TREE, and USE_OP_PTR.
Referenced by move_block_to_fn().
|
inline |
Return the tree pointed-to by DEF.
Referenced by _slp_tree::push_vec_def().
|
inline |
Return the tree pointed-to by USE.
Referenced by cprop_into_successor_phis().
|
extern |
Initialize the operand cache routines.
References create_vop_var(), gcc_assert, gimple_ssa_operands(), NULL, OP_SIZE_INIT, ssa_operands::operand_memory, ssa_operands::operand_memory_index, ssa_operands::ops_active, and ssa_operands::ssa_operand_mem_size.
Referenced by expand_omp_taskreg(), init_lowered_empty_function(), initialize_cfun(), and input_ssa_names().
Return true if the SSA operands cache is active.
References function::gimple_df, gimple_ssa_operands(), NULL, and ssa_operands::ops_active.
Referenced by delete_tree_ssa(), delink_stmt_imm_use(), update_modified_stmt(), update_modified_stmts(), and update_stmt_operands().
Swap operands EXP0 and EXP1 in statement STMT. No attempt is done to test the validity of the swap operation.
References gimple_use_ops(), use_optype_d::next, NULL, and USE_OP_PTR.
Referenced by linearize_expr_tree(), optimize_vec_cond_expr(), parloops_is_simple_reduction(), parloops_is_slp_reduction(), reorder_operands(), and repropagate_negates().
|
extern |
Unlink STMTs virtual definition from the IL by propagating its use.
References FOR_EACH_IMM_USE_ON_STMT, FOR_EACH_IMM_USE_STMT, gimple_vdef(), gimple_vuse(), SET_USE, SSA_NAME_OCCURS_IN_ABNORMAL_PHI, and TREE_CODE.
Referenced by strlen_pass::adjust_last_stmt(), adjust_simduid_builtins(), cleanup_empty_eh_move_lp(), cond_if_else_store_replacement_1(), cond_store_replacement(), delete_dead_or_redundant_assignment(), delete_dead_or_redundant_call(), eliminate_dom_walker::eliminate_cleanup(), eliminate_local_variables_stmt(), execute_omp_device_lower(), execute_update_addresses_taken(), expand_call_inline(), expand_ifn_va_arg_1(), operands_scanner::finalize_ssa_defs(), generate_loops_for_partition(), gimple_fold_builtin_memory_op(), gimple_ic(), gimple_stringop_fixed_value(), gimplify_and_update_call_from_tree(), gsi_replace_with_seq_vops(), strlen_pass::handle_builtin_memset(), strlen_pass::handle_store(), hoist_memory_references(), input_function(), maybe_remove_writeonly_store(), tree_loop_interchange::move_code_to_inner_loop(), optimize_clobbers(), dom_opt_dom_walker::optimize_stmt(), optimize_vector_load(), predicate_statements(), propagate_op_to_single_use(), propagate_with_phi(), remove_dead_stmt(), remove_indirect_clobbers(), remove_prop_source_from_use(), pcom_worker::remove_stmt(), vec_info::remove_stmt(), remove_unused_locals(), replace_call_with_value(), ipa_param_body_adjustments::reset_debug_stmts(), sanopt_optimize_walker(), simple_dce_from_worklist(), simplify_builtin_call(), sink_clobbers(), sink_common_stores_to_bb(), sra_modify_assign(), sra_modify_constructor_assign(), sra_modify_deferred_init(), 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_remove_slp_scalar_calls(), vect_transform_loop(), and vectorizable_simd_clone_call().
Get the operands of statement STMT.
References operands_scanner::build_ssa_operands(), gcc_assert, gimple_modified_p(), gimple_set_modified(), ssa_operands_active(), timevar_pop(), and timevar_push().
Referenced by update_stmt(), update_stmt_fn(), and update_stmt_if_modified().
Scan the immediate_use list for VAR making sure its linked properly. Return TRUE if there is a problem and emit an error message to F.
References count, error(), gcc_assert, gimple_modified_p(), ssa_use_operand_t::loc, ssa_use_operand_t::next, NULL, ssa_use_operand_t::prev, print_generic_expr(), print_gimple_stmt(), SSA_NAME_IMM_USE_NODE, ssa_use_operand_t::stmt, TDF_SLIM, TREE_CODE, ssa_use_operand_t::use, and USE_FROM_PTR.
Referenced by release_ssa_name_fn(), and verify_use().
Interface for external use.
References operands_scanner::verify_ssa_operands().
Referenced by verify_ssa().