GCC Middle and Back End API Reference
basic_block_def Struct Reference

#include <basic-block.h>

Collaboration diagram for basic_block_def:

Data Structures

union  basic_block_il_dependent

Data Fields

vec< edge, va_gc > * preds
vec< edge, va_gc > * succs
PTR aux
struct looploop_father
struct et_nodedom [2]
basic_block prev_bb
basic_block next_bb
union
basic_block_def::basic_block_il_dependent 
il
int flags
int index
gcov_type count
int frequency
int discriminator

Detailed Description

A basic block is a sequence of instructions with only one entry and
   only one exit.  If any one of the instructions are executed, they
   will all be executed, and in sequence from first to last.

   There may be COND_EXEC instructions in the basic block.  The
   COND_EXEC *instructions* will be executed -- but if the condition
   is false the conditionally executed *expressions* will of course
   not be executed.  We don't consider the conditionally executed
   expression (which might have side-effects) to be in a separate
   basic block because the program counter will always be at the same
   location after the COND_EXEC instruction, regardless of whether the
   condition is true or not.

   Basic blocks need not start with a label nor end with a jump insn.
   For example, a previous basic block may just "conditionally fall"
   into the succeeding basic block, and the last basic block need not
   end with a jump insn.  Block 0 is a descendant of the entry block.

   A basic block beginning with two labels cannot have notes between
   the labels.

   Data for jump tables are stored in jump_insns that occur in no
   basic block even though these insns can follow or precede insns in
   basic blocks.   
Basic block information indexed by block number.   

Field Documentation

PTR basic_block_def::aux

Referenced by add_bb_predicate_gimplified_stmts(), add_deps_for_risky_insns(), add_or_mark_expr(), add_scope_conflicts(), add_scope_conflicts_1(), alloc_aux_for_block(), apply_opt_in_copies(), bb_has_predicate(), bb_predicate(), bb_predicate_gimplified_stmts(), clear_aux_for_blocks(), compute_antinout_edge(), compute_available(), compute_bb_predicates(), compute_laterin(), compute_nearerout(), connect_traces(), copy_bb(), copy_cfg_body(), copy_edges_for_bb(), copy_loops(), copy_phis_for_bb(), create_basic_block_structure(), destroy_bb_vec_info(), df_worklist_dataflow_doublequeue(), duplicate_computed_gotos(), duplicate_loop_to_header_edge(), earliest_block_with_similiar_load(), estimate_function_body_sizes(), execute_cse_reciprocals(), execute_tm_memopt(), find_comparisons_in_bb(), find_group(), find_spanning_tree(), find_split_points(), find_traces(), find_traces_1_round(), fix_crossing_conditional_branches(), fix_loop_structure(), fix_up_crossing_landing_pad(), fix_up_fall_thru_edges(), fixup_fallthru_exit_predecessor(), fixup_reorder_chain(), force_one_exit_fallthru(), free_bb(), free_bb_predicate(), gbb_from_bb(), gimple_verify_flow_info(), independent_of_stmt_p(), infinite_empty_loop_p(), init_bb_predicate(), insert_backedge_copies(), insert_bb(), main_tree_if_conversion(), maybe_renumber_stmts_bb(), new_bb_vec_info(), new_gimple_bb(), nt_fini_block(), nt_init_block(), occ_new(), outof_cfg_layout_mode(), propagate_dereference_distances(), register_division_in(), regrename_analyze(), relink_block_chain(), reorder_loops(), replace_reciprocal(), rest_of_handle_reorder_blocks(), rest_of_handle_sms(), rotate_loop(), rtl_create_basic_block(), rtl_duplicate_bb(), set_bb_indices(), set_bb_predicate(), set_bb_predicate_gimplified_stmts(), should_duplicate_loop_header_p(), strlen_enter_block(), strlen_leave_block(), thread_prologue_and_epilogue_insns(), tm_memopt_compute_avin(), tm_memopt_free_sets(), union_groups(), update_ssa_across_abnormal_edges(), and vec_info_for_bb().

gcov_type basic_block_def::count

Referenced by account_profile_record(), adjust_cfg_counts(), build_cgraph_edges(), cgraph_redirect_edge_call_stmt_to_callee(), cgraph_update_edges_for_call_stmt_node(), check_bb_profile(), combine_predictions_for_bb(), compute_branch_probabilities(), compute_frequency_overlap(), compute_outgoing_frequencies(), construct_exit_block(), construct_init_block(), copy_bb(), counts_to_freqs(), create_block_for_threading(), create_cond_insert_point(), create_edge_and_update_destination_phis(), create_fixup_graph(), decrease_profile(), doloop_modify(), doloop_optimize(), dump_basic_block_info(), dump_bb_for_graph(), dump_bb_info(), dump_prediction(), dup_block_and_redirect(), duplicate_block(), dw2_build_landing_pads(), estimate_numbers_of_iterations_loop(), estimated_loop_iterations(), execute_fixup_cfg(), expand_call_inline(), expand_gimple_cond(), expand_gimple_tailcall(), expand_transaction(), expected_loop_iterations_unbounded(), find_many_sub_basic_blocks(), find_traces(), force_nonfallthru_and_redirect(), gen_emutls_addr(), gimple_account_profile_record(), gimple_divmod_fixed_value(), gimple_duplicate_sese_region(), gimple_ic(), gimple_ic_transform(), gimple_mod_pow2(), gimple_mod_subtract(), gimple_split_edge(), gimple_stringop_fixed_value(), hoist_edge_and_branch_if_true(), init_before_recovery(), input_bb(), ipa_profile_generate_summary(), is_inconsistent(), loopify(), lower_resx(), make_forwarder_block(), make_single_succ_edge(), maybe_hot_bb_p(), mf_build_check_statement_for(), migrate_btr_defs(), output_bb(), print_global_statistics(), print_graphite_scop_statistics(), probably_never_executed_bb_p(), propagate_freq(), purge_dead_edges(), push_to_next_round_p(), rank(), rebuild_cgraph_edges(), remove_dead_stmt(), replace_block_by(), report_unroll_peel(), rtl_account_profile_record(), scale_bbs_frequencies_gcov_type(), scale_bbs_frequencies_int(), scale_loop_profile(), set_bb_counts(), set_prologue_iterations(), shrink_wrap_one_built_in_call(), sjlj_emit_dispatch_table(), slpeel_add_loop_guard(), slpeel_tree_peel_loop_to_edge(), sms_schedule(), split_block(), split_edge(), split_function(), ssa_redirect_edges(), thread_single_edge(), tree_function_versioning(), tree_transform_and_unroll_loop(), try_crossjump_to_edge(), try_forward_edges(), try_redirect_by_replacing_jump(), try_unroll_loop_completely(), unloop_loops(), unroll_loop_runtime_iterations(), update_bb_profile_for_threading(), and verify_flow_info().

int basic_block_def::discriminator
int basic_block_def::frequency

Referenced by account_profile_record(), average_num_loop_insns(), basic_block_freq(), bb_to_key(), better_p(), check_bb_profile(), coalesce_cost_bb(), compute_alignments(), compute_call_stmt_bb_frequency(), compute_frequency_overlap(), consider_split(), construct_exit_block(), construct_init_block(), copy_bb(), copy_bb_p(), counts_to_freqs(), create_block_for_threading(), decrease_profile(), doloop_modify(), dump_basic_block_info(), dump_bb_for_graph(), dump_bb_info(), dup_block_and_redirect(), duplicate_block(), duplicate_loop_to_header_edge(), estimate_bb_frequencies(), expand_gimple_cond(), expand_gimple_tailcall(), expand_transaction(), expensive_function_p(), find_best_predecessor(), find_many_sub_basic_blocks(), find_trace(), find_traces(), find_traces_1_round(), force_nonfallthru_and_redirect(), gen_inbound_check(), gimple_account_profile_record(), gimple_duplicate_sese_region(), gimple_split_edge(), init_before_recovery(), input_bb(), loop_compare_func(), loopify(), make_forwarder_block(), mark_all_loops_for_removal(), mark_loops_for_removal(), maybe_hot_bb_p(), output_bb(), param_change_prob(), propagate_freq(), push_to_next_round_p(), rank(), relink_block_chain(), replace_block_by(), rtl_account_profile_record(), scale_bbs_frequencies_gcov_type(), scale_bbs_frequencies_int(), scale_loop_profile(), select_best_block(), set_prologue_iterations(), slpeel_tree_peel_loop_to_edge(), split_block(), split_edge(), split_function(), ssa_redirect_edges(), tail_duplicate(), thread_single_edge(), tree_transform_and_unroll_loop(), try_crossjump_to_edge(), try_forward_edges(), unloop_loops(), update_bb_profile_for_threading(), and verify_flow_info().

int basic_block_def::index

