#include "bitmap.h"#include "sbitmap.h"#include "varray.h"#include "partition.h"#include "hard-reg-set.h"#include "predict.h"#include "vec.h"#include "errors.h"#include "cfghooks.h"

Go to the source code of this file.
| #define ALLOC_REG_SET | ( | OBSTACK | ) | BITMAP_ALLOC (OBSTACK) |
Definition at line 41 of file basic-block.h.
Referenced by build_insn_chain(), calculate_global_regs_live(), cfg_layout_duplicate_bb(), cfg_layout_split_edge(), dead_or_predicable(), fix_crossing_conditional_branches(), force_nonfallthru_and_redirect(), init_deps_global(), init_propagate_block_info(), rtl_split_block(), rtl_split_edge(), safe_insert_insn_on_edge(), simplify_using_initial_values(), struct_equiv_init(), and update_life_info().
| #define AND_COMPL_REG_SET | ( | TO, | |||
| FROM | ) | bitmap_and_compl_into (TO, FROM) |
Definition at line 62 of file basic-block.h.
| #define AND_REG_SET | ( | TO, | |||
| FROM | ) | bitmap_and_into (TO, FROM) |
Definition at line 59 of file basic-block.h.
| #define BASIC_BLOCK | ( | N | ) | (VARRAY_BB (basic_block_info, (N))) |
Definition at line 367 of file basic-block.h.
| #define BB_COLD_PARTITION 256 |
Definition at line 326 of file basic-block.h.
Referenced by add_unlikely_executed_notes(), assemble_start_function(), bb_to_key(), commit_one_edge_insertion(), connect_traces(), find_rarely_executed_basic_blocks_and_crossing_edges(), find_traces_1_round(), fixup_reorder_chain(), force_nonfallthru_and_redirect(), and push_to_next_round_p().
| #define BB_COPY_PARTITION | ( | dstbb, | |||
| srcbb | ) | BB_SET_PARTITION (dstbb, BB_PARTITION (srcbb)) |
Definition at line 340 of file basic-block.h.
Referenced by cfg_layout_duplicate_bb(), copy_bb(), find_if_case_1(), fix_crossing_conditional_branches(), fix_up_fall_thru_edges(), fixup_reorder_chain(), force_nonfallthru_and_redirect(), rtl_split_block(), and rtl_split_edge().
| #define BB_DIRTY 1 |
Definition at line 300 of file basic-block.h.
| #define BB_DISABLE_SCHEDULE 64 |
Definition at line 421 of file basic-block.h.
Referenced by add_deps_for_risky_insns(), add_insn_after(), add_labels_and_missing_jumps(), add_missing_bbs(), add_reg_crossing_jump_notes(), advance_target_bb(), apply_opt_in_copies(), average_num_loop_insns(), back_edge_of_syntactic_loop_p(), bb_estimate_probability_locally(), bb_has_well_behaved_predecessors(), begin_schedule_ready(), bfin_optimize_loop(), bfin_reorg_loops(), bfin_scan_loop(), block_alloc(), block_has_only_trap(), block_jumps_and_fallthru_p(), block_label_after(), branch_prob(), btr_def_live_range(), build_def_use(), build_insn_chain(), bypass_conditional_jumps(), calculate_local_reg_bb_info(), can_fallthru(), cfg_layout_can_merge_blocks_p(), cfg_layout_delete_block(), cfg_layout_duplicate_bb(), cfg_layout_merge_blocks(), cfg_layout_redirect_edge_and_branch(), cfg_layout_split_edge(), cheap_bb_rtx_cost_p(), check_cond_move_block(), check_simple_exit(), clear_log_links(), clear_regs_live_in_seq(), collect_pattern_seqs(), combine_btr_defs(), combine_instructions(), combine_stack_adjustments_for_block(), commit_one_edge_insertion(), compute_bb_for_insn(), compute_branch_probabilities(), compute_defs_uses_and_gen(), compute_hash_table_work(), compute_ld_motion_mems(), compute_outgoing_frequencies(), compute_store_table(), compute_transpout(), cond_exec_process_if_block(), condjump_equiv_p(), copyprop_hardreg_forward_1(), count_bb_insns(), count_insns(), count_or_remove_death_notes_bb(), cprop(), create_basic_block_structure(), create_ddg(), create_loop_notes(), cse_cc_succs(), cse_condition_code_reg(), dead_or_predicable(), delete_dead_jumptables(), delete_insn_and_edges(), delete_insn_chain_and_edges(), delete_noop_moves(), duplicate_computed_gotos(), eliminate_partially_redundant_load(), emit_insn_after_1(), emit_predicate_relation_info(), erase_matching_seqs(), estimate_probability(), expand_gimple_basic_block(), expand_gimple_cond_expr(), expand_gimple_tailcall(), expensive_function_p(), find_bb_boundaries(), find_cond_trap(), find_if_block(), find_if_case_1(), find_if_case_2(), find_implicit_sets(), find_jump_block(), find_moveable_store(), finish_eh_generation(), first_active_insn(), fix_basic_block_boundaries(), fix_crossing_conditional_branches(), fix_crossing_unconditional_branches(), fix_up_fall_thru_edges(), fixup_abnormal_edges(), fixup_reorder_chain(), flow_find_cross_jump(), force_nonfallthru_and_redirect(), forwarder_block_p(), frv_ifcvt_modify_multiple_tests(), frv_ifcvt_modify_tests(), frv_optimize_membar_local(), get_last_bb_insn(), global_conflicts(), guess_outgoing_edge_probabilities(), hash_scan_set(), init_propagate_block_info(), insert_insn_end_bb(), insert_insn_end_bb_new(), insert_insn_start_bb(), insert_one_insn(), ix86_pad_returns(), last_active_insn(), likely_spilled_retval_p(), link_btr_uses(), loop_delete_branch_edge(), loop_dump_aux(), loop_split_edge_with(), make_edges(), mark_bb_for_unlikely_executed_section(), mark_flags_life_zones(), may_unswitch_on(), merge_blocks_move(), merge_blocks_move_predecessor_nojumps(), merge_blocks_move_successor_nojumps(), merge_if_block(), move_btr_def(), move_invariant_reg(), mt_block_length(), mt_reorg_loops(), mt_scan_loop(), noce_init_if_info(), noce_process_if_block(), num_loop_insns(), outgoing_edges_match(), predict_loops(), print_rtl_graph_with_bb(), print_rtl_slim_with_bb(), print_rtl_with_bb(), prologue_stack_adjust(), propagate_block(), purge_dead_edges(), purge_dead_tablejump_edges(), record_effective_endpoints(), redirect_branch_edge(), reg_is_remote_constant_p(), regclass(), regmove_optimize(), remove_insn(), remove_reachable_equiv_notes(), reorder_insns(), replace_store_insn(), rotate_loop(), rtl_block_ends_with_call_p(), rtl_block_ends_with_condjump_p(), rtl_can_merge_blocks(), rtl_delete_block(), rtl_dump_bb(), rtl_flow_call_edges_add(), rtl_lv_add_condition_to_bb(), rtl_merge_blocks(), rtl_predict_edge(), rtl_predicted_by_p(), rtl_split_block(), rtl_split_edge(), rtl_tidy_fallthru_edge(), rtl_verify_flow_info(), rtl_verify_flow_info_1(), schedule_ebbs(), set_edge_can_fallthru_flag(), simplify_using_initial_values(), sjlj_emit_function_exit(), skip_insns_after_block(), split_all_insns(), split_pattern_seq(), store_killed_after(), struct_equiv_block_eq(), thread_jump(), thread_prologue_and_epilogue_insns(), tidy_fallthru_edges(), try_crossjump_bb(), try_crossjump_to_edge(), try_forward_edges(), try_optimize_cfg(), try_redirect_by_replacing_jump(), try_simplify_condjump(), unswitch_loop(), update_bb_for_insn(), update_br_prob_note(), update_equiv_regs(), update_unlikely_executed_notes(), verify_wide_reg(), and vt_initialize().
| #define BB_FREQ_MAX 10000 |
Definition at line 286 of file basic-block.h.
Definition at line 420 of file basic-block.h.
Referenced by add_insn_before(), add_missing_bbs(), advance_target_bb(), apply_opt_in_copies(), average_num_loop_insns(), back_edge_of_syntactic_loop_p(), begin_schedule_ready(), bfin_optimize_loop(), bfin_scan_loop(), block_alloc(), block_jumps_and_fallthru_p(), block_label(), branch_prob(), build_def_use(), build_insn_chain(), build_store_vectors(), bypass_conditional_jumps(), calculate_local_reg_bb_info(), can_fallthru(), can_move_up(), cfg_layout_delete_block(), cfg_layout_duplicate_bb(), cfg_layout_merge_blocks(), cfg_layout_redirect_edge_and_branch(), cheap_bb_rtx_cost_p(), clear_log_links(), collect_pattern_seqs(), combine_instructions(), combine_stack_adjustments_for_block(), combine_var_copies_in_loop_exit(), commit_one_edge_insertion(), compute_alignments(), compute_bb_for_insn(), compute_defs_uses_and_gen(), compute_hash_table_work(), compute_init_costs(), compute_ld_motion_mems(), compute_store_table(), copy_src_to_dest(), copyprop_hardreg_forward_1(), count_bb_insns(), count_insns(), count_or_remove_death_notes_bb(), cprop(), create_basic_block_structure(), create_ddg(), create_loop_notes(), cse_cc_succs(), cse_condition_code_reg(), dead_or_predicable(), delete_noop_moves(), df_insn_delete(), df_pattern_emit_before(), distribute_links(), distribute_notes(), emit_predicate_relation_info(), entry_of_function(), estimate_probability(), expand_gimple_basic_block(), expensive_function_p(), find_basic_block(), find_bb_boundaries(), find_if_block(), find_jump_block(), first_active_insn(), first_insn_after_basic_block_note(), fix_basic_block_boundaries(), fix_crossing_conditional_branches(), fixup_abnormal_edges(), fixup_reorder_chain(), flow_find_cross_jump(), force_nonfallthru_and_redirect(), forwarder_block_p(), frv_ifcvt_modify_tests(), frv_optimize_membar_local(), global_conflicts(), init_propagate_block_info(), insert_insn_end_bb(), insert_insn_end_bb_new(), insert_insn_start_bb(), insert_one_insn(), insert_section_boundary_note(), insert_var_expansion_initialization(), label_for_bb(), last_active_insn(), link_btr_uses(), loop_dump_aux(), make_edges(), mark_bb_for_unlikely_executed_section(), mark_flags_life_zones(), mark_target_live_regs(), merge_blocks_move_predecessor_nojumps(), merge_blocks_move_successor_nojumps(), merge_overlapping_regs(), move_btr_def(), mt_block_length(), mt_reorg_loops(), mt_scan_loop(), noce_try_abs(), num_loop_insns(), prev_insn_in_block(), print_rtl_graph_with_bb(), print_rtl_with_bb(), prologue_stack_adjust(), propagate_block(), purge_dead_edges(), record_effective_endpoints(), redirect_branch_edge(), reg_dead_at_p(), reg_is_remote_constant_p(), reg_set_or_used_since_bb_start(), regclass(), regmove_optimize(), reload_combine(), remove_insn(), remove_reachable_equiv_notes(), rtl_block_ends_with_call_p(), rtl_delete_block(), rtl_dump_bb(), rtl_flow_call_edges_add(), rtl_merge_blocks(), rtl_split_edge(), rtl_tidy_fallthru_edge(), rtl_verify_flow_info(), rtl_verify_flow_info_1(), scan_one_insn(), schedule_ebbs(), sjlj_emit_function_exit(), skip_insns_after_block(), split_all_insns(), store_killed_before(), struct_equiv_block_eq(), thread_jump(), thread_prologue_and_epilogue_insns(), try_combine(), try_crossjump_to_edge(), try_forward_edges(), try_optimize_cfg(), try_redirect_by_replacing_jump(), update_bb_for_insn(), update_equiv_regs(), update_unlikely_executed_notes(), verify_wide_reg(), vt_emit_notes(), and vt_initialize().
| #define BB_HOT_PARTITION 128 |
Definition at line 323 of file basic-block.h.
Referenced by connect_traces(), and find_rarely_executed_basic_blocks_and_crossing_edges().
| #define BB_IRREDUCIBLE_LOOP 16 |
Definition at line 313 of file basic-block.h.
Referenced by check_irred(), create_preheader(), duplicate_loop_to_header_edge(), empty_loop_p(), fill_always_executed_in(), fix_irreducible_loops(), get_loop_body_in_if_conv_order(), just_once_each_iteration_p(), loop_version(), mark_bivs(), mark_irreducible_loops(), split_edge(), tree_ssa_loop_version(), unswitch_loop(), and verify_loop_structure().
| #define BB_NEW 2 |
Definition at line 303 of file basic-block.h.
Definition at line 333 of file basic-block.h.
Referenced by add_unlikely_executed_notes(), assemble_start_function(), bb_to_key(), cfg_layout_can_merge_blocks_p(), clear_bb_flags(), commit_one_edge_insertion(), connect_traces(), find_rarely_executed_basic_blocks_and_crossing_edges(), find_traces_1_round(), fixup_reorder_chain(), force_nonfallthru_and_redirect(), insert_section_boundary_note(), merge_blocks_move(), merge_blocks_move_predecessor_nojumps(), merge_blocks_move_successor_nojumps(), push_to_next_round_p(), rtl_can_merge_blocks(), rtl_verify_flow_info_1(), try_crossjump_bb(), try_redirect_by_replacing_jump(), try_simplify_condjump(), and verify_hot_cold_block_grouping().
| #define BB_REACHABLE 4 |
Definition at line 307 of file basic-block.h.
| #define BB_SET_PARTITION | ( | bb, | |||
| part | ) |
Value:
do { \ basic_block bb_ = (bb); \ bb_->flags = ((bb_->flags & ~(BB_HOT_PARTITION|BB_COLD_PARTITION)) \ | (part)); \ } while (0)
Definition at line 334 of file basic-block.h.
Referenced by create_basic_block_structure(), and find_rarely_executed_basic_blocks_and_crossing_edges().
| #define BB_SUPERBLOCK 32 |
Definition at line 316 of file basic-block.h.
Referenced by break_superblocks(), emit_to_new_bb_before(), and loop_split_edge_with().
| #define BB_UNPARTITIONED 0 |
| #define BB_VISITED 8 |
Definition at line 310 of file basic-block.h.
| #define BLOCK_NUM | ( | INSN | ) | (BLOCK_FOR_INSN (INSN)->index + 0) |
Definition at line 434 of file basic-block.h.
| #define BRANCH_EDGE | ( | bb | ) |
Value:
Definition at line 532 of file basic-block.h.
| #define CLEANUP_CFGLAYOUT 128 |
Definition at line 709 of file basic-block.h.
Referenced by cfg_layout_initialize(), and try_optimize_cfg().
| #define CLEANUP_CROSSJUMP 2 |
Definition at line 700 of file basic-block.h.
| #define CLEANUP_EXPENSIVE 1 |
Definition at line 698 of file basic-block.h.
| #define CLEANUP_LOG_LINKS 256 |
Definition at line 710 of file basic-block.h.
Referenced by cleanup_cfg(), and rest_of_handle_life().
| #define CLEANUP_NO_INSN_DEL 64 |
Definition at line 707 of file basic-block.h.
| #define CLEANUP_POST_REGSTACK 4 |
Definition at line 701 of file basic-block.h.
| #define CLEANUP_PRE_LOOP 8 |
Definition at line 703 of file basic-block.h.
| #define CLEANUP_THREADING 32 |
Definition at line 706 of file basic-block.h.
| #define CLEANUP_UPDATE_LIFE 16 |
Definition at line 705 of file basic-block.h.
| #define CLEAR_REG_SET | ( | HEAD | ) | bitmap_clear (HEAD) |
Definition at line 50 of file basic-block.h.
| #define CLEAR_REGNO_REG_SET | ( | HEAD, | |||
| REG | ) | bitmap_clear_bit (HEAD, REG) |
Definition at line 75 of file basic-block.h.
| #define COPY_REG_SET | ( | TO, | |||
| FROM | ) | bitmap_copy (TO, FROM) |
Definition at line 53 of file basic-block.h.
| #define EDGE_ABNORMAL 2 |
Definition at line 150 of file basic-block.h.
| #define EDGE_ABNORMAL_CALL 4 |
Definition at line 152 of file basic-block.h.
| #define EDGE_ALL_FLAGS 16383 |
| #define EDGE_CAN_FALLTHRU 64 |
Definition at line 157 of file basic-block.h.
| #define EDGE_COMPLEX (EDGE_ABNORMAL | EDGE_ABNORMAL_CALL | EDGE_EH) |
Definition at line 173 of file basic-block.h.
| #define EDGE_COUNT | ( | ev | ) | VEC_length (edge, (ev)) |
Definition at line 545 of file basic-block.h.
Referenced by add_labels_and_missing_jumps(), add_noreturn_fake_exit_edges(), bb_has_well_behaved_predecessors(), bfin_discover_loop(), block_has_only_trap(), block_jumps_and_fallthru_p(), branch_prob(), bypass_conditional_jumps(), calc_dfs_tree(), calculate_global_regs_live(), can_predict_insn_p(), candidate_bb_for_phi_optimization(), cfg_layout_can_merge_blocks_p(), cfg_layout_redirect_edge_and_branch(), cfg_remove_useless_stmts_bb(), check_bb_profile(), cleanup_control_expr_graph(), combine_blocks(), combine_predictions_for_insn(), commit_one_edge_insertion(), compute_antic_aux(), compute_branch_probabilities(), compute_dominance_frontiers_1(), compute_outgoing_frequencies(), compute_phi_arg_on_exit(), connect_dest(), connect_post_landing_pads(), construct_exit_block(), construct_init_block(), copy_bb_p(), copy_loop_headers(), copyprop_hardreg_forward(), create_edge_list(), create_loop_notes(), create_phi_node(), create_preheader(), cse_cc_succs(), decrease_profile(), delete_basic_block(), df_hybrid_search_backward(), df_hybrid_search_forward(), disband_implicit_edges(), disconnect_dest(), dom_opt_finalize_block(), dump_cfg_stats(), duplicate_computed_gotos(), eliminate_tail_call(), estimate_loops_at_level(), estimate_probability(), execute_warn_function_noreturn(), execute_warn_function_return(), expand_omp_sections(), find_cond_trap(), find_edge(), find_if_block(), find_if_case_1(), find_if_case_2(), find_if_header(), find_implicit_sets(), find_path(), find_phi_replacement_condition(), find_tail_calls(), find_traces_1_round(), fix_crossing_conditional_branches(), fix_crossing_unconditional_branches(), fix_irreducible_loops(), fix_up_fall_thru_edges(), fixup_reorder_chain(), flow_depth_first_order_compute(), flow_loop_pre_header_scan(), flow_reverse_top_sort_order_compute(), force_nonfallthru_and_redirect(), force_single_succ_latches(), forwarder_block_p(), get_ws_args_for(), infer_value_range(), init_pre(), init_propagate_block_info(), insert_aux(), insert_insn_end_bb(), insert_into_preds_of_block(), ip_normal_pos(), last_basic_block_p(), loop_delete_branch_edge(), loop_optimizer_init(), make_ctrl_stmt_edges(), make_edges(), make_goto_expr_edges(), mark_dfs_back_edges(), mark_stmt_if_obviously_necessary(), may_unswitch_on(), merge_blocks(), merge_if_block(), merge_seq_blocks(), move_sese_region_to_fn(), mt_loop_nesting(), num_loop_branches(), outgoing_edges_match(), post_order_compute(), pre_and_rev_post_order_compute(), purge_dead_edges(), redirect_edge_succ(), remove_dead_stmt(), remove_edge(), remove_forwarder_block_with_phi(), remove_path(), remove_phi_nodes_and_edges_for_unreachable_block(), remove_reachable_equiv_notes(), reserve_phi_args_for_new_edge(), rotate_loop(), rs6000_emit_prologue(), rtl_can_merge_blocks(), rtl_tidy_fallthru_edge(), rtl_verify_flow_info_1(), schedule_ebb(), set_edge_can_fallthru_flag(), should_duplicate_loop_header_p(), simplify_using_entry_checks(), simplify_using_initial_conditions(), simplify_using_initial_values(), single_noncomplex_succ(), slpeel_update_phi_nodes_for_guard2(), split_pattern_seq(), tail_duplicate(), thread_block(), thread_jump(), thread_prologue_and_epilogue_insns(), thread_through_all_blocks(), tidy_fallthru_edges(), tree_can_merge_blocks_p(), tree_estimate_probability(), tree_find_edge_insert_loc(), tree_forwarder_block_p(), tree_if_conversion(), tree_make_forwarder_block(), tree_optimize_tail_calls_1(), tree_predict_edge(), tree_ssa_phiopt(), tree_try_redirect_by_replacing_jump(), tree_unswitch_loop(), tree_verify_flow_info(), try_crossjump_bb(), try_crossjump_to_edge(), try_forward_edges(), try_optimize_cfg(), try_redirect_by_replacing_jump(), try_simplify_condjump(), unchecked_make_edge(), unswitch_loop(), vect_analyze_loop_form(), vect_transform_loop(), vect_update_ivs_after_vectorizer(), verify_loop_structure(), verify_phi_args(), vt_stack_adjustments(), and walk_dominator_tree().
| #define EDGE_CRITICAL_P | ( | e | ) |
Value:
(EDGE_COUNT ((e)->src->succs) >= 2 \ && EDGE_COUNT ((e)->dest->preds) >= 2)
Definition at line 542 of file basic-block.h.
| #define EDGE_CROSSING 8192 |
Definition at line 168 of file basic-block.h.
Referenced by add_reg_crossing_jump_notes(), better_edge_p(), commit_one_edge_insertion(), find_jump_block(), find_rarely_executed_basic_blocks_and_crossing_edges(), find_traces_1_round(), fix_crossing_conditional_branches(), fix_crossing_unconditional_branches(), fix_up_fall_thru_edges(), fixup_reorder_chain(), force_nonfallthru_and_redirect(), rtl_verify_flow_info_1(), try_crossjump_bb(), try_forward_edges(), and try_simplify_condjump().
| #define EDGE_DFS_BACK 32 |
Definition at line 156 of file basic-block.h.
| #define EDGE_EH 8 |
Definition at line 154 of file basic-block.h.
| #define EDGE_EXECUTABLE 4096 |
Definition at line 166 of file basic-block.h.
Referenced by add_control_edge(), ccp_visit_phi_node(), copy_prop_visit_phi_node(), expand_gimple_basic_block(), ssa_prop_init(), tree_expand_cfg(), and vrp_visit_phi_node().
| #define EDGE_FAKE 16 |
Definition at line 155 of file basic-block.h.
| #define EDGE_FALLTHRU 1 |
Definition at line 149 of file basic-block.h.
| #define EDGE_FALSE_VALUE 2048 |
Definition at line 164 of file basic-block.h.
Referenced by branch_prob(), cfg_remove_useless_stmts_bb(), disband_implicit_edges(), expand_complex_div_wide(), expand_gimple_cond_expr(), expand_omp_for_generic(), expand_omp_for_static_chunk(), expand_omp_for_static_nochunk(), expand_parallel_call(), lambda_loopnest_to_gcc_loopnest(), lv_adjust_loop_entry_edge(), make_cond_expr_edges(), mf_build_check_statement_for(), perfect_nestify(), propagate_rhs_into_lhs(), redirect_edges(), register_edge_assert_for(), remove_dead_stmt(), replace_phi_edge_with_variable(), replace_phi_with_stmt(), simplify_using_initial_conditions(), slpeel_add_loop_guard(), tree_divmod_fixed_value(), tree_lv_add_condition_to_bb(), tree_mod_pow2(), tree_mod_subtract(), tree_unroll_loop(), and tree_verify_flow_info().
| #define EDGE_FREQUENCY | ( | e | ) |
Value:
(((e)->src->frequency \ * (e)->probability \ + REG_BR_PROB_BASE / 2) \ / REG_BR_PROB_BASE)
Definition at line 536 of file basic-block.h.
Definition at line 546 of file basic-block.h.
Referenced by construct_exit_block(), and remove_reachable_equiv_notes().
| #define EDGE_INDEX | ( | el, | |||
| pred, | |||||
| succ | ) | (find_edge_index ((el), (pred), (succ))) |
Definition at line 514 of file basic-block.h.
| #define EDGE_INDEX_NO_EDGE -1 |
Definition at line 510 of file basic-block.h.
| #define EDGE_IRREDUCIBLE_LOOP 128 |
Definition at line 159 of file basic-block.h.
Referenced by backedge_phi_arg_p(), check_irred(), create_preheader(), duplicate_loop_to_header_edge(), fix_bb_placements(), fix_irreducible_loops(), if_convertible_bb_p(), loop_delete_branch_edge(), loop_version(), mark_irreducible_loops(), remove_path(), rtl_verify_flow_info_1(), split_edge(), tree_ssa_loop_version(), tree_unroll_loop(), unloop(), unroll_loop_runtime_iterations(), unswitch_loop(), and verify_loop_structure().
| #define EDGE_LOOP_EXIT 512 |
Definition at line 161 of file basic-block.h.
Referenced by analyze_insns_in_loop(), bb_with_exit_edge_p(), combine_blocks(), find_if_header(), flow_loop_exit_edges_find(), if_convertible_loop_p(), mark_loop_exit_edges(), prune_undesirable_thread_requests(), and rtl_verify_flow_info_1().
Definition at line 547 of file basic-block.h.
Referenced by bfin_discover_loop(), calculate_live_on_entry(), candidate_bb_for_phi_optimization(), cfg_remove_useless_stmts_bb(), combine_blocks(), construct_exit_block(), copyprop_hardreg_forward(), create_preheader(), delete_basic_block(), disconnect_dest(), find_if_block(), find_phi_replacement_condition(), find_uses_to_rename(), fixup_reorder_chain(), flow_loop_pre_header_scan(), frv_ifcvt_modify_tests(), insert_into_preds_of_block(), ip_normal_pos(), loop_commit_inserts(), mf_build_check_statement_for(), mfb_update_loops(), mt_loop_nesting(), perfect_nestify(), redirect_edge_succ(), remove_edge(), remove_forwarder_block_with_phi(), remove_path(), replace_phi_with_cond_modify_expr(), simplify_using_entry_checks(), simplify_using_initial_conditions(), simplify_using_initial_values(), slpeel_update_phi_nodes_for_guard2(), split_edge(), thread_block(), tree_find_edge_insert_loc(), tree_optimize_tail_calls_1(), tree_ssa_loop_version(), try_crossjump_bb(), try_crossjump_to_edge(), try_optimize_cfg(), unroll_loop_runtime_iterations(), unswitch_loop(), update_latch_info(), vect_do_peeling_for_loop_bound(), and verify_phi_args().
| #define EDGE_SIBCALL 256 |
Definition at line 160 of file basic-block.h.
Referenced by expand_gimple_tailcall(), make_edges(), and purge_dead_edges().
Definition at line 548 of file basic-block.h.
Referenced by bfin_discover_loop(), branch_prob(), bsi_commit_edge_inserts(), candidate_bb_for_phi_optimization(), canonicalize_loop_headers(), cfg_layout_can_merge_blocks_p(), cfg_layout_merge_blocks(), cfg_layout_redirect_edge_and_branch(), check_simple_exit(), cleanup_control_expr_graph(), combine_blocks(), combine_predictions_for_bb(), combine_predictions_for_insn(), commit_one_edge_insertion(), compute_antic_aux(), compute_outgoing_frequencies(), connect_post_landing_pads(), construct_init_block(), copy_loop_headers(), create_canonical_iv(), create_loop_notes(), create_preheader(), delete_basic_block(), disband_implicit_edges(), dom_opt_finalize_block(), duplicate_computed_gotos(), eliminate_tail_call(), estimate_bb_frequencies(), estimate_probability(), extract_true_false_edges_from_block(), find_if_block(), find_if_case_1(), find_if_case_2(), find_if_header(), find_tail_calls(), find_traces_1_round(), fix_crossing_conditional_branches(), fix_crossing_unconditional_branches(), fix_up_fall_thru_edges(), fixup_reorder_chain(), force_nonfallthru_and_redirect(), independent_of_stmt_p(), init_pre(), init_propagate_block_info(), insert_insn_end_bb(), ip_normal_pos(), iv_elimination_compare(), last_basic_block_p(), layout_superblocks(), loop_commit_inserts(), loop_delete_branch_edge(), loopify(), lv_adjust_loop_entry_edge(), mark_single_exit_loops(), may_eliminate_iv(), may_unswitch_on(), merge_blocks(), merge_if_block(), merge_phi_nodes(), merge_seq_blocks(), mfb_update_loops(), minmax_replacement(), mt_loop_nesting(), mt_reorg_loops(), outgoing_edges_match(), perfect_nestify(), purge_dead_edges(), redirect_edges(), remove_dead_stmt(), remove_empty_loop(), remove_forwarder_block(), remove_forwarder_block_with_phi(), remove_phi_nodes_and_edges_for_unreachable_block(), replace_phi_edge_with_variable(), replace_phi_with_stmt(), rotate_loop(), rtl_can_merge_blocks(), rtl_extract_cond_bb_edges(), set_edge_can_fallthru_flag(), should_duplicate_loop_header_p(), single_noncomplex_succ(), sjlj_emit_function_enter(), slpeel_add_loop_guard(), slpeel_tree_duplicate_loop_to_edge_cfg(), slpeel_update_phi_nodes_for_guard(), slpeel_update_phi_nodes_for_guard1(), slpeel_update_phi_nodes_for_guard2(), split_edge(), split_loop_exit_edge(), split_pattern_seq(), thread_prologue_and_epilogue_insns(), tidy_fallthru_edges(), tree_can_merge_blocks_p(), tree_forwarder_block_p(), tree_if_conversion(), tree_merge_blocks(), tree_optimize_tail_calls_1(), tree_ssa_loop_version(), tree_ssa_phiopt(), tree_try_redirect_by_replacing_jump(), tree_unroll_loop(), tree_verify_flow_info(), try_crossjump_bb(), try_crossjump_to_edge(), try_forward_edges(), try_optimize_cfg(), try_redirect_by_replacing_jump(), try_simplify_condjump(), unloop(), unroll_loop_constant_iterations(), unroll_loop_runtime_iterations(), unswitch_loop(), update_bb_profile_for_threading(), value_replacement(), vect_transform_loop(), vect_update_ivs_after_vectorizer(), and verify_loop_structure().
| #define EDGE_TRUE_VALUE 1024 |
Definition at line 162 of file basic-block.h.
Referenced by branch_prob(), cfg_remove_useless_stmts_bb(), create_canonical_iv(), disband_implicit_edges(), expand_complex_div_wide(), expand_gimple_cond_expr(), expand_omp_for_generic(), expand_omp_for_static_chunk(), expand_omp_for_static_nochunk(), expand_parallel_call(), extract_true_false_edges_from_block(), iv_elimination_compare(), loop_niter_by_eval(), lv_adjust_loop_entry_edge(), make_cond_expr_edges(), may_eliminate_iv(), mf_build_check_statement_for(), number_of_iterations_exit(), perfect_nestify(), propagate_rhs_into_lhs(), redirect_edges(), remove_dead_stmt(), remove_empty_loop(), replace_phi_edge_with_variable(), replace_phi_with_stmt(), simplify_using_entry_checks(), simplify_using_initial_conditions(), slpeel_add_loop_guard(), slpeel_make_loop_iterate_ntimes(), tree_divmod_fixed_value(), tree_mod_pow2(), tree_mod_subtract(), tree_predict_by_opcode(), tree_redirect_edge_and_branch(), tree_unroll_loop(), tree_verify_flow_info(), and try_unroll_loop_completely().
Definition at line 565 of file basic-block.h.
Definition at line 564 of file basic-block.h.
Referenced by bypass_block(), calc_dfs_tree_nonrec(), calc_idoms(), cleanup_control_expr_graph(), combine_blocks(), disconnect_src(), emit_insn_at_entry(), emit_to_new_bb_before(), expand_gimple_basic_block(), expand_gimple_tailcall(), finish_eh_generation(), flow_depth_first_order_compute(), flow_reverse_top_sort_order_compute(), force_nonfallthru_and_redirect(), frv_optimize_membar_global(), loop_optimizer_init(), make_forwarder_block(), mark_dfs_back_edges(), move_sese_region_to_fn(), post_order_compute(), pre_and_rev_post_order_compute(), propagate_rhs_into_lhs(), purge_dead_edges(), purge_dead_tablejump_edges(), redirect_edge_pred(), remove_ctrl_stmt_and_useless_edges(), remove_edge(), remove_fake_predecessors(), remove_forwarder_block(), remove_reachable_equiv_notes(), thread_prologue_and_epilogue_insns(), tree_purge_dead_abnormal_call_edges(), tree_purge_dead_eh_edges(), try_forward_edges(), update_bb_profile_for_threading(), VEC(), and vt_stack_adjustments().
| #define ENTRY_BLOCK (-1) |
Definition at line 424 of file basic-block.h.
| #define EXECUTE_IF_AND_COMPL_IN_REG_SET | ( | REGSET1, | |||
| REGSET2, | |||||
| MIN, | |||||
| REGNUM, | |||||
| RSI | ) | EXECUTE_IF_AND_COMPL_IN_BITMAP (REGSET1, REGSET2, MIN, REGNUM, RSI) |
Definition at line 101 of file basic-block.h.
| #define EXECUTE_IF_AND_IN_REG_SET | ( | REGSET1, | |||
| REGSET2, | |||||
| MIN, | |||||
| REGNUM, | |||||
| RSI | ) | EXECUTE_IF_AND_IN_BITMAP (REGSET1, REGSET2, MIN, REGNUM, RSI) \ |
Definition at line 107 of file basic-block.h.
| #define EXECUTE_IF_SET_IN_REG_SET | ( | REGSET, | |||
| MIN, | |||||
| REGNUM, | |||||
| RSI | ) | EXECUTE_IF_SET_IN_BITMAP (REGSET, MIN, REGNUM, RSI) |
Definition at line 95 of file basic-block.h.
| #define EXIT_BLOCK (-2) |
Definition at line 425 of file basic-block.h.
| #define FALLTHRU_EDGE | ( | bb | ) |
Value:
Definition at line 528 of file basic-block.h.
Definition at line 393 of file basic-block.h.
Definition at line 370 of file basic-block.h.
| #define FOR_BB_INSNS | ( | BB, | |||
| INSN | ) |
Value:
Definition at line 380 of file basic-block.h.
Referenced by alloc_gcse_mem(), alloc_mem(), analyze_insns_in_loop(), assign_luids(), bypass_conditional_jumps(), check_cond_move_block(), compute_hash_table(), compute_hash_table_work(), compute_ld_motion_mems(), compute_sets(), compute_store_table(), cond_move_process_if_block(), copy_bb_p(), cprop(), df_analyze_subcfg(), df_bb_luids_set(), df_bb_refs_delete(), df_bb_refs_record(), df_bb_refs_update(), df_bb_reg_use_chain_create(), df_bb_regno_first_def_find(), df_bb_ud_chain_create(), df_chain_bb_reset(), df_chain_create_bb(), df_ru_bb_local_compute(), df_urec_bb_local_compute(), duplicate_computed_gotos(), eliminate_partially_redundant_loads(), find_exits(), find_invariants_bb(), local_cprop_pass(), loop_exit_at_end_p(), mark_sets(), notice_stack_pointer_modification(), referenced_in_one_insn_in_loop_p(), and s390_regs_ever_clobbered().
| #define FOR_BB_INSNS_REVERSE | ( | BB, | |||
| INSN | ) |
Value:
Definition at line 385 of file basic-block.h.
Referenced by df_bb_du_chain_create(), df_bb_lr_local_compute(), df_bb_rd_local_compute(), df_bb_reg_def_chain_create(), df_bb_reg_info_compute(), df_bb_regno_last_def_find(), df_bb_regno_last_use_find(), df_bb_ru_local_compute(), df_lr_bb_local_compute(), df_rd_bb_local_compute(), df_ri_bb_compute(), df_ur_bb_local_compute(), fill_hash_bucket(), and simplify_using_initial_values().
| #define FOR_EACH_BB | ( | BB | ) | FOR_BB_BETWEEN (BB, ENTRY_BLOCK_PTR->next_bb, EXIT_BLOCK_PTR, next_bb) |
Definition at line 373 of file basic-block.h.
| #define FOR_EACH_BB_REVERSE | ( | BB | ) | FOR_BB_BETWEEN (BB, EXIT_BLOCK_PTR->prev_bb, ENTRY_BLOCK_PTR, prev_bb) |
Definition at line 376 of file basic-block.h.
| #define FOR_EACH_EDGE | ( | EDGE, | |||
| ITER, | |||||
| EDGE_VEC | ) |
Value:
for ((EDGE) = NULL, (ITER) = ei_start ((EDGE_VEC)); \ ((EDGE) = ei_safe_edge ((ITER))); \ ei_next (&(ITER)))
Definition at line 654 of file basic-block.h.
Referenced by add_exit_phis_edge(), add_phi_args_after_copy_bb(), add_reg_crossing_jump_notes(), alloc_aux_for_edges(), analyze_edges_for_bb(), apply_return_prediction(), augment_live_range(), bb_has_well_behaved_predecessors(), bb_to_key(), bb_with_exit_edge_p(), begin_schedule_ready(), bfin_discover_loop(), block_fallthru(), block_jumps_and_fallthru_p(), branch_prob(), bsi_commit_edge_inserts(), bypass_block(), calculate_global_regs_live(), calculate_live_on_entry(), calculate_live_on_exit(), calculate_reg_pav(), can_copy_bbs_p(), can_fallthru(), canonicalize_loop_headers(), check_bb_profile(), clear_aux_for_edges(), clear_edges(), coalesce_abnormal_edges(), combine_blocks(), combine_predictions_for_bb(), commit_edge_insertions(), commit_edge_insertions_watch_calls(), compute_alignments(), compute_antic(), compute_antic_aux(), compute_antinout_edge(), compute_available(), compute_branch_probabilities(), compute_dominance_frontiers_1(), compute_global_livein(), compute_jump_reg_dependencies(), compute_laterin(), compute_nearerout(), compute_outgoing_frequencies(), compute_pre_data(), compute_rvuse_and_antic_safe(), connect_traces(), constant_val_insert(), construct_exit_block(), copy_bbs(), copy_edges_for_bb(), could_fall_through(), cprop_into_successor_phis(), create_edge_list(), create_new_def_for(), create_preheader(), cse_cc_succs(), df_has_eh_preds(), df_hybrid_search_backward(), df_hybrid_search_forward(), df_print_bb_index(), dfs_enumerate_from(), disband_implicit_edges(), dump_bb(), dump_bb_end(), dump_bb_header(), dump_bb_info(), dump_cfg_bb_info(), dump_flow_info(), dump_implicit_edges(), dump_prediction(), duplicate_block(), duplicate_computed_gotos(), duplicate_loop_to_header_edge(), eliminate_partially_redundant_load(), estimate_bb_frequencies(), estimate_probability(), execute_warn_function_return(), expand_complex_move(), expected_loop_iterations(), fill_always_executed_in(), find_best_predecessor(), find_best_successor(), find_conditional_asserts(), find_edge(), find_exits(), find_if_block(), find_interesting_uses(), find_jump_block(), find_many_sub_basic_blocks(), find_obviously_necessary_stmts(), find_phi_replacement_condition(), find_rarely_executed_basic_blocks_and_crossing_edges(), find_simple_exit(), find_sub_basic_blocks(), find_tail_calls(), find_traces(), find_traces_1_round(), find_unreachable_blocks(), find_uses_to_rename_bb(), fix_basic_block_boundaries(), fix_bb_placement(), fix_bb_placements(), fix_irreducible_loops(), fix_loop_placement(), fix_phi_uses(), fixup_abnormal_edges(), fixup_fallthru_exit_predecessor(), fixup_reorder_chain(), flow_dfs_compute_reverse_execute(), flow_loop_entry_edges_find(), flow_loop_exit_edges_find(), flow_loop_nodes_find(), flow_loop_pre_header_find(), flow_loops_cfg_dump(), flow_loops_find(), free_all_edge_infos(), frv_optimize_membar_global(), get_exec_counts(), get_loop_body_in_bfs_order(), get_loop_exit_edges(), get_loops_exits(), global_conflicts(), has_abnormal_incoming_edge_p(), has_abnormal_outgoing_edge_p(), hoist_expr_reaches_here_p(), ia64_expand_prologue(), identify_jump_threads(), if_convertible_bb_p(), if_convertible_loop_p(), independent_of_stmt_p(), initialize_uninitialized_subregs(), insert_aux(), insert_edge_copies(), insert_extra_phis(), insert_into_preds_of_block(), insert_phi_nodes_for(), insert_range_assertions(), insert_store(), insert_updated_phi_nodes_for(), instrument_edges(), ipcp_profile_edge_print(), ipcp_update_edges_counts(), ix86_pad_returns(), layout_superblocks(), live_worklist(), loop_preheader_edge(), loopify(), make_edges(), mark_irreducible_loops(), mark_loop_exit_edges(), mark_single_exit_loops(), merge_blocks(), merge_blocks_move(), migrate_btr_def(), move_block_to_fn(), mt_reorg_loops(), outgoing_edges_match(), perform_edge_inserts(), pre_expr_reaches_here_p_work(), pred_blocks_visited_p(), predict_loops(), predict_paths_leading_to(), prepare_block_for_update(), print_pred_bbs(), print_rtl_graph_with_bb(), print_succ_bbs(), process_assert_insertions_for(), propagate_freq(), prune_undesirable_thread_requests(), prune_unused_phi_nodes(), purge_dead_edges(), reachable_at_most_once(), record_edge_info(), recount_dominator(), remove_exit_barrier(), remove_fallthru_edge(), remove_forwarder_block(), remove_path(), rename_variables_in_bb(), rewrite_add_phi_arguments(), rewrite_to_new_ssa_names_bb(), rewrite_trees(), rewrite_update_init_block(), rewrite_update_phi_arguments(), rewrite_virtual_phi_arguments(), rotate_loop(), rtl_split_block(), rtl_split_edge(), rtl_verify_flow_info(), rtl_verify_flow_info_1(), scale_bbs_frequencies(), scale_bbs_frequencies_gcov_type(), scale_bbs_frequencies_int(), schedule_ebbs(), set_edge_can_fallthru_flag(), set_even_probabilities(), simulate_block(), simulate_stmt(), single_incoming_edge_ignoring_loop_edges(), sink_code_in_bb(), sjlj_emit_function_exit(), split_critical_edges(), split_edge(), ssa_mark_phi_uses(), ssa_prop_init(), ssa_rewrite_initialize_block(), ssa_rewrite_phi_arguments(), thread_block(), thread_prologue_and_epilogue_insns(), tree_cfg2vcg(), tree_estimate_probability(), tree_expand_cfg(), tree_forwarder_block_p(), tree_make_forwarder_block(), tree_optimize_tail_calls_1(), tree_predict_by_opcode(), tree_split_block(), tree_ssa_uncprop(), tree_verify_flow_info(), try_crossjump_bb(), try_crossjump_to_edge(), uncprop_into_successor_phis(), update_bb_profile_for_threading(), verify_edge_list(), verify_eh_edges(), verify_flow_info(), verify_loop_structure(), verify_ssa(), and vt_find_locations().
Definition at line 44 of file basic-block.h.
Definition at line 522 of file basic-block.h.
Definition at line 518 of file basic-block.h.
Definition at line 519 of file basic-block.h.
| #define INIT_REG_SET | ( | HEAD | ) | bitmap_initialize (HEAD, ®_obstack) |
Definition at line 47 of file basic-block.h.
| #define INVALID_BLOCK (-3) |
Definition at line 428 of file basic-block.h.
| #define IOR_AND_COMPL_REG_SET | ( | TO, | |||
| FROM1, | |||||
| FROM2 | ) | bitmap_ior_and_compl_into (TO, FROM1, FROM2) |
Definition at line 71 of file basic-block.h.
| #define IOR_REG_SET | ( | TO, | |||
| FROM | ) | bitmap_ior_into (TO, FROM) |
Definition at line 65 of file basic-block.h.
Definition at line 525 of file basic-block.h.
| #define PROP_ALLOW_CFG_CHANGES 32 |
Definition at line 681 of file basic-block.h.
| #define PROP_ASM_SCAN 512 |
| #define PROP_AUTOINC 64 |
Definition at line 683 of file basic-block.h.
| #define PROP_DEATH_NOTES 1 |
Definition at line 676 of file basic-block.h.
| #define PROP_EQUAL_NOTES 128 |
Definition at line 684 of file basic-block.h.
| #define PROP_FINAL |
Value:
(PROP_DEATH_NOTES | PROP_LOG_LINKS \ | PROP_REG_INFO | PROP_KILL_DEAD_CODE \ | PROP_SCAN_DEAD_CODE | PROP_AUTOINC \ | PROP_ALLOW_CFG_CHANGES \ | PROP_SCAN_DEAD_STORES)
Definition at line 688 of file basic-block.h.
| #define PROP_KILL_DEAD_CODE 8 |
Definition at line 679 of file basic-block.h.
| #define PROP_LOG_LINKS 2 |
Definition at line 677 of file basic-block.h.
| #define PROP_POSTRELOAD |
Value:
Definition at line 693 of file basic-block.h.
Referenced by rest_of_handle_stack_adjustments().
| #define PROP_REG_INFO 4 |
Definition at line 678 of file basic-block.h.
| #define PROP_SCAN_DEAD_CODE 16 |
Definition at line 680 of file basic-block.h.
| #define PROP_SCAN_DEAD_STORES 256 |
Definition at line 685 of file basic-block.h.
| #define REG_BASIC_BLOCK | ( | N | ) | (VARRAY_REG (reg_n_info, N)->basic_block) |
Definition at line 416 of file basic-block.h.
| #define REG_BLOCK_GLOBAL -2 |
Definition at line 414 of file basic-block.h.
| #define REG_BLOCK_UNKNOWN -1 |
Definition at line 413 of file basic-block.h.
| #define REG_SET_TO_HARD_REG_SET | ( | TO, | |||
| FROM | ) |
Value:
do { \ CLEAR_HARD_REG_SET (TO); \ reg_set_to_hard_reg_set (&TO, FROM); \ } while (0)
Definition at line 85 of file basic-block.h.
| #define REGNO_REG_SET_P | ( | TO, | |||
| REG | ) | bitmap_bit_p (TO, REG) |
Definition at line 81 of file basic-block.h.
Definition at line 435 of file basic-block.h.
| #define SET_REGNO_REG_SET | ( | HEAD, | |||
| REG | ) | bitmap_set_bit (HEAD, REG) |
Definition at line 78 of file basic-block.h.
| #define XOR_REG_SET | ( | TO, | |||
| FROM | ) | bitmap_xor_into (TO, FROM) |
Definition at line 68 of file basic-block.h.
| typedef struct basic_block_def* basic_block |
Definition at line 266 of file basic-block.h.
| typedef struct ce_if_block ce_if_block_t |
| typedef struct conflict_graph_def* conflict_graph |
Definition at line 787 of file basic-block.h.
| typedef int(* conflict_graph_enum_fn)(int, int, void *) |
Definition at line 792 of file basic-block.h.
Definition at line 146 of file basic-block.h.
| typedef HOST_WIDEST_INT gcov_type |
Definition at line 115 of file basic-block.h.
| typedef bitmap_iterator reg_set_iterator |
Definition at line 91 of file basic-block.h.
Definition at line 38 of file basic-block.h.
| typedef bitmap_head regset_head |
Definition at line 35 of file basic-block.h.
| typedef struct reorder_block_def * reorder_block_def_p |
| enum cdi_direction |
| CDI_DOMINATORS | |
| CDI_POST_DOMINATORS | |
| CDI_DOMINATORS | |
| CDI_POST_DOMINATORS | |
| CDI_DOMINATORS | |
| CDI_POST_DOMINATORS | |
| CDI_DOMINATORS | |
| CDI_POST_DOMINATORS |
Definition at line 825 of file basic-block.h.
| enum dom_state |
Definition at line 831 of file basic-block.h.
| enum profile_status |
Definition at line 356 of file basic-block.h.
| enum update_life_extent |
Definition at line 667 of file basic-block.h.
| void add_to_dominance_info | ( | enum | cdi_direction, | |
| basic_block | ||||
| ) |
Definition at line 929 of file dominance.c.
| void alloc_aux_for_block | ( | basic_block | , | |
| int | ||||
| ) | [inline] |
| basic_block alloc_block | ( | void | ) |
Definition at line 162 of file cfg.c.
References create_alloc_pool(), and n_basic_blocks.
Referenced by build_tree_cfg(), and cfg_layout_initialize().
| rtx block_label | ( | basic_block | ) |
Definition at line 1152 of file cfglayout.c.
Referenced by cfg_layout_finalize(), and finish_eh_generation().
| edge cached_make_edge | ( | sbitmap * | , | |
| basic_block | , | |||
| basic_block | , | |||
| int | ||||
| ) |
Definition at line 339 of file cfg.c.
References edge::dest, ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR, find_edge(), edge::flags, basic_block_def::index, make_edge(), NULL, SET_BIT, basic_block_def::succ, edge::succ_next, TEST_BIT, and unchecked_make_edge().
Referenced by make_edge(), make_edges(), and make_label_edge().
| void calculate_dominance_info | ( | enum | cdi_direction | ) |
Definition at line 558 of file dominance.c.
| bool can_fallthru | ( | basic_block | , | |
| basic_block | ||||
| ) |
| void check_bb_profile | ( | basic_block | , | |
| FILE * | ||||
| ) |
Definition at line 466 of file cfg.c.
Referenced by dump_bb_header(), dump_flow_info(), and dump_function_to_file().
| bool cleanup_cfg | ( | int | ) |
Definition at line 1798 of file cfgcleanup.c.
| int conflict_graph_add | ( | conflict_graph | , | |
| int | , | |||
| int | ||||
| ) |
Definition at line 190 of file conflict.c.
| int conflict_graph_conflict_p | ( | conflict_graph | , | |
| int | , | |||
| int | ||||
| ) |
Definition at line 239 of file conflict.c.
| void conflict_graph_delete | ( | conflict_graph | ) |
Definition at line 176 of file conflict.c.
| void conflict_graph_enum | ( | conflict_graph | , | |
| int | , | |||
| conflict_graph_enum_fn | , | |||
| void * | ||||
| ) |
Definition at line 256 of file conflict.c.
| void conflict_graph_merge_regs | ( | conflict_graph | , | |
| int | , | |||
| int | ||||
| ) |
Definition at line 283 of file conflict.c.
| conflict_graph conflict_graph_new | ( | int | ) |
Definition at line 150 of file conflict.c.
| void conflict_graph_print | ( | conflict_graph | , | |
| FILE * | ||||
| ) |
Definition at line 364 of file conflict.c.
Definition at line 108 of file cfgbuild.c.
| bool could_fall_through | ( | basic_block | , | |
| basic_block | ||||
| ) |
| basic_block create_basic_block_structure | ( | rtx | , | |
| rtx | , | |||
| rtx | , | |||
| basic_block | ||||
| ) |
| void debug_bb | ( | basic_block | ) |
| basic_block debug_bb_n | ( | int | ) |
| DEF_VEC_GC_P | ( | edge | ) |
| void delete_from_dominance_info | ( | enum | cdi_direction, | |
| basic_block | ||||
| ) |
Definition at line 943 of file dominance.c.
Definition at line 1770 of file cfgcleanup.c.
| int dfs_enumerate_from | ( | basic_block | , | |
| int | , | |||
| bool(*)(basic_block, void *) | , | |||
| basic_block * | , | |||
| int | , | |||
| void * | ||||
| ) |
| bool dom_info_available_p | ( | enum | cdi_direction | ) |
Definition at line 980 of file dominance.c.
Referenced by calculate_dominance_info(), compute_dom_fast_query(), expand_complex_div_wide(), free_dominance_info(), make_forwarder_block(), mf_build_check_statement_for(), remove_forwarder_block(), split_block(), and verify_dominators().
| bool dominated_by_p | ( | enum | cdi_direction, | |
| basic_block | , | |||
| basic_block | ||||
| ) |
Definition at line 802 of file dominance.c.
Definition at line 2011 of file bb-reorder.c.
References BB_END, BITMAP_ALLOC, bitmap_bit_p(), bitmap_empty_p, BITMAP_FREE, bitmap_set_bit(), can_duplicate_block_p(), gcc_target::cannot_modify_jumps_p, cfg_layout_finalize(), cfg_layout_initialize(), computed_jump_p(), dest, duplicate_block(), EDGE_COMPLEX, EDGE_COUNT, EDGE_SUCC, EXIT_BLOCK_PTR, find_reg_note(), edge::flags, FOR_BB_INSNS, FOR_EACH_BB, FOR_EACH_EDGE, get_attr_length(), get_uncond_jump_length(), basic_block_def::index, insn, INSN_P, max_size, n_basic_blocks, basic_block_def::next_bb, NULL, NULL_RTX, PARAM_VALUE, size, targetm, timevar_pop, timevar_push, and uncond_jump_length.
Referenced by rest_of_compilation().
| static edge ei_edge | ( | edge_iterator | i | ) | [inline, static] |
Definition at line 625 of file basic-block.h.
Referenced by calc_dfs_tree_nonrec(), calc_idoms(), flow_depth_first_order_compute(), flow_reverse_top_sort_order_compute(), mark_dfs_back_edges(), post_order_compute(), pre_and_rev_post_order_compute(), remove_reachable_equiv_notes(), and vt_stack_adjustments().
| static bool ei_end_p | ( | edge_iterator | i | ) | [inline, static] |
Definition at line 594 of file basic-block.h.
Referenced by calc_dfs_tree_nonrec(), calc_idoms(), and remove_reachable_equiv_notes().
| static edge_iterator ei_last_1 | ( | VEC(edge)** | ev | ) | [inline, static] |
Definition at line 582 of file basic-block.h.
| static void ei_next | ( | edge_iterator * | i | ) | [inline, static] |
Definition at line 609 of file basic-block.h.
Referenced by bypass_block(), calc_dfs_tree_nonrec(), calc_idoms(), cleanup_control_expr_graph(), combine_blocks(), disconnect_src(), emit_to_new_bb_before(), expand_gimple_basic_block(), expand_gimple_tailcall(), finish_eh_generation(), flow_depth_first_order_compute(), flow_reverse_top_sort_order_compute(), force_nonfallthru_and_redirect(), frv_optimize_membar_global(), loop_optimizer_init(), make_forwarder_block(), mark_dfs_back_edges(), post_order_compute(), pre_and_rev_post_order_compute(), propagate_rhs_into_lhs(), purge_dead_edges(), purge_dead_tablejump_edges(), redirect_edge_pred(), remove_ctrl_stmt_and_useless_edges(), remove_edge(), remove_fake_predecessors(), remove_reachable_equiv_notes(), thread_prologue_and_epilogue_insns(), tree_purge_dead_abnormal_call_edges(), tree_purge_dead_eh_edges(), try_forward_edges(), update_bb_profile_for_threading(), VEC(), and vt_stack_adjustments().
| static bool ei_one_before_end_p | ( | edge_iterator | i | ) | [inline, static] |
Definition at line 602 of file basic-block.h.
Referenced by flow_depth_first_order_compute(), flow_reverse_top_sort_order_compute(), mark_dfs_back_edges(), post_order_compute(), pre_and_rev_post_order_compute(), and vt_stack_adjustments().
| static void ei_prev | ( | edge_iterator * | i | ) | [inline, static] |
Definition at line 617 of file basic-block.h.
| static edge ei_safe_edge | ( | edge_iterator | i | ) | [inline, static] |
Definition at line 634 of file basic-block.h.
Referenced by bypass_block(), cleanup_control_expr_graph(), combine_blocks(), disconnect_src(), emit_insn_at_entry(), emit_to_new_bb_before(), expand_gimple_basic_block(), expand_gimple_tailcall(), finish_eh_generation(), force_nonfallthru_and_redirect(), loop_optimizer_init(), make_forwarder_block(), move_sese_region_to_fn(), propagate_rhs_into_lhs(), purge_dead_edges(), purge_dead_tablejump_edges(), redirect_edge_pred(), remove_ctrl_stmt_and_useless_edges(), remove_edge(), remove_fake_predecessors(), remove_forwarder_block(), thread_prologue_and_epilogue_insns(), tree_purge_dead_abnormal_call_edges(), tree_purge_dead_eh_edges(), try_forward_edges(), update_bb_profile_for_threading(), and VEC().
| static edge_iterator ei_start_1 | ( | VEC(edge)** | ev | ) | [inline, static] |
Definition at line 569 of file basic-block.h.
Definition at line 433 of file predict.c.
References any_condjump_p(), BB_END, bb_estimate_probability_locally(), BB_HEAD, calculate_dominance_info(), CALL_P, can_predict_insn_p(), CDI_DOMINATORS, CDI_POST_DOMINATORS, combine_predictions_for_insn(), cond, connect_infinite_loops_to_exit(), const0_rtx, const1_rtx, CONST_OR_PURE_CALL_P, constm1_rtx, edge::dest, dominated_by_p(), EDGE_COUNT, EDGE_SUCC, basic_block_def::end, EQ, estimate_bb_frequencies(), EXIT_BLOCK_PTR, FLOAT_MODE_P, flow_bb_inside_loop_p(), flow_loop_scan(), FOR_EACH_BB, FOR_EACH_EDGE, free_dominance_info(), GE, GET_CODE, get_condition(), get_loop_body(), GET_MODE, GET_RTX_CLASS, GT, loop::header, i, insn, iv_analysis_done(), last_basic_block_p(), last_insn, loop::latch, LE, LOOP_EXIT_EDGES, LT, NE, NEXT_INSN, NOT_TAKEN, NULL, loop::num_exits, loop::num_nodes, post_dominators, predict_edge(), predict_edge_def(), predict_insn_def(), predict_loops(), predicted_by_p(), PROFILE_ABSENT, PROFILE_GUESSED, REG_BR_PROB_BASE, REG_P, REG_POINTER, remove_fake_edges(), edge::src, basic_block_def::succ, edge::succ_next, TAKEN, and XEXP.
Referenced by rest_of_compilation(), and rest_of_handle_branch_prob().
| void expunge_block | ( | basic_block | ) |
Definition at line 488 of file cfgbuild.c.
| edge find_edge | ( | basic_block | , | |
| basic_block | ||||
| ) |
| int find_edge_index | ( | struct edge_list * | , | |
| basic_block | , | |||
| basic_block | ||||
| ) |
Definition at line 785 of file cfgbuild.c.
| void find_sub_basic_blocks | ( | basic_block | ) |
Definition at line 840 of file cfgbuild.c.
References b, compute_outgoing_frequencies(), basic_block_def::count, EDGE_FREQUENCY, find_bb_boundaries(), FOR_BB_BETWEEN, FOR_EACH_EDGE, basic_block_def::frequency, make_edges(), max, min, next, basic_block_def::next_bb, NULL, basic_block_def::pred, edge::pred_next, and basic_block_def::prev_bb.
| basic_block first_dom_son | ( | enum | cdi_direction, | |
| basic_block | ||||
| ) |
Definition at line 959 of file dominance.c.
Referenced by break_up_subtract_bb(), build_omp_regions_1(), compute_antic_aux(), compute_avail(), eliminate_degenerate_phis_1(), fill_sons_in_loop(), find_assert_locations(), gather_blocks_in_sese_region(), get_dominated_by_region(), insert_aux(), loopify(), prepare_block_for_update(), reassociate_bb(), remove_path(), sink_code_in_bb(), and walk_dominator_tree().
| rtx first_insn_after_basic_block_note | ( | basic_block | ) |
| int flow_depth_first_order_compute | ( | int * | , | |
| int * | ||||
| ) |
Definition at line 820 of file cfganal.c.
References abort, dest, edge::dest, EDGE_COUNT, ei_edge(), ei_next(), ei_one_before_end_p(), ei_start, ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR, free(), gcc_assert, basic_block_def::index, last_basic_block, n_basic_blocks, sbitmap_alloc(), sbitmap_free, sbitmap_zero(), SET_BIT, sp, src, edge::src, stack, basic_block_def::succ, edge::succ_next, TEST_BIT, visited, and xmalloc().
Referenced by df_analyse_1(), df_analyze_1(), flow_loops_find(), and vt_find_locations().
| void flow_reverse_top_sort_order_compute | ( | int * | ) |
Definition at line 751 of file cfganal.c.
References edge::dest, dest, EDGE_COUNT, ei_edge(), ei_next(), ei_one_before_end_p(), ei_start, ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR, free(), basic_block_def::index, last_basic_block, n_basic_blocks, sbitmap_alloc(), sbitmap_free, sbitmap_zero(), SET_BIT, sp, src, edge::src, stack, basic_block_def::succ, edge::succ_next, TEST_BIT, visited, and xmalloc().
Referenced by df_analyse_1(), df_analyze_1(), and set_up_bb_rts_numbers().
| basic_block force_nonfallthru | ( | edge | ) |
| bool forwarder_block_p | ( | basic_block | ) |
| void free_dominance_info | ( | enum | cdi_direction | ) |
Definition at line 653 of file dominance.c.
| void free_propagate_block_info | ( | struct propagate_block_info * | ) |
Definition at line 172 of file cfg.c.
References free_alloc_pool().
Referenced by cfg_layout_finalize(), and delete_tree_cfg_annotations().
| int get_dominated_by | ( | enum | cdi_direction, | |
| basic_block | , | |||
| basic_block ** | ||||
| ) |
Definition at line 712 of file dominance.c.
| unsigned get_dominated_by_region | ( | enum | cdi_direction, | |
| basic_block * | , | |||
| unsigned | , | |||
| basic_block * | ||||
| ) |
| basic_block get_immediate_dominator | ( | enum | cdi_direction, | |
| basic_block | ||||
| ) |
Definition at line 673 of file dominance.c.
| struct basic_block_def GTY | ( | (chain_next("%h.next_bb"), chain_prev("%h.prev_bb")) | ) | [read] |
Definition at line 212 of file basic-block.h.
Definition at line 118 of file basic-block.h.
References edge_def::aux, edge_def::count, edge_def::dest, edge_def::flags, GTY, edge_def::insns, edge_def::probability, PTR, r, skip, edge_def::src, and tag.
| void guess_outgoing_edge_probabilities | ( | basic_block | ) |
| struct propagate_block_info* init_propagate_block_info | ( | basic_block | , | |
| regset | , | |||
| regset | , | |||
| regset | , | |||
| int | ||||
| ) | [read] |
| void initialize_bb_rbi | ( | basic_block | bb | ) |
Definition at line 181 of file cfg.c.
References gcc_assert, memset, and pool_alloc().
Referenced by cfg_layout_create_basic_block(), cfg_layout_initialize(), create_bb(), fixup_fallthru_exit_predecessor(), and fixup_reorder_chain().
Definition at line 62 of file cfgbuild.c.
| void iterate_fix_dominators | ( | enum | cdi_direction, | |
| basic_block * | , | |||
| int | ||||
| ) |
Definition at line 899 of file dominance.c.
Definition at line 358 of file flow.c.
References allocate_bb_life_data(), allocate_reg_life_data(), ARRAY_SIZE, CLEAR_HARD_REG_SET, delete_dead_jumptables(), delete_noop_moves(), dump_flow_info(), elim_reg_set, ELIMINABLE_REGS, end_alias_analysis(), EXIT_BLOCK_PTR, FRAME_POINTER_REGNUM, free(), i, init_alias_analysis(), init_subregs_of_mode(), int, mark_regs_live_at_end(), memset, notice_stack_pointer_modification(), NULL, optimize, PROP_ALLOW_CFG_CHANGES, PROP_AUTOINC, PROP_LOG_LINKS, PROP_REG_INFO, PROP_SCAN_DEAD_STORES, reg_deaths, regs_asm_clobbered, regs_ever_live, reload_completed, SET_HARD_REG_BIT, UPDATE_LIFE_GLOBAL, and update_life_info().
| void link_block | ( | basic_block | , | |
| basic_block | ||||
| ) |
| edge make_edge | ( | basic_block | , | |
| basic_block | , | |||
| int | ||||
| ) |
| edge make_single_succ_edge | ( | basic_block | , | |
| basic_block | , | |||
| int | ||||
| ) |
| bool maybe_hot_bb_p | ( | basic_block | ) |
Definition at line 2072 of file cfgcleanup.c.
Referenced by cleanup_tree_cfg(), and cleanup_tree_cfg_1().
| basic_block nearest_common_dominator | ( | enum | cdi_direction, | |
| basic_block | , | |||
| basic_block | ||||
| ) |
Definition at line 788 of file dominance.c.
| basic_block next_dom_son | ( | enum | cdi_direction, | |
| basic_block | ||||
| ) |
Definition at line 970 of file dominance.c.
Referenced by break_up_subtract_bb(), build_omp_regions_1(), compute_antic_aux(), compute_avail(), eliminate_degenerate_phis_1(), fill_sons_in_loop(), find_assert_locations(), gather_blocks_in_sese_region(), get_dominated_by_region(), insert_aux(), loopify(), prepare_block_for_update(), reassociate_bb(), remove_path(), sink_code_in_bb(), and walk_dominator_tree().
| int optimize_mode_switching | ( | FILE * | ) |
Referenced by GTY(), rest_of_compilation(), and rest_of_handle_mode_switching().
Definition at line 2180 of file bb-reorder.c.
References cfg_layout_finalize(), cfg_layout_initialize(), find_rarely_executed_basic_blocks_and_crossing_edges(), fix_edges_for_rarely_executed_code(), FOR_EACH_BB, free(), basic_block_def::index, last_basic_block, n_basic_blocks, basic_block_def::next_bb, and xcalloc().
Referenced by rest_of_handle_partition_blocks().
| struct edge_list* pre_edge_lcm | ( | FILE * | , | |
| int | , | |||
| sbitmap * | , | |||
| sbitmap * | , | |||
| sbitmap * | , | |||
| sbitmap * | , | |||
| sbitmap ** | , | |||
| sbitmap ** | ||||
| ) | [read] |
| struct edge_list* pre_edge_rev_lcm | ( | FILE * | , | |
| int | , | |||
| sbitmap * | , | |||
| sbitmap * | , | |||
| sbitmap * | , | |||
| sbitmap * | , | |||
| sbitmap ** | , | |||
| sbitmap ** | ||||
| ) | [read] |
| bool probably_cold_bb_p | ( | basic_block | ) |
| bool probably_never_executed_bb_p | ( | basic_block | ) |
| int propagate_block | ( | basic_block | , | |
| regset | , | |||
| regset | , | |||
| regset | , | |||
| int | ||||
| ) |
| rtx propagate_one_insn | ( | struct propagate_block_info * | , | |
| rtx | ||||
| ) |
| bool purge_all_dead_edges | ( | int | ) |
Definition at line 2354 of file cfgrtl.c.
References blocks, FOR_EACH_BB, basic_block_def::index, last_basic_block, PROP_DEATH_NOTES, PROP_KILL_DEAD_CODE, PROP_SCAN_DEAD_CODE, purge_dead_edges(), sbitmap_alloc(), sbitmap_free, sbitmap_zero(), SET_BIT, UPDATE_LIFE_GLOBAL, and update_life_info().
Referenced by combine_instructions(), rest_of_compilation(), rest_of_handle_cse(), rest_of_handle_cse2(), rest_of_handle_gcse(), rest_of_handle_local_alloc(), rest_of_handle_old_regalloc(), rest_of_handle_postreload(), and tree_expand_cfg().
| bool purge_dead_edges | ( | basic_block | ) |
| basic_block recount_dominator | ( | enum | cdi_direction, | |
| basic_block | ||||
| ) |
Definition at line 863 of file dominance.c.
| void redirect_edge_pred | ( | edge | , | |
| basic_block | ||||
| ) |
| void redirect_edge_succ | ( | edge | , | |
| basic_block | ||||
| ) |
| edge redirect_edge_succ_nodup | ( | edge | , | |
| basic_block | ||||
| ) |
| void redirect_immediate_dominators | ( | enum | cdi_direction, | |
| basic_block | , | |||
| basic_block | ||||
| ) |
Definition at line 764 of file dominance.c.
Definition at line 588 of file cfganal.c.
Referenced by execute_sink_code(), fini_pre(), make_edges(), one_pre_gcse_pass(), see_execute_LCM(), store_motion(), tree_estimate_probability(), and try_optimize_cfg().
| void reorder_basic_blocks | ( | unsigned | int | ) |
Definition at line 1950 of file bb-reorder.c.
| void rtl_make_eh_edge | ( | sbitmap * | , | |
| basic_block | , | |||
| rtx | ||||
| ) |
Definition at line 202 of file cfgbuild.c.
References CALL_P, EDGE_ABNORMAL, EDGE_ABNORMAL_CALL, EDGE_EH, free_INSN_LIST_list(), i, make_label_edge(), reachable_handlers(), and XEXP.
Referenced by finish_eh_generation(), and make_edges().
| bool rtl_predicted_by_p | ( | basic_block | , | |
| enum | br_predictor | |||
| ) |
Definition at line 1456 of file cfgrtl.c.
References alloc_EXPR_LIST(), ALLOC_REG_SET, bitmap_and_into(), edge::dest, emit_insn(), emit_move_insn(), end_sequence(), EXECUTE_IF_SET_IN_REG_SET, FIRST_PSEUDO_REGISTER, fixed_regs, free_EXPR_LIST_list(), FREE_REG_SET, gen_raw_REG(), gen_reg_rtx(), get_insns(), GET_MODE, insert_insn_on_edge(), INSN_P, mark_killed_regs(), mode, NEXT_INSN, note_stores(), NULL_RTX, PATTERN, reg_obstack, reg_raw_mode, REGNO_PTR_FRAME_P, regno_reg_rtx, save_regs, SET_REGNO_REG_SET, start_sequence(), x, and XEXP.
Referenced by rtl_gen_const_delta_profiler(), rtl_gen_edge_profiler(), rtl_gen_interval_profiler(), rtl_gen_one_value_profiler(), and rtl_gen_pow2_profiler().
| void set_immediate_dominator | ( | enum | cdi_direction, | |
| basic_block | , | |||
| basic_block | ||||
| ) | [inline] |
Definition at line 688 of file dominance.c.
| bool tree_predicted_by_p | ( | basic_block | , | |
| enum | br_predictor | |||
| ) |
| edge try_redirect_by_replacing_jump | ( | edge | , | |
| basic_block | , | |||
| bool | ||||
| ) |
| edge unchecked_make_edge | ( | basic_block | , | |
| basic_block | , | |||
| int | ||||
| ) |
| void unlink_block | ( | basic_block | ) |
| void update_bb_for_insn | ( | basic_block | ) |
| void update_bb_profile_for_threading | ( | basic_block | , | |
| int | , | |||
| gcov_type | , | |||
| edge | ||||
| ) |
Definition at line 884 of file cfg.c.
Referenced by thread_across_edge(), thread_block(), and try_forward_edges().
| void update_br_prob_note | ( | basic_block | ) |
| int update_life_info | ( | sbitmap | , | |
| enum | update_life_extent, | |||
| int | ||||
| ) |
| int update_life_info_in_dirty_blocks | ( | enum | update_life_extent, | |
| int | ||||
| ) |
| static VEC | ( | edge | ) | [inline, static] |
Definition at line 557 of file basic-block.h.
| void verify_dominators | ( | enum | cdi_direction | ) |
Definition at line 817 of file dominance.c.
| enum dom_state dom_computed[2] |
Definition at line 48 of file dominance.c.
Referenced by add_to_dominance_info(), bb_dom_dfs_in(), bb_dom_dfs_out(), calculate_dominance_info(), combine_blocks(), compute_dom_fast_query(), create_basic_block(), delete_basic_block(), delete_from_dominance_info(), dom_info_available_p(), dominated_by_p(), find_if_header(), free_dominance_info(), get_dominated_by(), get_immediate_dominator(), iterate_fix_dominators(), merge_blocks(), mfb_update_loops(), nearest_common_dominator(), recount_dominator(), redirect_immediate_dominators(), remove_dead_stmt(), set_immediate_dominator(), split_edge(), tree_verify_flow_info(), and verify_ssa().
| int last_basic_block |
| int n_basic_blocks |
Definition at line 69 of file cfg.c.
Referenced by build_insn_chain(), calculate_global_regs_live(), cfg_layout_duplicate_bb(), cfg_layout_split_edge(), dead_or_predicable(), fix_crossing_conditional_branches(), force_nonfallthru_and_redirect(), init_deps_global(), init_propagate_block_info(), rtl_split_block(), rtl_split_edge(), safe_insert_insn_on_edge(), sh_output_mi_thunk(), simplify_using_initial_values(), struct_equiv_init(), tree_rest_of_compilation(), and update_life_info().
1.5.6