GCC Middle and Back End API Reference
edge_def Struct Reference

#include <basic-block.h>

Collaboration diagram for edge_def:

Data Structures

union  edge_def_insns

Data Fields

basic_block src
basic_block dest
union edge_def::edge_def_insns insns
PTR aux
location_t goto_locus
unsigned int dest_idx
int flags
int probability
gcov_type count

Detailed Description

   Use gcov_type to hold basic block counters.  Should be at least
   64bit.  Although a counter cannot be negative, we use a signed
   type, because erroneous negative counts can be generated when the
   flow graph is manipulated by various optimizations.  A signed type
   makes those easy to detect.  
   Control flow edge information.  

Field Documentation

basic_block edge_def::dest

Referenced by add_branch_dependences(), add_exit_phis(), add_labels_and_missing_jumps(), adjust_phi_and_debug_stmts(), better_edge_p(), bound_index(), build_arrays(), build_new_reduction(), can_remove_branch_p(), cfg_layout_initialize(), check_forbidden_calls(), compute_always_reached(), compute_available(), compute_dominance_frontiers_1(), cond_exec_find_if_block(), cond_move_convert_if_block(), connect_traces(), contains_no_active_insn_p(), convert_jumps_to_returns(), convert_regs_1(), count_reg_usage(), coverage_compute_profile_id(), cprop_into_successor_phis(), create_fixup_graph(), create_loads_and_stores_for_name(), create_phi_for_local_result(), create_pre_exit(), create_single_entry_edge(), def_split_header_continue_p(), df_live_bb_local_compute(), disconnect_dest(), draw_cfg_node_succ_edges(), dump_live_info(), emit_barrier_after_bb(), emit_partition_copy(), emit_return_into_block(), fill_sons_in_loop(), find_active_insn_after(), find_clusters_1(), find_group(), find_max_flow(), find_traces_1_round(), fix_bb_placement(), fix_loop_placement(), flow_loops_cfg_dump(), follow_ssa_with_commutative_ops(), get_uncond_jump_length(), gimple_merge_blocks(), gimple_redirect_edge_and_branch_force(), gimple_split_block(), gimplify_build3(), graphite_create_new_loop_guard(), gsi_move_before(), insert_insn_start_basic_block(), insert_rtx_to_part_on_edge(), insert_store(), instrument_edges(), ipa_tm_create_version(), ipa_tm_scan_calls_transaction(), ipa_uninstrument_transaction(), link_roots(), lower_eh_constructs(), lv_flush_pending_stmts(), make_edges(), make_pass_df_finish(), make_pass_into_cfg_layout_mode(), make_single_succ_edge(), merge_if_block(), move_stmt_r(), next_discriminator_for_locus(), nontemporal_store_p(), one_pre_gcse_pass(), outgoing_edges_match(), outof_cfg_layout_mode(), output_eh_regions(), phi_alternatives_equal(), phi_contains_arg(), pp_cfg_jump(), prepare_shrink_wrap(), print_edge_list(), print_graphite_scop_statistics(), print_loop(), print_worklist(), process_incoming_edges(), prune_clobbered_mems(), rank(), read_profile_edge_counts(), record_const_or_copy(), record_loop_exits(), redirect_edge_var_map_destroy(), remove_ctrl_stmt_and_useless_edges(), reorder_loops(), rewrite_use_compare(), rtl_redirect_edge_and_branch_force(), rtl_split_edge(), scan_loop(), set_live_p(), set_var_live_on_entry(), simple_goto_p(), simple_mem_ref_in_stmt(), stmt_starts_bb_p(), thread_through_loop_header(), thread_through_normal_block(), tm_memopt_accumulate_memops(), translate_clast_for(), try_crossjump_to_edge(), union_groups(), unsplit_all_eh(), update_dominators_in_loop(), value_replacement(), vect_can_advance_ivs_p(), vect_create_cond_for_alias_checks(), verify_edge_list(), and verify_ssa().

unsigned int edge_def::dest_idx
     The index number corresponding to this edge in the edge vector
     dest->preds.  

Referenced by attempt_coalesce(), final_range_test_p(), simple_mem_ref_in_stmt(), uncprop_into_successor_phis(), and value_replacement().

int edge_def::flags