Referenced by _eligible_successor_edge_p(), _succ_iter_cond(), add_bb_to_cluster(), add_btr_def(), add_btr_to_live_range(), add_control_edge(), add_exit_phis_var(), add_forwarder_blocks(), add_ranges_and_copies(), add_to_speculative_block(), adjust_cfg_counts(), advance_target_bb(), all_non_dominated_preds_marked_p(), apply_clusters(), associate_equivalences_with_edges(), augment_live_range(), bb_in_loop_p(), bb_seen_p(), bb_to_key(), bb_visited_trace(), better_edge(), better_edge_p(), better_p(), bitmap_intersection_of_preds(), bitmap_intersection_of_succs(), bitmap_union_of_preds(), bitmap_union_of_succs(), branch_prob(), break_superblocks(), btr_def_live_range(), build_insn_chain(), build_scop_bbs_1(), build_store_vectors(), bypass_block(), cached_make_edge(), calc_dfs_tree(), calc_dfs_tree_nonrec(), calc_idoms(), calculate_bb_reg_pressure(), calculate_live_on_exit(), calculate_loop_reg_pressure(), ccp_visit_phi_node(), cfg_blocks_add(), cfg_blocks_get(), cfg_layout_merge_blocks(), cfg_layout_redirect_edge_and_branch(), change_loop(), check_forbidden_calls(), check_live_1(), check_va_list_escapes(), cleanup_control_expr_graph(), cleanup_control_flow_bb(), cleanup_dead_labels(), cleanup_empty_eh_unsplit(), clear_btr_from_live_range(), clear_control_dependence_bitmap(), cmp_bb_postorder(), code_motion_path_driver(), code_motion_process_successors(), collect_bb2reg(), combine_predictions_for_bb(), combine_predictions_for_insn(), compact_blocks(), compare_case_labels(), compare_ops(), compensate_edge(), compute_alignments(), compute_antic(), compute_antic_aux(), compute_antinout_edge(), compute_avail(), compute_available(), compute_branch_probabilities(), compute_code_hoist_vbeinout(), compute_cprop_data(), compute_dom_prob_ps(), compute_dominance_frontiers_1(), compute_earliest(), compute_farthest(), compute_hash_table_work(), compute_insert_delete(), compute_laterin(), compute_live_loop_exits(), compute_nearerout(), compute_partial_antic_aux(), compute_pre_data(), compute_rev_insert_delete(), compute_trg_info(), cond_exec_find_if_block(), connect_better_edge_p(), connect_traces(), consider_split(), convert_jumps_to_returns(), convert_regs_1(), copy_bb(), copy_bb_p(), copy_cfg_body(), copy_edges_for_bb(), copy_loop_headers(), copy_loops(), copyprop_hardreg_forward(), coverage_compute_cfg_checksum(), create_add_on_incoming_edge(), create_basic_block_structure(), create_bb(), create_block_for_bookkeeping(), create_check_block_twin(), create_expression_by_pieces(), create_fixup_graph(), cse_extended_basic_block(), cse_find_path(), dce_process_block(), debug_bitmap_sets_for(), debug_candidate(), debug_dominance_info(), debug_dominance_tree_1(), decide_unrolling_and_peeling(), decompose_multiword_subregs(), defer_or_phi_translate_block(), deps_ok_for_redirect_from_bb_to_bb(), determine_invariantness_stmt(), df_bb_refs_collect(), df_bb_replace(), df_bb_verify(), df_chain_bb_dump(), df_chain_create_bb(), df_chain_remove_problem(), df_clear_bb_dirty(), df_compact_blocks(), df_compute_cfg_image(), df_get_bb_dirty(), df_insn_change_bb(), df_install_ref_incremental(), df_install_refs(), df_live_bottom_dump(), df_live_confluence_n(), df_live_set_all_dirty(), df_live_top_dump(), df_live_verify_solution_end(), df_live_verify_solution_start(), df_live_verify_transfer_functions(), df_lr_bottom_dump(), df_lr_confluence_0(), df_lr_confluence_n(), df_lr_top_dump(), df_lr_verify_solution_end(), df_lr_verify_solution_start(), df_lr_verify_transfer_functions(), df_md_bottom_dump(), df_md_confluence_0(), df_md_confluence_n(), df_md_local_compute(), df_md_simulate_artificial_defs_at_top(), df_md_top_dump(), df_print_bb_index(), df_rd_bottom_dump(), df_rd_confluence_n(), df_rd_simulate_artificial_defs_at_top(), df_rd_top_dump(), df_refs_add_to_chains(), df_reorganize_refs_by_insn_bb(), df_scan_alloc(), df_scan_blocks(), df_scan_free_bb_info(), df_scan_start_block(), df_set_bb_dirty(), df_set_blocks(), df_simulate_finalize_backwards(), df_simulate_initialize_backwards(), df_simulate_initialize_forwards(), df_word_lr_alloc(), df_word_lr_bottom_dump(), df_word_lr_confluence_n(), df_word_lr_top_dump(), df_worklist_propagate_backward(), df_worklist_propagate_forward(), dfs_find_deadend(), discover_loop(), do_invalidate(), dom_opt_enter_block(), dot_all_scops_1(), draw_cfg_node(), draw_cfg_node_succ_edges(), draw_cfg_nodes_no_loops(), dse_confluence_0(), dse_confluence_n(), dse_optimize_stmt(), dse_step1(), dse_step3(), dse_step3_scan(), dse_step4(), dse_step5_nospill(), dse_step6(), dump_asserts_for(), dump_basic_block_info(), dump_bb_info(), dump_dataflow_sets(), dump_dereferences_table(), dump_edge_info(), dump_gimple_bb_header(), dump_hwloops(), dump_insn_rtx_1(), dump_live_info(), dump_new_block_header(), dump_omp_region(), dump_recorded_exit(), dump_region_dot(), dump_split_point(), dump_tm_memopt_sets(), dup_block_and_redirect(), duplicate_computed_gotos(), earliest_block_with_similiar_load(), ebb_add_block(), ebb_fix_recovery_cfg(), eliminate(), eliminate_partially_redundant_load(), eliminate_tail_call(), eliminate_unnecessary_stmts(), emit_moves(), bb_pbb_hasher::equal(), estimate_function_body_sizes(), estimate_loops(), execute_split_functions(), expand_gimple_basic_block(), expunge_block(), extend_rgns(), fast_dce(), fill_always_executed_in(), fill_always_executed_in_1(), find_assert_locations(), find_cond_trap(), find_costs_and_classes(), find_duplicate(), find_ebb_boundaries(), find_if_case_1(), find_if_case_2(), find_implicit_sets(), find_many_sub_basic_blocks(), find_moveable_pseudos(), find_obviously_necessary_stmts(), find_place_for_bookkeeping(), find_same_succ_bb(), find_simple_exit(), find_single_block_region(), find_spanning_tree(), find_split_points(), find_subloop_latch_edge_by_ivs(), find_subloop_latch_edge_by_profile(), find_trace(), find_traces(), find_traces_1_round(), find_uses_to_rename_use(), fix_bb_placements(), fix_loop_structure(), flow_dfs_compute_reverse_add_bb(), flow_dfs_compute_reverse_execute(), flow_loop_dump(), flow_loops_cfg_dump(), flow_loops_find(), form_loop_tree(), forward_edge_to_pdom(), generate_bookkeeping_insn(), get_bb_copy(), get_bb_original(), get_loop_body_in_bfs_order(), get_loop_body_in_if_conv_order(), get_loop_hot_path(), get_loops_exits(), get_rank(), get_tm_region_blocks(), gimple_dump_bb(), gimple_dump_bb_for_graph(), gimple_equal_p(), gimple_merge_blocks(), gimple_verify_flow_info(), haifa_find_rgns(), bb_pbb_hasher::hash(), redirection_data::hash(), hoist_adjacent_loads(), hoist_code(), if_convertible_bb_p(), ignore_bb_p(), init_before_recovery(), init_rename_info(), init_seqno_1(), initialize_uninitialized_regs(), insert_insn_end_basic_block(), insert_insn_start_basic_block(), insert_into_preds_of_block(), insert_part_to_rtx_on_edge(), insert_partition_copy_on_edge(), insert_rtx_to_part_on_edge(), insert_store(), insert_updated_phi_nodes_for(), insert_value_copy_on_edge(), instantiate_scev(), instrument_edges(), inverted_post_order_compute(), ipa_tm_diagnose_transaction(), ipa_tm_note_irrevocable(), ipa_tm_propagate_irr(), ipa_tm_scan_irr_blocks(), ipa_tm_transform_calls(), ipa_tm_transform_calls_1(), ipa_tm_transform_transaction(), ira_emit(), ira_loop_tree_body_rev_postorder(), ira_print_disposition(), ira_print_expanded_allocno(), is_edge_inconsistent(), is_inconsistent(), label_for_bb(), live_on_edge(), live_on_entry(), live_on_exit(), load_killed_in_block_p(), loe_visit_block(), log_op_type(), loop_carried_phi(), lra_inheritance(), main_block_label(), make_edges(), make_live_on_entry(), make_new_block(), make_preds_opaque(), mark_all_loops_for_removal(), mark_artificial_uses(), mark_basic_block_deleted(), mark_bb_seen(), mark_bb_visited(), mark_block_for_update(), mark_control_dependent_edges_necessary(), mark_def_interesting(), mark_def_sites(), mark_dfs_back_edges(), mark_last_stmt_necessary(), mark_loops_for_removal(), mark_parm_dereference(), mark_phi_for_rewrite(), mark_reachable_blocks(), mark_threaded_blocks(), mark_use_interesting(), maybe_lower_iteration_bound(), maybe_optimize_range_tests(), merge_blocks_move(), merge_blocks_move_predecessor_nojumps(), merge_blocks_move_successor_nojumps(), merge_in_block(), mf_xform_statements(), migrate_btr_def(), move_block_after_check(), move_block_to_fn(), move_btr_def(), move_cond_jump(), nearest_common_dominator_of_uses(), new_btr_user(), new_tree_live_info(), noce_find_if_block(), one_store_motion_pass(), optimize_mode_switching(), optimize_stmt(), outgoing_edges_match(), output_bb(), output_cfg(), output_location(), parallelize_loops(), param_change_prob(), pbb_index(), peel_loops_completely(), phi_rank(), phi_trans_add(), phi_trans_lookup(), post_order_compute(), pp_cfg_jump(), pre_and_rev_post_order_compute(), pre_delete(), pre_edge_insert(), pre_expr_reaches_here_p_work(), pred_blocks_visited_p(), predict_loops(), predict_paths_for_bb(), prepare_def_site_for(), print_allocno_conflicts(), print_allocno_costs(), print_global_statistics(), print_loop(), print_loop_title(), print_loops_bb(), print_pred_bbs(), print_rtx(), print_succ_bbs(), process_bb_lives(), process_ssa_edge_worklist(), propagate_deps(), propagate_dereference_distances(), propagate_freq(), propagate_necessity(), prune_expressions(), prune_unused_phi_nodes(), purge_dead_edges(), reachable_at_most_once(), read_profile_edge_counts(), record_edge_info(), redirect_branch_edge(), regrename_analyze(), regstat_bb_compute_ri(), regstat_compute_calls_crossed(), regstat_compute_ri(), relink_block_chain(), remove_bb(), remove_edge_and_dominated_blocks(), remove_forwarder_block(), remove_path(), remove_reachable_equiv_notes(), reorder_loops(), replace_phi_edge_with_variable(), replace_store_insn(), restore_bb_notes(), rewrite_debug_stmt_uses(), rewrite_enter_block(), rewrite_into_ssa(), rewrite_update_enter_block(), rewrite_update_phi_arguments(), rgn_add_block(), rgn_make_new_region_out_of_new_block(), rotate_loop(), rtl_delete_block(), rtl_dump_bb(), rtl_merge_blocks(), rtl_verify_bb_insn_chain(), rtl_verify_bb_insns(), rtl_verify_bb_pointers(), rtl_verify_edges(), rtl_verify_fallthru(), same_succ_flush_bb(), scan_function(), sched_create_recovery_block(), sched_rgn_local_init(), schedule_ebb(), schedule_region(), sel_dump_cfg_2(), sel_dump_cfg_edge(), sel_sched_region_1(), set_bb_copy(), set_bb_original(), set_control_dependence_map_bit(), set_def_block(), set_livein_block(), set_scalar_evolution(), set_var_live_on_entry(), should_hoist_expr_to_dom(), simplify_gimple_switch_label_vec(), simulate_block(), single_def_use_enter_block(), sink_code_in_bb(), split_all_insns(), split_bbs_on_noreturn_calls(), split_function(), ssa_redirect_edges(), tail_duplicate(), thread_across_edge(), thread_around_empty_block(), thread_prologue_and_epilogue_insns(), thread_single_edge(), thread_through_all_blocks(), tm_memopt_compute_antic(), tm_memopt_compute_available(), tm_region_init(), tm_region_init_1(), transform_statements(), tree_lower_complex(), tree_ssa_dominator_optimize(), tree_ssa_iv_optimize_loop(), try_crossjump_bb(), try_crossjump_to_edge(), try_forward_edges(), try_optimize_cfg(), try_redirect_by_replacing_jump(), unify_moves(), unlink_bb_notes(), unsplit_eh(), update_bb_profile_for_threading(), update_dominators_in_loop(), update_equiv_regs(), update_ssa(), va_list_counter_op(), va_list_ptr_read(), value_replacement(), verify_def(), verify_dominators(), verify_edge_list(), verify_eh_dispatch_edge(), verify_eh_edges(), verify_flow_info(), verify_hot_cold_block_grouping(), verify_live_on_entry(), verify_loop_structure(), verify_non_ssa_vars(), verify_phi_args(), verify_ssa(), verify_use(), vn_phi_compute_hash(), vrp_visit_phi_node(), vt_find_locations(), and word_dce_process_block().

struct loop* basic_block_def::loop_father

Referenced by _eligible_successor_edge_p(), add_autoinc_candidates(), add_bb_to_loop(), add_dependency(), add_exit_phi(), add_loop(), analyze_memory_references(), analyze_scalar_evolution_1(), build_scops(), build_sese_loop_nests(), bypass_block(), calculate_loop_reg_pressure(), cfg_layout_can_merge_blocks_p(), check_loop_closed_ssa_use(), check_simple_exit(), cleanup_empty_eh_merge_phis(), compare_bb_depths(), compute_alignments(), compute_live_loop_exits(), construct_exit_block(), construct_init_block(), copy_bbs(), copy_cfg_body(), copy_loops(), copy_prop_visit_phi_node(), create_cond_insert_point(), create_single_entry_edge(), def_split_header_continue_p(), delete_basic_block(), determine_biv_step(), determine_invariantness_stmt(), determine_max_movement(), do_reload(), draw_cfg_nodes_for_loop(), duplicate_block(), duplicate_loop_to_header_edge(), dw2_build_landing_pads(), edge_initial_value_for_loop_phi(), execute_sm_if_changed(), expand_complex_div_wide(), expand_gimple_cond(), expand_omp_atomic_pipeline(), expand_omp_for_generic(), expand_omp_for_init_counts(), expand_omp_for_static_chunk(), expand_omp_for_static_nochunk(), expand_omp_simd(), expand_parallel_call(), expand_simple_operations(), expand_thunk(), expand_transaction(), extract_omp_for_update_vars(), fill_always_executed_in_1(), find_exits(), find_if_case_2(), find_same_succ_bb(), find_uses_to_rename_use(), fix_bb_placement(), fix_bb_placements(), fix_loop_placement(), fix_loop_structure(), flow_bb_inside_loop_p(), flow_loop_nodes_find(), flow_loops_find(), form_loop_tree(), forwarder_block_p(), gather_memory_references(), get_all_loop_exits(), get_bb_type(), get_references_in_stmt(), gimple_can_merge_blocks_p(), gimple_duplicate_sese_region(), gimple_merge_blocks(), graphite_copy_stmts_from_block(), graphite_create_new_loop(), has_preds_from_loop(), if_convertible_gimple_assign_stmt_p(), if_region_set_false_region(), inhibit_phi_insertion(), init_lowered_empty_function(), initial_value_for_loop_phi(), inner_loop_header_p(), input_cfg(), insert_into_preds_of_block(), instantiate_scev_name(), is_loop_header_bb_p(), just_once_each_iteration_p(), loop_containing_stmt(), loop_optimizer_finalize(), loop_to_lst(), loopify(), lower_resx(), make_forwarder_block(), mark_bivs(), mark_irreducible_loops(), mark_loop_exit_edges(), merge_blocks(), merge_blocks_move(), mf_build_check_statement_for(), move_block_to_fn(), move_computations_stmt(), move_sese_region_to_fn(), new_loop_vec_info(), outermost_invariant_loop(), outermost_invariant_loop_for_expr(), outermost_loop_in_sese(), phi_arg_in_outermost_loop(), phi_rank(), print_global_statistics(), print_graphite_scop_statistics(), print_loop(), print_loops(), process_use(), remove_bb(), remove_bb_from_loops(), remove_path(), rename_variables_in_bb(), rescan_loop_exit(), rewrite_all_phi_nodes_with_iv(), rewrite_close_phi_out_of_ssa(), rewrite_phi_out_of_ssa(), rtl_can_merge_blocks(), scev_const_prop(), scopdet_basic_block_info(), sel_dump_cfg_2(), set_level(), single_pred_cond_non_loop_exit(), sjlj_emit_dispatch_table(), slsr_process_phi(), sort_bbs_in_loop_postorder_cmp(), split_block(), split_edge(), statement_sink_location(), stmt_in_inner_loop_p(), stmt_simple_for_scop_p(), tail_duplicate(), thread_block(), thread_through_loop_header(), tree_forwarder_block_p(), tree_unswitch_single_loop(), unloop_loops(), vect_create_epilog_for_reduction(), vect_get_single_scalar_iteration_cost(), vectorizable_reduction(), verify_flow_info(), and verify_loop_structure().

basic_block basic_block_def::next_bb

Referenced by advance_target_bb(), bb_next_bb(), branch_prob(), bypass_conditional_jumps(), can_fallthru(), cfg_layout_delete_block(), compute_code_hoist_vbeinout(), cond_exec_find_if_block(), construct_init_block(), delete_unreachable_blocks_update_callgraph(), distribute_links(), dump_bb_info(), dump_implicit_edges(), duplicate_computed_gotos(), dw2_build_landing_pads(), eliminate_partially_redundant_loads(), emit_moves(), expand_gimple_basic_block(), expand_gimple_cond(), expand_phi_nodes(), find_fallthru_edge_from(), find_if_case_1(), find_many_sub_basic_blocks(), find_single_block_region(), find_traces_1_round(), fix_jump_move(), fixup_fallthru_exit_predecessor(), fixup_reorder_chain(), gimple_expand_cfg(), in_fallthru_bb_p(), input_cfg(), last_bb_in_partition(), link_block(), lra_inheritance(), make_edges(), merge_blocks_move(), mf_xform_statements(), move_block_after_check(), move_cond_jump(), one_cprop_pass(), outof_cfg_layout_mode(), output_cfg(), post_order_compute(), relink_block_chain(), remove_fake_edges(), reorder_loops(), rest_of_handle_reorder_blocks(), rest_of_handle_sms(), restore_bb_notes(), rtl_can_merge_blocks(), rtl_tidy_fallthru_edge(), rtl_verify_bb_layout(), rtl_verify_fallthru(), schedule_ebb(), schedule_ebbs(), sel_dump_cfg_edge(), sjlj_emit_dispatch_table(), skip_insns_after_block(), thread_prologue_and_epilogue_insns(), tidy_fallthru_edges(), tree_estimate_probability_bb(), try_combine(), try_optimize_cfg(), try_simplify_condjump(), unlink_bb_notes(), unlink_block(), verify_edge_list(), verify_flow_info(), and vt_initialize().

vec<edge, va_gc>* basic_block_def::preds

Referenced by account_profile_record(), add_bb_to_cluster(), add_bb_to_loop(), add_exit_phi(), add_forwarder_blocks(), add_scope_conflicts_1(), adjust_cfg_counts(), all_non_dominated_preds_marked_p(), augment_live_range(), bb_has_abnormal_call_pred(), bb_has_well_behaved_predecessors(), bb_in_region(), bb_loop_header_p(), bb_to_key(), bitmap_intersection_of_preds(), bitmap_union_of_preds(), branch_prob(), bypass_block(), calc_dfs_tree_nonrec(), calc_idoms(), canon_loop(), cfg_blocks_add(), check_all_array_refs(), check_bb_profile(), cleanup_empty_eh(), cleanup_empty_eh_merge_phis(), clear_edges(), coalesce_cost_edge(), coalesce_partitions(), combine_blocks(), compute_alignments(), compute_antic(), compute_antic_aux(), compute_antinout_edge(), compute_bb_predicates(), compute_branch_probabilities(), compute_dominance_frontiers_1(), compute_laterin(), compute_live_loop_exits(), compute_nearerout(), compute_partial_antic_aux(), cond_exec_find_if_block(), connect_dest(), connect_traces(), consider_split(), convert_jumps_to_returns(), convert_regs_1(), copy_bb_p(), copy_cfg_body(), copy_phis_for_bb(), create_loop_tree_node_allocnos(), create_loop_tree_nodes(), create_phi_basis(), create_phi_node(), create_preheader(), create_single_exit_edge(), cse_cc_succs(), delete_basic_block(), deps_ok_for_redirect_from_bb_to_bb(), determine_bb_domination_status(), determine_dominators_for_sons(), df_print_bb_index(), df_worklist_propagate_backward(), df_worklist_propagate_forward(), dfs_enumerate_from(), disconnect_dest(), discover_loop(), do_partial_partial_insertion(), do_regular_insertion(), doloop_modify(), dump_basic_block_info(), dump_bb_info(), dup_block_and_redirect(), duplicate_computed_gotos(), eliminate_partially_redundant_load(), entered_from_non_parent_p(), expand_phi_nodes(), expected_loop_iterations_unbounded(), fast_dce(), find_assert_locations(), find_best_predecessor(), find_block_for_bookkeeping(), find_cond_trap(), find_edge(), find_fallthru_edge_from(), find_jump_block(), find_many_sub_basic_blocks(), find_path(), find_phi_replacement_condition(), find_rarely_executed_basic_blocks_and_crossing_edges(), find_single_entry_edge(), find_single_exit_edge(), find_split_points(), find_tail_calls(), find_traces_1_round(), fix_bb_placements(), fix_up_crossing_landing_pad(), fixup_reorder_chain(), flow_dfs_compute_reverse_execute(), flow_loop_nodes_find(), flow_loops_find(), form_subloop(), forward_edge_to_pdom(), free_all_edge_infos(), get_loop_latch_edges(), gimple_make_forwarder_block(), haifa_find_rgns(), has_nonexceptional_receiver(), has_preds_from_loop(), has_preds_in_current_region_p(), identify_jump_threads(), if_convertible_bb_p(), independent_of_stmt_p(), input_phi(), insert_into_preds_of_block(), insert_phi_nodes_for(), insert_store(), insert_updated_phi_nodes_for(), instrument_func_exit(), inverted_post_order_compute(), ira_loop_edge_freq(), ira_loop_tree_body_rev_postorder(), is_cfg_nonregular(), is_inconsistent(), is_loop_header_bb_p(), iterate_fix_dominators(), loe_visit_block(), loop_edge_to_cancel(), loop_exits_to_bb_p(), loop_preheader_edge(), lower_emutls_function_body(), lower_resx(), make_forwarder_block(), make_preds_opaque(), mark_basic_block_deleted(), mark_exit_edges(), mark_reachable_blocks(), mark_threaded_blocks(), merge_blocks(), merge_blocks_move(), merge_if_block(), move_block_to_fn(), move_sese_region_to_fn(), moving_insn_creates_bookkeeping_block_p(), next_block_for_reg(), nt_init_block(), optimize_clobbers(), optimize_mode_switching(), optimize_unreachable(), phi_result_unknown_predicate(), phiprop_insert_phi(), pre_expr_reaches_here_p_work(), pred_blocks_visited_p(), predict_extra_loop_exits(), predict_paths_for_bb(), prepare_block_for_update(), print_pred_bbs(), propagate_dereference_distances(), propagate_freq(), prune_bbs_to_update_dominators(), prune_expressions(), prune_unused_phi_nodes(), reachable_at_most_once(), recompute_dominator(), redirect_eh_edge_1(), reg_to_stack(), regrename_analyze(), remap_ssa_name(), remove_bb_from_loops(), remove_edge_and_dominated_blocks(), remove_exit_barrier(), remove_fake_predecessors(), remove_forwarder_block(), remove_forwarder_block_with_phi(), rename_variables_in_bb(), replace_block_by(), reserve_phi_args_for_new_edge(), rtl_split_edge(), scale_loop_profile(), schedule_ebb(), should_hoist_expr_to_dom(), single_incoming_edge_ignoring_loop_edges(), sink_clobbers(), slpeel_update_phi_nodes_for_guard2(), slpeel_verify_cfg_after_peeling(), split_function(), tail_duplicate(), thread_block(), thread_prologue_and_epilogue_insns(), thread_through_all_blocks(), thread_through_loop_header(), tm_memopt_compute_antic(), tm_memopt_compute_avin(), tree_estimate_probability_bb(), tree_forwarder_block_p(), tree_ssa_phiopt_worker(), try_crossjump_bb(), try_crossjump_to_edge(), try_head_merge_bb(), try_optimize_cfg(), unify_moves(), unmark_exit_edges(), vect_analyze_loop_form(), vect_loop_versioning(), vect_transform_loop(), verify_edge_list(), verify_flow_info(), verify_loop_closed_ssa(), verify_loop_structure(), verify_non_ssa_vars(), verify_phi_args(), verify_ssa(), vt_find_locations(), and walk_dominator_tree().

vec<edge, va_gc>* basic_block_def::succs

Referenced by _eligible_successor_edge_p(), _succ_iter_start(), account_profile_record(), add_bb_to_loop(), add_noreturn_fake_exit_edges(), add_phi_args_after_copy_bb(), add_phi_args_after_copy_edge(), add_ranges_and_copies(), add_reg_crossing_jump_notes(), adjust_cfg_counts(), alloc_aux_for_edges(), assign_discriminators(), bb_next_bb(), bb_with_exit_edge_p(), begin_move_insn(), bitmap_intersection_of_succs(), bitmap_union_of_succs(), block_fallthru(), block_has_only_trap(), block_jumps_and_fallthru_p(), block_valid_for_bookkeeping_p(), branch_prob(), calc_dfs_tree(), calc_dfs_tree_nonrec(), calc_idoms(), calculate_live_on_exit(), can_fallthru(), can_remove_branch_p(), canon_loop(), cfg_layout_can_merge_blocks_p(), cfg_layout_redirect_edge_and_branch(), check_all_empty_except_final(), check_bb_profile(), cleanup_control_expr_graph(), cleanup_control_flow_bb(), cleanup_empty_eh(), clear_aux_for_edges(), clear_edges(), code_motion_process_successors(), collect_switch_conv_info(), combine_blocks(), combine_predictions_for_bb(), commit_edge_insertions(), compensate_edge(), compensate_edges(), compute_antic_aux(), compute_available(), compute_branch_probabilities(), compute_control_dep_chain(), compute_dom_prob_ps(), compute_laterin(), compute_live_after_bb(), compute_nearerout(), compute_outgoing_frequencies(), compute_partial_antic_aux(), compute_trg_info(), cond_exec_find_if_block(), connect_src(), connect_traces(), convert_control_dep_chain_into_preds(), convert_regs_2(), copy_bb_p(), copy_bbs(), copy_edges_for_bb(), correct_negative_edge_counts(), could_fall_through(), coverage_compute_cfg_checksum(), cprop_into_successor_phis(), cprop_jump(), create_block_for_threading(), create_edge_list(), create_fixup_graph(), create_if_region_on_edge(), cse_cc_succs(), cse_find_path(), dce_process_block(), decrease_profile(), delete_basic_block(), df_compute_cfg_image(), df_print_bb_index(), df_worklist_propagate_backward(), df_worklist_propagate_forward(), dfs_enumerate_from(), dfs_find_deadend(), disconnect_src(), discover_iteration_bound_by_body_walk(), discover_loop(), do_partial_partial_insertion(), dom_opt_leave_block(), dot_all_scops_1(), draw_cfg_node_succ_edges(), dse_step1(), dse_step3(), dump_basic_block_info(), dump_bb_info(), dump_cfg_stats(), dump_implicit_edges(), dump_prediction(), dump_region_dot(), duplicate_block(), duplicate_loop_to_header_edge(), ebb_compute_jump_reg_dependencies(), emit_case_dispatch_table(), emit_moves(), estimate_bb_frequencies(), estimate_function_body_sizes(), execute_fixup_cfg(), expand_call_tm(), expand_complex_move(), expand_gimple_basic_block(), expand_gimple_tailcall(), expand_omp_for(), expand_omp_for_generic(), expand_omp_for_static_chunk(), expand_omp_for_static_nochunk(), expand_omp_sections(), expand_omp_simd(), expand_transaction(), fill_always_executed_in_1(), find_assert_locations(), find_best_successor(), find_block_for_bookkeeping(), find_comparisons_in_bb(), find_conditional_asserts(), find_def_preds(), find_edge(), find_fallthru_edge_from(), find_if_header(), find_implicit_sets(), find_interesting_uses(), find_obviously_necessary_stmts(), find_phi_replacement_condition(), find_rarely_executed_basic_blocks_and_crossing_edges(), find_same_succ_bb(), find_single_block_region(), find_split_points(), find_traces_1_round(), find_unreachable_blocks(), find_uses_to_rename_bb(), finish_eh_generation(), fix_bb_placement(), fix_bb_placements(), fix_crossing_conditional_branches(), fix_crossing_unconditional_branches(), fix_up_fall_thru_edges(), fixup_abnormal_edges(), fixup_noreturn_call(), fixup_partition_crossing(), fixup_reorder_chain(), flow_find_head_matching_sequence(), flow_loops_cfg_dump(), force_nonfallthru_and_redirect(), get_all_loop_exits(), get_exec_counts(), get_false_edge_from_guard_bb(), get_live_on_other_edges(), get_loop_body_in_bfs_order(), get_loop_hot_path(), get_outgoing_edge_probs(), get_tm_region_blocks(), get_true_edge_from_guard_bb(), get_ws_args_for(), gimple_expand_cfg(), gimple_ic(), gimple_predict_edge(), gimple_purge_dead_abnormal_call_edges(), gimple_purge_dead_eh_edges(), gimple_split_block(), gimple_try_redirect_by_replacing_jump(), gimple_verify_flow_info(), gsi_commit_edge_inserts(), haifa_find_rgns(), has_abnormal_outgoing_edge_p(), have_eh_succ_edges(), if_convertible_bb_p(), if_convertible_loop_p(), insert_edge_copies_seq(), insert_stmt_after(), instrument_edges(), instrument_expr(), inverted_post_order_compute(), ipa_tm_propagate_irr(), ipa_tm_scan_irr_blocks(), ipa_tm_transform_calls(), ira_emit(), is_inconsistent(), loop_edge_to_cancel(), loop_exits_from_bb_p(), loopify(), lower_eh_dispatch(), lower_resx(), lra_inheritance(), make_edges(), mark_dfs_back_edges(), mark_irreducible_loops(), mark_loop_exit_edges(), may_unswitch_on(), maybe_lower_iteration_bound(), maybe_move_debug_stmts_to_successors(), maybe_optimize_range_tests(), maybe_register_def(), merge_blocks(), merge_blocks_move(), merge_if_block(), migrate_btr_def(), move_block_after_check(), move_block_to_fn(), move_sese_region_to_fn(), move_succs(), moving_insn_creates_bookkeeping_block_p(), need_fake_edge_p(), next_block_for_reg(), optimize_stack_restore(), outgoing_edges_match(), output_cfg(), peep2_attempt(), post_order_compute(), pre_and_rev_post_order_compute(), predict_extra_loop_exits(), predict_iv_comparison(), predict_loops(), predict_paths_for_bb(), predict_paths_leading_to_edge(), print_global_statistics(), print_graphite_scop_statistics(), print_loop_title(), print_succ_bbs(), process_assert_insertions_for(), propagate_deps(), propagate_dereference_distances(), propagate_freq(), propagate_rhs_into_lhs(), prune_bbs(), purge_dead_edges(), purge_dead_tablejump_edges(), read_profile_edge_counts(), recognize_if_then_else(), recompute_dominator(), record_edge_info(), record_loop_exits(), regrename_analyze(), reload_cse_simplify(), remove_bb_from_loops(), remove_branch(), remove_ctrl_stmt_and_useless_edges(), remove_dead_stmt(), remove_edge_and_dominated_blocks(), remove_path(), remove_phi_nodes_and_edges_for_unreachable_block(), remove_reachable_equiv_notes(), remove_unused_locals(), reorder_loops(), reset_out_edges_aux(), rewrite_add_phi_arguments(), rewrite_update_phi_arguments(), rotate_loop(), rtl_split_block(), rtl_verify_edges(), rtl_verify_fallthru(), scale_loop_profile(), scan_loop(), sched_rgn_local_init(), schedule_ebb(), schedule_ebbs(), schedule_region(), sel_dump_cfg_2(), sese_build_liveouts_bb(), set_bb_counts(), set_cond_stmt_execution_predicate(), set_edge_can_fallthru_flag(), set_even_probabilities(), set_switch_stmt_execution_predicate(), set_zero_probability(), should_duplicate_loop_header_p(), shrink_wrap_one_built_in_call(), simulate_block(), simulate_stmt(), single_noncomplex_succ(), sink_code_in_bb(), slpeel_verify_cfg_after_peeling(), split_critical_edges(), ssa_prop_init(), suitable_cond_bb(), thread_across_edge(), thread_block(), thread_jump(), thread_prologue_and_epilogue_insns(), tm_memopt_compute_antin(), tm_memopt_compute_available(), tm_region_init(), tree_estimate_probability_bb(), tree_predict_by_opcode(), tree_ssa_phiopt_worker(), tree_unswitch_loop(), tree_unswitch_single_loop(), try_crossjump_to_edge(), try_forward_edges(), try_head_merge_bb(), try_optimize_cfg(), try_redirect_by_replacing_jump(), try_simplify_condjump(), uncprop_into_successor_phis(), unify_moves(), unswitch_loop(), update_bb_profile_for_threading(), update_bb_reg_pressure(), update_cfg_for_uncondjump(), update_destination_phis(), update_ebb_live_info(), update_ssa_across_abnormal_edges(), verify_edge_list(), verify_eh_dispatch_edge(), verify_eh_edges(), verify_flow_info(), verify_live_on_entry(), verify_loop_structure(), verify_non_ssa_vars(), visit_bb(), vt_find_locations(), vt_stack_adjustments(), and word_dce_process_block().


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