Referenced by add_labels_and_missing_jumps(), attempt_coalesce(), cached_make_edge(), can_remove_branch_p(), coalesce_cost_bb(), coalesce_cost_edge(), compute_alignments(), compute_hash_table(), compute_partial_antic_aux(), cond_exec_find_if_block(), contains_no_active_insn_p(), copy_bb(), count_reg_usage(), create_empty_if_region_on_edge(), debug_loops(), debug_var_infos_r(), df_live_bb_local_compute(), disconnect_dest(), dominated_by_forbidden(), draw_cfg_node_succ_edges(), dump_function_to_file(), dup_block_and_redirect(), estimated_unrolled_size(), expand_omp_for(), expand_transaction(), find_edge(), find_implicit_sets(), find_partition_fixes(), find_pdom(), find_traces_1_round(), fix_up_fall_thru_edges(), get_last_bb_insn(), get_tm_region_blocks(), get_uncond_jump_length(), gimple_expand_cfg(), gimple_merge_blocks(), gimple_purge_all_dead_eh_edges(), group_case_labels(), instrument_edges(), lower_eh_constructs(), lv_flush_pending_stmts(), make_pass_into_cfg_layout_mode(), mark_regno_dead(), maybe_register_def(), merge_blocks_move_successor_nojumps(), merge_if_block(), move_stmt_r(), nontemporal_store_p(), output_eh_regions(), predict_paths_for_bb(), print_exprs(), print_loops(), print_worklist(), rank(), record_const_or_copy(), remove_fallthru_edge(), reorder_basic_blocks(), replace_pseudos_in(), rtl_move_block_after(), scale_dominated_blocks_in_loop(), scan_loop(), sese_insert_phis_for_liveouts(), simple_goto_p(), simplify_cond_using_ranges(), simplify_using_outer_evolutions(), single_pred_cond_non_loop_exit(), stmt_starts_bb_p(), and update_dominators_in_loop().

location_t edge_def::goto_locus
     Location of any goto implicit in the edge.  

Referenced by fixup_reorder_chain(), gimplify_build3(), and pp_cfg_jump().

basic_block edge_def::src
     The two blocks at the ends of the edge.  

Referenced by add_forwarder_blocks(), analyze_evolution_in_loop(), bb_dom_dfs_in(), better_edge_p(), can_remove_branch_p(), compute_hash_table(), connect_traces(), convert_jumps_to_returns(), copy_bb(), create_empty_if_region_on_edge(), create_loop_fn(), create_pre_exit(), create_rdg_edges_for_scalar(), create_single_exit_edge(), df_live_bb_local_compute(), dfs_enumerate_from(), disconnect_dest(), draw_cfg_node_succ_edges(), dump_all_asserts(), dump_split_point(), dup_block_and_redirect(), duplicate_loop(), edge_probability_reliable_p(), emit_partition_copy(), tm_memop_hasher::equal(), estimated_unrolled_size(), expected_loop_iterations_unbounded(), find_cond_trap(), find_group(), find_implicit_sets(), find_invariants_to_move(), find_partition_fixes(), find_same_succ(), find_subloop_latch_edge_by_profile(), fixup_new_cold_bb(), fixup_reorder_chain(), flow_loop_nodes_find(), follow_ssa_with_commutative_ops(), gather_region_statistics(), get_loop_latch_edges(), get_uncond_jump_length(), gimple_make_forwarder_block(), gimple_purge_dead_eh_edges(), gimplify_build3(), graphite_create_new_loop_guard(), if_convertible_loop_p(), independent_of_stmt_p(), insert_insn_start_basic_block(), insert_rtx_to_part_on_edge(), instrument_edges(), is_use_properly_guarded(), link_roots(), live_worklist(), loop_latch_edge(), loop_niter_by_eval(), lower_eh_constructs(), make_pass_df_finish(), make_pass_into_cfg_layout_mode(), mark_last_stmt_necessary(), move_stmt_r(), first_mem_ref_loc_1::operator()(), param_change_prob(), phi_contains_arg(), pre_and_rev_post_order_compute(), predict_paths_for_bb(), print_edge_list(), process_incoming_edges(), redirect_edge_succ_nodup(), remove_forwarder_block(), replace_pseudos_in(), rewrite_use_compare(), rtl_force_nonfallthru(), same_close_phi_node(), same_phi_alternatives_1(), set_var_live_on_entry(), simple_goto_p(), simple_mem_ref_in_stmt(), simplify_using_outer_evolutions(), split_edge(), split_function(), thread_prologue_and_epilogue_insns(), thread_single_edge(), tidy_fallthru_edge(), union_groups(), unloop_loops(), unsplit_all_eh(), update_dominators_in_loop(), vect_update_ivs_after_vectorizer(), verify_dominators(), verify_edge_list(), and verify_ssa().


The documentation for this struct was generated from the following file: