osprey/kg++fe/gnu/basic-block.h File Reference

#include "bitmap.h"
#include "sbitmap.h"
#include "varray.h"
#include "partition.h"
#include "hard-reg-set.h"

Include dependency graph for basic-block.h:

Go to the source code of this file.

Data Types

type  edge_def
type  basic_block_def
type  loop
type  loops
type  loops::cfg
type  ce_if_block
type  edge_list

Defines

#define INIT_REG_SET(HEAD)   bitmap_initialize (HEAD, 1)
#define CLEAR_REG_SET(HEAD)   bitmap_clear (HEAD)
#define COPY_REG_SET(TO, FROM)   bitmap_copy (TO, FROM)
#define REG_SET_EQUAL_P(A, B)   bitmap_equal_p (A, B)
#define AND_REG_SET(TO, FROM)   bitmap_operation (TO, TO, FROM, BITMAP_AND)
#define AND_COMPL_REG_SET(TO, FROM)   bitmap_operation (TO, TO, FROM, BITMAP_AND_COMPL)
#define IOR_REG_SET(TO, FROM)   bitmap_operation (TO, TO, FROM, BITMAP_IOR)
#define XOR_REG_SET(TO, FROM)   bitmap_operation (TO, TO, FROM, BITMAP_XOR)
#define IOR_AND_COMPL_REG_SET(TO, FROM1, FROM2)   bitmap_ior_and_compl (TO, FROM1, FROM2)
#define CLEAR_REGNO_REG_SET(HEAD, REG)   bitmap_clear_bit (HEAD, REG)
#define SET_REGNO_REG_SET(HEAD, REG)   bitmap_set_bit (HEAD, REG)
#define REGNO_REG_SET_P(TO, REG)   bitmap_bit_p (TO, REG)
#define REG_SET_TO_HARD_REG_SET(TO, FROM)
#define EXECUTE_IF_SET_IN_REG_SET(REGSET, MIN, REGNUM, CODE)   EXECUTE_IF_SET_IN_BITMAP (REGSET, MIN, REGNUM, CODE)
#define EXECUTE_IF_AND_COMPL_IN_REG_SET(REGSET1, REGSET2, MIN, REGNUM, CODE)   EXECUTE_IF_AND_COMPL_IN_BITMAP (REGSET1, REGSET2, MIN, REGNUM, CODE)
#define EXECUTE_IF_AND_IN_REG_SET(REGSET1, REGSET2, MIN, REGNUM, CODE)   EXECUTE_IF_AND_IN_BITMAP (REGSET1, REGSET2, MIN, REGNUM, CODE)
#define OBSTACK_ALLOC_REG_SET(OBSTACK)   BITMAP_OBSTACK_ALLOC (OBSTACK)
#define INITIALIZE_REG_SET(HEAD)   bitmap_initialize (&HEAD, 1)
#define FREE_REG_SET(REGSET)   BITMAP_FREE(REGSET)
#define INIT_ONCE_REG_SET()   BITMAP_INIT_ONCE ()
#define MAX_REGNO_REG_SET(NUM_REGS, NEW_P, RENUMBER_P)
#define EDGE_FALLTHRU   1
#define EDGE_ABNORMAL   2
#define EDGE_ABNORMAL_CALL   4
#define EDGE_EH   8
#define EDGE_FAKE   16
#define EDGE_DFS_BACK   32
#define EDGE_CAN_FALLTHRU   64
#define EDGE_COMPLEX   (EDGE_ABNORMAL | EDGE_ABNORMAL_CALL | EDGE_EH)
#define BB_FREQ_MAX   10000
#define BB_DIRTY   1
#define BB_NEW   2
#define BB_REACHABLE   4
#define BB_VISITED   8
#define BASIC_BLOCK(N)   (VARRAY_BB (basic_block_info, (N)))
#define FOR_BB_BETWEEN(BB, FROM, TO, DIR)   for (BB = FROM; BB != TO; BB = BB->DIR)
#define FOR_EACH_BB(BB)   FOR_BB_BETWEEN (BB, ENTRY_BLOCK_PTR->next_bb, EXIT_BLOCK_PTR, next_bb)
#define FOR_EACH_BB_REVERSE(BB)   FOR_BB_BETWEEN (BB, EXIT_BLOCK_PTR->prev_bb, ENTRY_BLOCK_PTR, prev_bb)
#define FOR_ALL_BB(BB)   for (BB = ENTRY_BLOCK_PTR; BB; BB = BB->next_bb)
#define REG_BLOCK_UNKNOWN   -1
#define REG_BLOCK_GLOBAL   -2
#define REG_BASIC_BLOCK(N)   (VARRAY_REG (reg_n_info, N)->basic_block)
#define BLOCK_HEAD(B)   (BASIC_BLOCK (B)->head)
#define BLOCK_END(B)   (BASIC_BLOCK (B)->end)
#define BLOCK_HEAD_TREE(B)   (BASIC_BLOCK (B)->head_tree)
#define BLOCK_END_TREE(B)   (BASIC_BLOCK (B)->end_tree)
#define ENTRY_BLOCK   (-1)
#define EXIT_BLOCK   (-2)
#define INVALID_BLOCK   (-3)
#define ENTRY_BLOCK_PTR   (&entry_exit_blocks[0])
#define EXIT_BLOCK_PTR   (&entry_exit_blocks[1])
#define BLOCK_NUM(INSN)   (BLOCK_FOR_INSN (INSN)->index + 0)
#define set_block_for_insn(INSN, BB)   (BLOCK_FOR_INSN (INSN) = BB)
#define EDGE_INDEX_NO_EDGE   -1
#define EDGE_INDEX(el, pred, succ)   (find_edge_index ((el), (pred), (succ)))
#define INDEX_EDGE_PRED_BB(el, index)   ((el)->index_to_edge[(index)]->src)
#define INDEX_EDGE_SUCC_BB(el, index)   ((el)->index_to_edge[(index)]->dest)
#define INDEX_EDGE(el, index)   ((el)->index_to_edge[(index)])
#define NUM_EDGES(el)   ((el)->num_edges)
#define FALLTHRU_EDGE(bb)
#define BRANCH_EDGE(bb)
#define EDGE_FREQUENCY(e)
#define EDGE_CRITICAL_P(e)
#define PROP_DEATH_NOTES   1
#define PROP_LOG_LINKS   2
#define PROP_REG_INFO   4
#define PROP_KILL_DEAD_CODE   8
#define PROP_SCAN_DEAD_CODE   16
#define PROP_ALLOW_CFG_CHANGES   32
#define PROP_AUTOINC   64
#define PROP_EQUAL_NOTES   128
#define PROP_SCAN_DEAD_STORES   256
#define PROP_FINAL
#define CLEANUP_EXPENSIVE   1
#define CLEANUP_CROSSJUMP   2
#define CLEANUP_POST_REGSTACK   4
#define CLEANUP_PRE_SIBCALL   8
#define CLEANUP_PRE_LOOP   16
#define CLEANUP_UPDATE_LIFE   32
#define CLEANUP_THREADING   64
#define CLEANUP_NO_INSN_DEL   128
#define LOOP_TREE   1
#define LOOP_PRE_HEADER   2
#define LOOP_ENTRY_EDGES   4
#define LOOP_EXIT_EDGES   8
#define LOOP_EDGES   (LOOP_ENTRY_EDGES | LOOP_EXIT_EDGES)
#define LOOP_ALL   15
#define VLS_EXPECT_PREHEADERS   1
#define VLS_EXPECT_SIMPLE_LATCHES   2

Typedefs

typedef bitmap_head regset_head
typedef bitmap regset
typedef HOST_WIDEST_INT gcov_type
typedef struct edge_defedge
typedef struct basic_block_defbasic_block
typedef struct dominance_infodominance_info
typedef struct ce_if_block ce_if_block_t
typedef struct conflict_graph_defconflict_graph
typedef int conflict_graph_enum_fn PARAMS ((int, int, void *))

Enumerations

enum  update_life_extent {
  UPDATE_LIFE_LOCAL = 0, UPDATE_LIFE_GLOBAL = 1, UPDATE_LIFE_GLOBAL_RM_NOTES = 2, UPDATE_LIFE_LOCAL = 0,
  UPDATE_LIFE_GLOBAL = 1, UPDATE_LIFE_GLOBAL_RM_NOTES = 2, UPDATE_LIFE_LOCAL = 0, UPDATE_LIFE_GLOBAL = 1,
  UPDATE_LIFE_GLOBAL_RM_NOTES = 2, UPDATE_LIFE_LOCAL = 0, UPDATE_LIFE_GLOBAL = 1, UPDATE_LIFE_GLOBAL_RM_NOTES = 2
}
enum  cdi_direction {
  CDI_DOMINATORS, CDI_POST_DOMINATORS, CDI_DOMINATORS, CDI_POST_DOMINATORS,
  CDI_DOMINATORS, CDI_POST_DOMINATORS, CDI_DOMINATORS, CDI_POST_DOMINATORS
}

Functions/Subroutines

void reg_set_to_hard_reg_set PARAMS ((HARD_REG_SET *, bitmap))
 GTY (()) rtx label_value_list
void compute_bb_for_insn PARAMS ((void))
void update_bb_for_insn PARAMS ((basic_block))
void free_basic_block_vars PARAMS ((int))
edge split_block PARAMS ((basic_block, rtx))
basic_block split_edge PARAMS ((edge))
void insert_insn_on_edge PARAMS ((rtx, edge))
int flow_call_edges_add PARAMS ((sbitmap))
edge cached_make_edge PARAMS ((sbitmap *, basic_block, basic_block, int))
edge unchecked_make_edge PARAMS ((basic_block, basic_block, int))
void redirect_edge_succ PARAMS ((edge, basic_block))
basic_block
create_basic_block_structure 
PARAMS ((rtx, rtx, rtx, basic_block))
basic_block create_basic_block PARAMS ((rtx, rtx, basic_block))
void merge_blocks_nomove PARAMS ((basic_block, basic_block))
void tidy_fallthru_edge PARAMS ((edge, basic_block, basic_block))
void
flow_reverse_top_sort_order_compute 
PARAMS ((int *))
int flow_depth_first_order_compute PARAMS ((int *, int *))
void dump_edge_info PARAMS ((FILE *, edge, int))
int flow_loops_find PARAMS ((struct loops *, int flags))
void flow_loops_free PARAMS ((struct loops *))
void flow_loops_dump PARAMS ((const struct loops *, FILE *, void(*)(const struct loop *, FILE *, int), int))
void flow_loop_dump PARAMS ((const struct loop *, FILE *, void(*)(const struct loop *, FILE *, int), int))
int flow_loop_scan PARAMS ((struct loops *, struct loop *, int))
void flow_loop_tree_node_add PARAMS ((struct loop *, struct loop *))
void flow_loop_tree_node_remove PARAMS ((struct loop *))
void free_edge_list PARAMS ((struct edge_list *))
void print_edge_list PARAMS ((FILE *, struct edge_list *))
int find_edge_index PARAMS ((struct edge_list *, basic_block, basic_block))
void life_analysis PARAMS ((rtx, FILE *, int))
int update_life_info PARAMS ((sbitmap, enum update_life_extent, int))
int
update_life_info_in_dirty_blocks 
PARAMS ((enum update_life_extent, int))
int count_or_remove_death_notes PARAMS ((sbitmap, int))
int propagate_block PARAMS ((basic_block, regset, regset, regset, int))
rtx propagate_one_insn PARAMS ((struct propagate_block_info *, rtx))
void free_propagate_block_info PARAMS ((struct propagate_block_info *))
struct edge_list *pre_edge_lcm PARAMS ((FILE *, int, sbitmap *, sbitmap *, sbitmap *, sbitmap *, sbitmap **, sbitmap **))
void compute_available PARAMS ((sbitmap *, sbitmap *, sbitmap *, sbitmap *))
void dump_bb PARAMS ((basic_block, FILE *))
void dump_regset PARAMS ((regset, FILE *))
void debug_regset PARAMS ((regset))
int delete_noop_moves PARAMS ((rtx))
void flow_nodes_print PARAMS ((const char *, const sbitmap, FILE *))
void flow_edge_list_print PARAMS ((const char *, const edge *, int, FILE *))
void alloc_aux_for_block PARAMS ((basic_block, int))
void alloc_aux_for_edge PARAMS ((edge, int))
bool flow_loop_outside_edge_p PARAMS ((const struct loop *, edge))
bool flow_loop_nested_p PARAMS ((const struct loop *, const struct loop *))
bool flow_bb_inside_loop_p PARAMS ((const struct loop *, const basic_block))
basic_block *get_loop_body PARAMS ((const struct loop *))
int dfs_enumerate_from PARAMS ((basic_block, int, bool(*)(basic_block, void *), basic_block *, int, void *))
void add_bb_to_loop PARAMS ((basic_block, struct loop *))
void verify_loop_structure PARAMS ((struct loops *, int))
void conflict_graph_delete PARAMS ((conflict_graph))
int conflict_graph_add PARAMS ((conflict_graph, int, int))
void conflict_graph_enum PARAMS ((conflict_graph, int, conflict_graph_enum_fn, void *))
void conflict_graph_print PARAMS ((conflict_graph, FILE *))
conflict_graph
conflict_graph_compute 
PARAMS ((regset, partition))
bool can_hoist_insn_p PARAMS ((rtx, rtx, regset))
rtx hoist_insn_after PARAMS ((rtx, rtx, rtx, rtx))
rtx hoist_insn_to_edge PARAMS ((rtx, edge, rtx, rtx))
dominance_info
calculate_dominance_info 
PARAMS ((enum cdi_direction))
void free_dominance_info PARAMS ((dominance_info))
basic_block
nearest_common_dominator 
PARAMS ((dominance_info, basic_block, basic_block))
basic_block get_immediate_dominator PARAMS ((dominance_info, basic_block))
int get_dominated_by PARAMS ((dominance_info, basic_block, basic_block **))
void iterate_fix_dominators PARAMS ((dominance_info, basic_block *, int))

Variables

int n_basic_blocks
int last_basic_block
int n_edges
varray_type basic_block_info
regset regs_live_at_setjmp
struct obstack flow_obstack
struct basic_block_def entry_exit_blocks [2]


Define Documentation

#define AND_COMPL_REG_SET ( TO,
FROM   )     bitmap_operation (TO, TO, FROM, BITMAP_AND_COMPL)

#define AND_REG_SET ( TO,
FROM   )     bitmap_operation (TO, TO, FROM, BITMAP_AND)

Definition at line 49 of file basic-block.h.

Referenced by conflict_graph_compute(), and thread_jump().

#define BASIC_BLOCK (  )     (VARRAY_BB (basic_block_info, (N)))

Definition at line 256 of file basic-block.h.

Referenced by add_exit_phis_var(), apply_opt_in_copies(), associate_equivalences_with_edges(), block_alloc(), block_at_edge_of_live_range_p(), calculate_global_regs_live(), calculate_live_on_exit(), clear_log_links(), collect_dfa_stats(), combine_instructions(), compact_blocks(), compute_defs_uses_and_gen(), compute_dominance_frontiers_1(), compute_global_livein(), compute_rvuse_and_antic_safe(), copy_phi_node_args(), copy_src_to_dest(), count_or_remove_death_notes(), create_basic_block_structure(), create_bb(), debug_bb_n(), debug_tree_bb_n(), df_bb_refs_delete(), df_chain_bb_reset(), df_chain_create_bb(), df_compact_blocks(), df_delete_basic_block(), df_iterative_dataflow(), df_lr_bb_local_compute(), df_rd_bb_local_compute(), df_refs_record(), df_rescan_blocks(), df_ri_bb_compute(), df_ru_bb_local_compute(), df_set_blocks(), df_ur_bb_local_compute(), df_urec_bb_local_compute(), expunge_block(), find_idf(), find_if_case_1(), find_uses_to_rename(), fix_recovery_cfg(), fixup_reorder_chain(), flow_call_edges_add(), flow_loops_find(), get_bb_copy(), get_bb_original(), insert_one_insn(), insert_phi_node(), insert_phi_nodes(), insert_phi_nodes_for(), insert_updated_phi_nodes_for(), iterative_dataflow(), iterative_dataflow_bitmap(), iterative_dataflow_sbitmap(), label_to_block(), label_to_block_fn(), link_btr_uses(), live_worklist(), loop_commit_inserts(), make_edges(), make_equivalent_phi_alternatives_equivalent(), make_regs_equivalent_over_bad_edges(), mark_target_live_regs(), migrate_btr_defs(), nearest_common_dominator_for_set(), nearest_common_dominator_of_uses(), predict_paths_leading_to(), print_loop_ir(), print_rtl_graph_with_bb(), process_note_prediction(), propagate_freq(), prune_unused_phi_nodes(), ra_debug_bbi(), rename_block(), rename_variables(), rtl_flow_call_edges_add(), set_livein_block(), ssa_eliminate_dead_code(), thread_through_all_blocks(), tree_duplicate_loop_to_header_edge(), tree_flow_call_edges_add(), tree_purge_all_dead_eh_edges(), update_life_info(), verify_flow_info(), and visit_phi_node().

#define BB_DIRTY   1

#define BB_FREQ_MAX   10000

#define BB_NEW   2

Definition at line 236 of file basic-block.h.

Referenced by create_basic_block_structure(), and create_bb().

#define BB_REACHABLE   4

#define BB_VISITED   8

Definition at line 238 of file basic-block.h.

Referenced by dfs_enumerate_from().

#define BLOCK_END ( B   )     (BASIC_BLOCK (B)->end)

Definition at line 300 of file basic-block.h.

Referenced by block_alloc(), hash_scan_set(), and insert_one_insn().

#define BLOCK_END_TREE ( B   )     (BASIC_BLOCK (B)->end_tree)

Definition at line 303 of file basic-block.h.

#define BLOCK_HEAD ( B   )     (BASIC_BLOCK (B)->head)

#define BLOCK_HEAD_TREE ( B   )     (BASIC_BLOCK (B)->head_tree)

Definition at line 302 of file basic-block.h.

#define BLOCK_NUM ( INSN   )     (BLOCK_FOR_INSN (INSN)->index + 0)

#define BRANCH_EDGE ( bb   ) 

#define CLEANUP_CROSSJUMP   2

#define CLEANUP_EXPENSIVE   1

#define CLEANUP_NO_INSN_DEL   128

Definition at line 657 of file basic-block.h.

Referenced by cleanup_cfg(), finish_eh_generation(), and rest_of_handle_eh().

#define CLEANUP_POST_REGSTACK   4

#define CLEANUP_PRE_LOOP   16

#define CLEANUP_PRE_SIBCALL   8

#define CLEANUP_THREADING   64

#define CLEANUP_UPDATE_LIFE   32

#define CLEAR_REG_SET ( HEAD   )     bitmap_clear (HEAD)

#define CLEAR_REGNO_REG_SET ( HEAD,
REG   )     bitmap_clear_bit (HEAD, REG)

#define COPY_REG_SET ( TO,
FROM   )     bitmap_copy (TO, FROM)

#define EDGE_ABNORMAL   2

Definition at line 140 of file basic-block.h.

Referenced by add_phi_arg(), analyze_edges_for_bb(), bb_has_well_behaved_predecessors(), branch_prob(), can_copy_bbs_p(), candidate_bb_for_phi_optimization(), canonicalize_loop_headers(), coalesce_abnormal_edges(), commit_one_edge_insertion(), compute_antic(), compute_pre_data(), construct_exit_block(), cprop_into_successor_phis(), create_new_def_for(), dom_opt_finalize_block(), eliminate_phi(), erase_matching_seqs(), expand_gimple_basic_block(), expand_gimple_tailcall(), find_control_dependence(), find_spanning_tree(), fix_phi_uses(), fixup_abnormal_edges(), flow_loops_find(), force_nonfallthru_and_redirect(), global_conflicts(), has_abnormal_incoming_edge_p(), has_abnormal_outgoing_edge_p(), hoist_insn_to_edge(), if_convertible_bb_p(), init_pre(), insert_edge_copies(), insert_extra_phis(), insert_insn_end_bb(), insert_insn_end_bb_new(), insert_insn_on_edge(), insert_store(), instrument_edges(), live_in_edge(), loop_suitable_for_sm(), make_abnormal_goto_edges(), make_edges(), make_eh_edge(), make_goto_expr_edges(), make_regs_equivalent_over_bad_edges(), optimize_unexecutable_edges(), pre_edge_insert(), print_rtl_graph_with_bb(), process_assert_insertions_for(), propagate_rhs_into_lhs(), purge_dead_edges(), purge_dead_tablejump_edges(), redirect_edges(), remove_forwarder_block(), replace_immediate_uses(), replace_phi_args_in(), replace_uses_by(), rewrite_to_new_ssa_names_bb(), rewrite_update_init_block(), rewrite_update_phi_arguments(), rewrite_virtual_phi_arguments(), rtl_make_eh_edge(), rtl_split_edge(), rtl_verify_flow_info_1(), see_pre_insert_extensions(), simulate_block(), sink_code_in_bb(), split_critical_edges(), split_edge(), split_pattern_seq(), ssa_rewrite_initialize_block(), ssa_rewrite_phi_arguments(), store_motion(), tree_can_merge_blocks_p(), tree_find_edge_insert_loc(), tree_forwarder_block_p(), tree_purge_dead_abnormal_call_edges(), tree_redirect_edge_and_branch(), tree_split_edge(), tree_ssa_phiopt(), tree_verify_flow_info(), try_crossjump_to_edge(), VEC(), vect_analyze_loop_form(), verify_flow_info(), and verify_phi_args().

#define EDGE_ABNORMAL_CALL   4

#define EDGE_CAN_FALLTHRU   64

#define EDGE_COMPLEX   (EDGE_ABNORMAL | EDGE_ABNORMAL_CALL | EDGE_EH)

#define EDGE_CRITICAL_P (  ) 

#define EDGE_DFS_BACK   32

#define EDGE_EH   8

#define EDGE_FAKE   16

#define EDGE_FALLTHRU   1

Definition at line 139 of file basic-block.h.

Referenced by add_labels_and_missing_jumps(), analyze_edges_for_bb(), begin_schedule_ready(), bfin_discover_loop(), block_fallthru(), block_jumps_and_fallthru_p(), branch_prob(), can_duplicate_block_p(), can_fallthru(), cfg_layout_can_duplicate_bb_p(), cfg_layout_redirect_edge(), cfg_layout_redirect_edge_and_branch(), cfg_layout_split_edge(), check_simple_exit(), cleanup_control_expr_graph(), cleanup_unconditional_jumps(), combine_blocks(), commit_one_edge_insertion(), compute_alignments(), compute_branch_probabilities(), compute_jump_reg_dependencies(), construct_exit_block(), construct_init_block(), copy_edges_for_bb(), could_fall_through(), create_edge_and_update_destination_phis(), create_preheader(), disband_implicit_edges(), dump_implicit_edges(), dump_prediction(), dw2_build_landing_pads(), emit_insn_at_entry(), emit_to_new_bb_before(), expand_complex_div_wide(), expand_complex_move(), expand_gimple_cond_expr(), expand_omp_for_generic(), expand_omp_for_static_chunk(), expand_omp_for_static_nochunk(), expand_omp_parallel(), expand_omp_sections(), expand_omp_single(), expand_omp_synch(), expand_parallel_call(), find_if_block(), find_if_case_1(), find_if_header(), fix_basic_block_boundaries(), fix_up_fall_thru_edges(), fixup_abnormal_edges(), fixup_fallthru_exit_predecessor(), fixup_reorder_chain(), force_nonfallthru_and_redirect(), ia64_expand_prologue(), init_propagate_block_info(), ix86_pad_returns(), loop_optimizer_init(), lv_adjust_loop_entry_edge(), make_edges(), make_exit_edges(), make_goto_expr_edges(), make_reorder_chain_1(), merge_blocks(), merge_blocks_move(), mf_build_check_statement_for(), move_sese_region_to_fn(), mt_loop_nesting(), optimize_unexecutable_edges(), outgoing_edges_match(), perfect_nestify(), predict_edge(), propagate_rhs_into_lhs(), purge_dead_edges(), redirect_branch_edge(), redirect_edge_and_branch(), redirect_edges(), remove_dead_stmt(), remove_fallthru_edge(), replace_phi_edge_with_variable(), replace_phi_with_stmt(), rtl_extract_cond_bb_edges(), rtl_predict_edge(), 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_dispatch_table(), sjlj_emit_function_exit(), slpeel_add_loop_guard(), split_block(), split_edge(), thread_jump(), thread_prologue_and_epilogue_insns(), tidy_fallthru_edge(), tree_divmod_fixed_value(), tree_lv_add_condition_to_bb(), tree_merge_blocks(), tree_mod_pow2(), tree_mod_subtract(), tree_redirect_edge_and_branch(), tree_split_edge(), tree_ssa_phiopt(), tree_try_redirect_by_replacing_jump(), tree_verify_flow_info(), try_crossjump_bb(), try_forward_edges(), try_optimize_cfg(), try_redirect_by_replacing_jump(), try_simplify_condjump(), unswitch_loop(), VEC(), verify_flow_info(), visit_expression(), and x86_machine_dependent_reorg().

#define EDGE_FREQUENCY (  ) 

#define EDGE_INDEX ( el,
pred,
succ   )     (find_edge_index ((el), (pred), (succ)))

#define EDGE_INDEX_NO_EDGE   -1

Definition at line 578 of file basic-block.h.

Referenced by find_edge_index(), insert_store(), and verify_edge_list().

#define ENTRY_BLOCK   (-1)

#define ENTRY_BLOCK_PTR   (&entry_exit_blocks[0])

Definition at line 314 of file basic-block.h.

Referenced by add_labels_and_missing_jumps(), add_livein_if_notdef(), alloc_aux_for_blocks(), alloc_aux_for_edges(), allocate_bb_life_data(), assemble_start_function(), bb_to_key(), bfin_optimize_loop(), blocks_in_phiopt_order(), branch_prob(), bsi_commit_edge_inserts(), build_insn_chain(), build_omp_regions(), build_tree_cfg(), bypass_conditional_jumps(), cached_make_edge(), calc_dfs_tree(), calc_dfs_tree_nonrec(), calc_idoms(), calculate_dominance_info(), calculate_global_regs_live(), calculate_live_on_entry(), calculate_live_on_exit(), can_duplicate_block_p(), canonicalize_loop_headers(), cfg_blocks_add(), cfg_layout_can_duplicate_bb_p(), cfg_layout_can_merge_blocks_p(), cfg_layout_finalize(), cfg_layout_initialize(), cfg_layout_redirect_edge_and_branch(), cfg_layout_split_edge(), check_bb_profile(), classic_gcse(), cleanup_unconditional_jumps(), clear_aux_for_blocks(), clear_aux_for_edges(), clear_bb_flags(), clear_blocks_annotations(), clear_edges(), combine_reloads(), commit_edge_insertions(), commit_edge_insertions_watch_calls(), commit_one_edge_insertion(), compact_blocks(), compute_alignments(), compute_antinout_edge(), compute_avail(), compute_available(), compute_branch_probabilities(), compute_dominance_frontiers_1(), compute_earliest(), compute_farthest(), compute_global_livein(), compute_laterin(), compute_nearerout(), compute_rev_insert_delete(), compute_rvuse_and_antic_safe(), connect_traces(), construct_init_block(), convert_from_ssa(), copy_cfg_body(), copyprop_hardreg_forward(), counts_to_freqs(), cprop(), create_edge_list(), delete_unreachable_blocks(), determine_invariantness(), df_record_entry_block_defs(), do_reassoc(), dump_bb_header(), dump_edge_info(), dump_function_to_file(), eliminate_degenerate_phis(), eliminate_partially_redundant_loads(), eliminate_tail_call(), emit_insn_at_entry(), entry_of_function(), estimate_bb_frequencies(), expensive_function_p(), find_basic_block(), find_basic_blocks(), find_basic_blocks_1(), find_bb_boundaries(), find_control_dependence(), find_dummy_reload(), find_pdom(), find_rarely_executed_basic_blocks_and_crossing_edges(), find_spanning_tree(), find_traces(), find_traces_1_round(), find_unreachable_blocks(), fixup_fallthru_exit_predecessor(), fixup_reorder_chain(), flow_bb_inside_loop_p(), flow_depth_first_order_compute(), flow_loop_nodes_find(), flow_loop_pre_header_find(), flow_loop_pre_header_scan(), flow_loops_find(), flow_preorder_transversal_compute(), flow_reverse_top_sort_order_compute(), for_each_successor_phi(), force_nonfallthru_and_redirect(), forwarder_block_p(), free_basic_block_vars(), free_dominance_info(), get_exec_counts(), get_last_value(), get_last_value_validate(), get_loops_exits(), hoist_expr_reaches_here_p(), hybrid_search(), hybrid_search_bitmap(), hybrid_search_sbitmap(), init_empty_tree_cfg(), init_flow(), init_pre(), initialize_uninitialized_subregs(), insert(), insert_phi_node(), insert_range_assertions(), insert_updated_phi_nodes_for(), instrument_edges(), ix86_eax_live_at_start_p(), layout_superblocks(), live_on_exit(), live_worklist(), make_blocks(), make_edges(), make_reorder_chain_1(), mark_control_dependent_edges_necessary(), mark_def_site_blocks(), mark_dfs_back_edges(), mark_irreducible_loops(), mark_single_exit_loops(), merge_blocks(), merge_blocks_move(), merge_seq_blocks(), mf_decl_cache_locals(), mf_xform_derefs(), migrate_btr_def(), move_computations(), move_sese_region_to_fn(), nearest_common_dominator_of_uses(), nonzero_bits1(), note_prediction_to_br_prob(), num_sign_bit_copies1(), optimize_inline_calls(), perform_edge_inserts(), post_order_compute(), pre_and_rev_post_order_compute(), pre_expr_reaches_here_p_work(), predict_paths_leading_to(), print_edge_list(), process_note_prediction(), prologue_stack_adjust(), propagate_freq(), propagate_necessity(), push_reload(), reachable_at_most_once(), rebuild_cgraph_edges(), recount_dominator(), reg_dead_at_p(), reg_nonzero_bits_for_combine(), reg_num_sign_bit_copies_for_combine(), register_division_in(), regno_clobbered_at_setjmp(), regno_uninitialized(), remove_fake_edges(), rewrite_blocks(), rewrite_into_ssa(), rewrite_ssa_into_ssa(), rtl_can_merge_blocks(), rtl_verify_flow_info(), rtl_verify_flow_info_1(), scalarize_parms(), set_control_dependence_map_bit(), set_nonzero_bits_and_sign_copies(), sh_output_mi_thunk(), simplify_using_entry_checks(), simplify_using_initial_conditions(), simplify_using_initial_values(), sjlj_emit_function_enter(), ssa_const_prop(), ssa_prop_init(), thread_prologue_and_epilogue_insns(), tidy_fallthru_edges(), tree_bb_level_predictions(), tree_cfg2vcg(), tree_expand_cfg(), tree_find_edge_insert_loc(), tree_forwarder_block_p(), tree_optimize_tail_calls_1(), tree_predict_edge(), tree_redirect_edge_and_branch(), tree_ssa_dominator_optimize(), tree_ssa_uncprop(), tree_verify_flow_info(), try_crossjump_to_edge(), try_optimize_cfg(), update_life_info(), update_parameter_components(), update_ssa(), verify_dominators(), verify_edge_list(), verify_flow_info(), vt_add_function_parameters(), vt_initialize(), vt_stack_adjustments(), and walk_dominator_tree().

#define EXECUTE_IF_AND_COMPL_IN_REG_SET ( REGSET1,
REGSET2,
MIN,
REGNUM,
CODE   )     EXECUTE_IF_AND_COMPL_IN_BITMAP (REGSET1, REGSET2, MIN, REGNUM, CODE)

Definition at line 90 of file basic-block.h.

#define EXECUTE_IF_AND_IN_REG_SET ( REGSET1,
REGSET2,
MIN,
REGNUM,
CODE   )     EXECUTE_IF_AND_IN_BITMAP (REGSET1, REGSET2, MIN, REGNUM, CODE)

Definition at line 96 of file basic-block.h.

#define EXECUTE_IF_SET_IN_REG_SET ( REGSET,
MIN,
REGNUM,
CODE   )     EXECUTE_IF_SET_IN_BITMAP (REGSET, MIN, REGNUM, CODE)

#define EXIT_BLOCK   (-2)

#define EXIT_BLOCK_PTR   (&entry_exit_blocks[1])

Definition at line 315 of file basic-block.h.

Referenced by add_block1(), add_control_edge(), add_labels_and_missing_jumps(), add_noreturn_fake_exit_edges(), alloc_aux_for_edges(), apply_return_prediction(), bfin_discover_loop(), block_has_only_trap(), block_label(), block_label_after(), branch_prob(), build_insn_chain(), build_tree_cfg(), bypass_block(), bypass_conditional_jumps(), cached_make_edge(), calc_dfs_tree(), calc_dfs_tree_nonrec(), calc_idoms(), calculate_dominance_info(), calculate_global_regs_live(), calculate_live_on_entry(), can_duplicate_block_p(), can_fallthru(), cfg_blocks_add(), cfg_layout_can_duplicate_bb_p(), cfg_layout_can_merge_blocks_p(), cfg_layout_delete_block(), cfg_layout_duplicate_bb(), check_bb_profile(), check_function_return_warnings(), classic_gcse(), clear_aux_for_edges(), clear_edges(), coalesce_abnormal_edges(), coalesce_result_decls(), commit_edge_insertions(), commit_edge_insertions_watch_calls(), commit_one_edge_insertion(), compact_blocks(), compute_antic(), compute_antinout_edge(), compute_available(), compute_branch_probabilities(), compute_code_hoist_vbeinout(), compute_dominance_frontiers_1(), compute_earliest(), compute_farthest(), compute_insert_delete(), compute_laterin(), compute_nearerout(), connect_infinite_loops_to_exit(), connect_traces(), construct_exit_block(), construct_init_block(), copy_cfg_body(), copy_edges_for_bb(), could_fall_through(), cprop(), create_edge_list(), create_loop_notes(), cse_cc_succs(), delete_unreachable_blocks(), df_lr_confluence_0(), df_record_exit_block_uses(), disband_implicit_edges(), distribute_links(), do_reassoc(), dump_bb_end(), dump_edge_info(), dump_function_to_file(), duplicate_computed_gotos(), eliminate_partially_redundant_loads(), eliminate_tail_call(), estimate_probability(), examine_flow_edges(), execute_sink_code(), execute_warn_function_noreturn(), execute_warn_function_return(), expand_gimple_tailcall(), find_basic_blocks(), find_control_dependence(), find_if_block(), find_if_case_1(), find_implicit_sets(), find_interesting_uses(), find_many_sub_basic_blocks(), find_pdom(), find_rarely_executed_basic_blocks_and_crossing_edges(), find_spanning_tree(), find_traces_1_round(), fix_bb_placement(), fix_crossing_conditional_branches(), fix_up_fall_thru_edges(), fixup_fallthru_exit_predecessor(), fixup_reorder_chain(), flow_bb_inside_loop_p(), flow_call_edges_add(), flow_depth_first_order_compute(), flow_dfs_compute_reverse_execute(), flow_loops_find(), flow_preorder_transversal_compute(), flow_reverse_top_sort_order_compute(), for_each_successor_phi(), force_nonfallthru_and_redirect(), forwarder_block_p(), free_basic_block_vars(), free_dominance_info(), frv_optimize_membar_global(), get_loop_body(), get_loop_body_in_bfs_order(), get_loop_body_in_dom_order(), get_loop_body_in_if_conv_order(), get_loop_exit_edges(), hybrid_search(), hybrid_search_bitmap(), hybrid_search_sbitmap(), ia64_expand_prologue(), init_empty_tree_cfg(), init_flow(), init_propagate_block_info(), insert_store(), ix86_pad_returns(), last_basic_block_p(), layout_superblocks(), life_analysis(), live_on_exit(), loop_delete_branch_edge(), loop_optimizer_init(), make_ctrl_stmt_edges(), make_edges(), make_exit_edges(), make_goto_expr_edges(), make_reorder_chain_1(), mark_control_dependent_edges_necessary(), mark_dfs_back_edges(), mark_irreducible_loops(), mark_single_exit_loops(), merge_if_block(), merge_seq_blocks(), move_sese_region_to_fn(), mt_reorg_loops(), num_loop_branches(), optimize_sibling_and_tail_recursive_calls(), optimize_unexecutable_edges(), perfect_nestify(), perform_edge_inserts(), post_order_compute(), pre_and_rev_post_order_compute(), print_edge_list(), print_rtl_graph_with_bb(), process_for_unwind_directive(), propagate_freq(), propagate_one_insn(), purge_dead_edges(), redirect_branch_edge(), redirect_edge_and_branch(), reg_alloc(), reg_dead_at_p(), regmove_optimize(), remove_dead_stmt(), remove_fake_edges(), remove_fake_exit_edges(), remove_path(), remove_reachable_equiv_notes(), rename_block(), rest_of_handle_loop2(), rest_of_handle_sms(), rewrite_virtual_phi_arguments(), rotate_loop(), rs6000_emit_prologue(), rtl_can_merge_blocks(), rtl_flow_call_edges_add(), rtl_loop_done(), rtl_split_edge(), rtl_verify_flow_info(), rtl_verify_flow_info_1(), schedule_ebbs(), set_control_dependence_map_bit(), sh_output_mi_thunk(), simulate_block(), sjlj_emit_function_exit(), skip_insns_after_block(), split_edge(), ssa_mark_phi_uses(), ssa_rewrite_phi_arguments(), thread_prologue_and_epilogue_insns(), tidy_fallthru_edges(), tree_can_merge_blocks_p(), tree_cfg2vcg(), tree_duplicate_bb(), tree_estimate_probability(), tree_expand_cfg(), tree_find_edge_insert_loc(), tree_flow_call_edges_add(), tree_forwarder_block_p(), tree_optimize_tail_calls_1(), tree_ssa_dse(), tree_verify_flow_info(), try_combine(), try_crossjump_bb(), try_forward_edges(), try_optimize_cfg(), try_redirect_by_replacing_jump(), try_simplify_condjump(), unswitch_loop(), verify_edge_list(), verify_flow_info(), verify_loop_structure(), vt_find_locations(), and x86_machine_dependent_reorg().

#define FALLTHRU_EDGE ( bb   ) 

#define FOR_ALL_BB ( BB   )     for (BB = ENTRY_BLOCK_PTR; BB; BB = BB->next_bb)

#define FOR_BB_BETWEEN ( BB,
FROM,
TO,
DIR   )     for (BB = FROM; BB != TO; BB = BB->DIR)

#define FOR_EACH_BB ( BB   )     FOR_BB_BETWEEN (BB, ENTRY_BLOCK_PTR->next_bb, EXIT_BLOCK_PTR, next_bb)

Definition at line 262 of file basic-block.h.

Referenced by add_noreturn_fake_exit_edges(), add_reg_crossing_jump_notes(), add_unlikely_executed_notes(), alloc_gcse_mem(), alloc_mem(), allocate_bb_info(), allocate_initial_values(), associate_equivalences_with_edges(), bfin_reorg_loops(), blocks_in_phiopt_order(), branch_prob(), break_superblocks(), brief_dump_cfg(), bsi_commit_edge_inserts(), build_store_vectors(), build_tree_conflict_graph(), calculate_dominance_info(), calculate_global_regs_live(), calculate_live_on_entry(), calculate_live_on_exit(), calculate_local_reg_bb_info(), calculate_reg_pav(), canonicalize_loop_headers(), ccp_initialize(), cfg_remove_useless_stmts(), check_all_va_list_escapes(), cleanup_dead_labels(), cleanup_forwarder_blocks(), cleanup_unconditional_jumps(), clear_edges(), coalesce_abnormal_edges(), coalesce_asm_operands(), coalesce_phi_operands(), coalesce_vars(), collect_dfa_stats(), collect_pattern_seqs(), combine_instructions(), combine_stack_adjustments(), commit_edge_insertions(), commit_edge_insertions_watch_calls(), compact_blocks(), compute_ae_kill(), compute_alignments(), compute_antic(), compute_available(), compute_bb_for_insn(), compute_branch_probabilities(), compute_checksum(), compute_dominance_frontiers_1(), compute_function_frequency(), compute_hash_table(), compute_hash_table_work(), compute_immediate_uses(), compute_init_costs(), compute_insert_delete(), compute_kill_rd(), compute_laterin(), compute_ld_motion_mems(), compute_may_aliases(), compute_nearerout(), compute_object_sizes(), compute_points_to_and_addr_escape(), compute_points_to_sets(), compute_pre_data(), compute_rd(), compute_rev_insert_delete(), compute_rvuse_and_antic_safe(), compute_sets(), compute_store_table(), compute_transp(), compute_transpout(), compute_vuse_representatives(), convert_to_ssa(), copyprop_hardreg_forward(), count_or_remove_death_notes(), counts_to_freqs(), create_loop_notes(), create_ssa_var_map(), create_structure_vars(), cse_condition_code_reg(), debug_dominance_info(), delete_dead_jumptables(), delete_noop_moves(), delete_null_pointer_checks(), delete_null_pointer_checks_1(), delete_tree_cfg_annotations(), delete_tree_ssa(), detect_webs_set_in_cond_jump(), determine_lsm(), df_alloc(), df_analyse_1(), df_analyze_1(), df_analyze_subcfg(), df_bitmaps_alloc(), df_bitmaps_free(), df_compact_blocks(), df_dump(), df_modified_p(), disband_implicit_edges(), discover_nonconstant_array_refs(), dump_cfg_stats(), dump_dataflow_sets(), dump_flow_info(), dump_function_to_file(), dump_immediate_uses(), dump_live_info(), dump_points_to_info(), dump_static_insn_cost(), dump_tree_ssa(), duplicate_computed_gotos(), eliminate(), eliminate_unnecessary_stmts(), eliminate_virtual_phis(), emit_colors(), estimate_bb_frequencies(), estimate_probability(), execute_cse_reciprocals(), execute_early_warn_uninitialized(), execute_fixup_cfg(), execute_fold_all_builtins(), execute_free_cfg_annotations(), execute_late_warn_uninitialized(), execute_optimize_stdarg(), execute_return_slot_opt(), expand_vector_operations(), expensive_function_p(), factor_computed_gotos(), fill_hash_bucket(), find_basic_block(), find_basic_blocks(), find_implicit_sets(), find_many_sub_basic_blocks(), find_obviously_necessary_stmts(), find_rarely_executed_basic_blocks_and_crossing_edges(), find_referenced_vars(), find_replaceable_exprs(), find_unreachable_blocks(), find_uses_to_rename(), finish_eh_generation(), fix_crossing_conditional_branches(), fix_crossing_unconditional_branches(), fix_loop_structure(), fix_up_fall_thru_edges(), fixup_abnormal_edges(), fixup_reorder_chain(), flow_loops_cfg_dump(), flow_loops_find(), flow_preorder_transversal_compute(), fold_cond_expr_cond(), free_all_edge_infos(), free_bb_info(), free_df(), free_dominance_info(), frv_optimize_membar(), get_loop_body(), get_loops_exits(), global_conflicts(), group_case_labels(), hoist_code(), identify_jump_threads(), if_convert(), init_alias_info(), init_copy_prop(), init_dont_simulate_again(), insert_backedge_copies(), insert_section_boundary_note(), kill_redundant_phi_nodes(), local_alloc(), local_cprop_pass(), make_abnormal_goto_edges(), make_accurate_live_analysis(), make_edges(), make_goto_expr_edges(), make_reorder_chain(), mark_elimination(), mark_loop_exit_edges(), mark_really_necessary_kill_operand_phis(), mark_single_exit_loops(), merge_phi_nodes(), modify_reg_pav(), mt_reorg_loops(), note_prediction_to_br_prob(), notice_stack_pointer_modification(), optimize_inline_calls(), optimize_unexecutable_edges(), partition_hot_cold_basic_blocks(), perform_edge_inserts(), print_loop(), propagate_freq(), purge_all_dead_edges(), rebuild_cgraph_edges(), recalculate_used_alone(), record_effective_endpoints(), reg_dead_at_p(), reg_is_remote_constant_p(), regclass(), regmove_optimize(), regrename_optimize(), reload(), remove_all_phi_nodes_for(), remove_range_assertions(), remove_ssa_form(), remove_unused_locals(), rename_block(), rename_ssa_copies(), rest_of_handle_loop2(), rest_of_handle_sms(), rewrite_into_ssa(), rewrite_ssa_into_ssa(), rewrite_trees(), rtl_loop_done(), s390_regs_ever_clobbered(), scan_one_insn(), scev_const_prop(), schedule_ebbs(), set_edge_can_fallthru_flag(), sra_walk_function(), store_motion(), strip_builtin_expect(), substitute_and_fold(), tail_duplicate(), thread_prologue_and_epilogue_insns(), thread_through_all_blocks(), tree_bb_level_predictions(), tree_cfg2vcg(), tree_estimate_probability(), tree_find_values_to_profile(), tree_lower_complex(), tree_lower_complex_O0(), tree_lower_operations(), tree_nrv(), tree_ssa_dominator_optimize(), tree_ssa_dse(), tree_ssa_forward_propagate_single_use_vars(), tree_ssa_lim_finalize(), tree_ssa_lim_initialize(), tree_ssa_phiopt(), tree_ssa_uncprop(), tree_value_profile_transformations(), tree_verify_flow_info(), try_optimize_cfg(), update_equiv_regs(), update_life_info(), update_life_info_in_dirty_blocks(), update_ssa(), VEC(), verify_dominators(), verify_hot_cold_block_grouping(), verify_loop_closed_ssa(), verify_loop_structure(), verify_ssa(), verify_stmts(), vrp_initialize(), vt_emit_notes(), vt_finalize(), vt_find_locations(), and vt_initialize().

#define FOR_EACH_BB_REVERSE ( BB   )     FOR_BB_BETWEEN (BB, EXIT_BLOCK_PTR->prev_bb, ENTRY_BLOCK_PTR, prev_bb)

#define FREE_REG_SET ( REGSET   )     BITMAP_FREE(REGSET)

#define INDEX_EDGE ( el,
index   )     ((el)->index_to_edge[(index)])

#define INDEX_EDGE_PRED_BB ( el,
index   )     ((el)->index_to_edge[(index)]->src)

#define INDEX_EDGE_SUCC_BB ( el,
index   )     ((el)->index_to_edge[(index)]->dest)

 
#define INIT_ONCE_REG_SET (  )     BITMAP_INIT_ONCE ()

Definition at line 109 of file basic-block.h.

Referenced by init_reg_sets().

#define INIT_REG_SET ( HEAD   )     bitmap_initialize (HEAD, 1)

#define INITIALIZE_REG_SET ( HEAD   )     bitmap_initialize (&HEAD, 1)

#define INVALID_BLOCK   (-3)

#define IOR_AND_COMPL_REG_SET ( TO,
FROM1,
FROM2   )     bitmap_ior_and_compl (TO, FROM1, FROM2)

Definition at line 62 of file basic-block.h.

#define IOR_REG_SET ( TO,
FROM   )     bitmap_operation (TO, TO, FROM, BITMAP_IOR)

#define LOOP_ALL   15

#define LOOP_EDGES   (LOOP_ENTRY_EDGES | LOOP_EXIT_EDGES)

Definition at line 665 of file basic-block.h.

#define LOOP_ENTRY_EDGES   4

Definition at line 663 of file basic-block.h.

Referenced by flow_loop_scan().

#define LOOP_EXIT_EDGES   8

Definition at line 664 of file basic-block.h.

Referenced by estimate_probability(), flow_loop_scan(), and predict_loops().

#define LOOP_PRE_HEADER   2

Definition at line 662 of file basic-block.h.

Referenced by flow_loop_scan().

#define LOOP_TREE   1

#define MAX_REGNO_REG_SET ( NUM_REGS,
NEW_P,
RENUMBER_P   ) 

Definition at line 114 of file basic-block.h.

Referenced by allocate_reg_info().

#define NUM_EDGES ( el   )     ((el)->num_edges)

#define OBSTACK_ALLOC_REG_SET ( OBSTACK   )     BITMAP_OBSTACK_ALLOC (OBSTACK)

#define PROP_ALLOW_CFG_CHANGES   32

Definition at line 635 of file basic-block.h.

Referenced by life_analysis(), and update_life_info().

#define PROP_AUTOINC   64

#define PROP_DEATH_NOTES   1

#define PROP_EQUAL_NOTES   128

Definition at line 638 of file basic-block.h.

Referenced by propagate_one_insn().

#define PROP_FINAL

#define PROP_KILL_DEAD_CODE   8

#define PROP_LOG_LINKS   2

#define PROP_REG_INFO   4

#define PROP_SCAN_DEAD_CODE   16

#define PROP_SCAN_DEAD_STORES   256

#define REG_BASIC_BLOCK (  )     (VARRAY_REG (reg_n_info, N)->basic_block)

#define REG_BLOCK_GLOBAL   -2

#define REG_BLOCK_UNKNOWN   -1

#define REG_SET_EQUAL_P ( A,
B   )     bitmap_equal_p (A, B)

#define REG_SET_TO_HARD_REG_SET ( TO,
FROM   ) 

#define REGNO_REG_SET_P ( TO,
REG   )     bitmap_bit_p (TO, REG)

#define set_block_for_insn ( INSN,
BB   )     (BLOCK_FOR_INSN (INSN) = BB)

#define SET_REGNO_REG_SET ( HEAD,
REG   )     bitmap_set_bit (HEAD, REG)

#define VLS_EXPECT_PREHEADERS   1

Definition at line 771 of file basic-block.h.

Referenced by verify_loop_structure().

#define VLS_EXPECT_SIMPLE_LATCHES   2

Definition at line 772 of file basic-block.h.

Referenced by verify_loop_structure().

#define XOR_REG_SET ( TO,
FROM   )     bitmap_operation (TO, TO, FROM, BITMAP_XOR)

Definition at line 59 of file basic-block.h.

Referenced by verify_local_live_at_start().


Typedef Documentation

Definition at line 774 of file basic-block.h.

Definition at line 368 of file basic-block.h.

typedef struct edge_def * edge

typedef HOST_WIDEST_INT gcov_type

Definition at line 117 of file basic-block.h.

typedef int conflict_graph_enum_fn PARAMS((int, int, void *))

Definition at line 779 of file basic-block.h.

typedef bitmap regset

Definition at line 34 of file basic-block.h.

Definition at line 32 of file basic-block.h.


Enumeration Type Documentation

Enumerator:
CDI_DOMINATORS 
CDI_POST_DOMINATORS 
CDI_DOMINATORS 
CDI_POST_DOMINATORS 
CDI_DOMINATORS 
CDI_POST_DOMINATORS 
CDI_DOMINATORS 
CDI_POST_DOMINATORS 

Definition at line 811 of file basic-block.h.

Enumerator:
UPDATE_LIFE_LOCAL 
UPDATE_LIFE_GLOBAL 
UPDATE_LIFE_GLOBAL_RM_NOTES 
UPDATE_LIFE_LOCAL 
UPDATE_LIFE_GLOBAL 
UPDATE_LIFE_GLOBAL_RM_NOTES 
UPDATE_LIFE_LOCAL 
UPDATE_LIFE_GLOBAL 
UPDATE_LIFE_GLOBAL_RM_NOTES 
UPDATE_LIFE_LOCAL 
UPDATE_LIFE_GLOBAL 
UPDATE_LIFE_GLOBAL_RM_NOTES 

Definition at line 621 of file basic-block.h.


Function Documentation

GTY ( ()   )  [read, write]

Definition at line 94 of file hashtab.h.

void iterate_fix_dominators PARAMS ( (dominance_info, basic_block *, int)   ) 

int get_dominated_by PARAMS ( (dominance_info, basic_block, basic_block **)   ) 

basic_block get_immediate_dominator PARAMS ( (dominance_info, basic_block  ) 

basic_block nearest_common_dominator PARAMS ( (dominance_info, basic_block, basic_block  ) 

void free_dominance_info PARAMS ( (dominance_info  ) 

dominance_info calculate_dominance_info PARAMS ( (enum cdi_direction  ) 

rtx hoist_insn_to_edge PARAMS ( (rtx, edge, rtx, rtx  ) 

rtx hoist_insn_after PARAMS ( (rtx, rtx, rtx, rtx  ) 

bool can_hoist_insn_p PARAMS ( (rtx, rtx, regset  ) 

conflict_graph conflict_graph_compute PARAMS ( (regset, partition  ) 

void conflict_graph_print PARAMS ( (conflict_graph, FILE *)   ) 

void conflict_graph_enum PARAMS ( (conflict_graph, int, conflict_graph_enum_fn, void *)   ) 

int conflict_graph_add PARAMS ( (conflict_graph, int, int)   ) 

void conflict_graph_delete PARAMS ( (conflict_graph  ) 

void verify_loop_structure PARAMS ( (struct loops *, int)   ) 

void add_bb_to_loop PARAMS ( (basic_block, struct loop *)   ) 

int dfs_enumerate_from PARAMS ( (basic_block, int, bool(*)(basic_block, void *), basic_block *, int, void *)   ) 

basic_block* get_loop_body PARAMS ( (const struct loop *)   ) 

bool flow_bb_inside_loop_p PARAMS ( (const struct loop *, const basic_block  ) 

bool flow_loop_nested_p PARAMS ( (const struct loop *, const struct loop *)   ) 

bool flow_loop_outside_edge_p PARAMS ( (const struct loop *, edge  ) 

void alloc_aux_for_edge PARAMS ( (edge, int)   ) 

void alloc_aux_for_block PARAMS ( (basic_block, int)   ) 

void flow_edge_list_print PARAMS ( (const char *, const edge *, int, FILE *)   ) 

void flow_nodes_print PARAMS ( (const char *, const sbitmap, FILE *)   ) 

int delete_noop_moves PARAMS ( (rtx  ) 

void debug_regset PARAMS ( (regset  ) 

void dump_regset PARAMS ( (regset, FILE *)   ) 

void dump_bb PARAMS ( (basic_block, FILE *)   ) 

void compute_available PARAMS ( (sbitmap *, sbitmap *, sbitmap *, sbitmap *)   ) 

struct edge_list* pre_edge_lcm PARAMS ( (FILE *, int, sbitmap *, sbitmap *, sbitmap *, sbitmap *, sbitmap **, sbitmap **)   )  [read]

void free_propagate_block_info PARAMS ( (struct propagate_block_info *)   ) 

rtx propagate_one_insn PARAMS ( (struct propagate_block_info *, rtx  ) 

int propagate_block PARAMS ( (basic_block, regset, regset, regset, int)   ) 

int count_or_remove_death_notes PARAMS ( (sbitmap, int)   ) 

int update_life_info_in_dirty_blocks PARAMS ( (enum update_life_extent, int)   ) 

int update_life_info PARAMS ( (sbitmap, enum update_life_extent, int)   ) 

void life_analysis PARAMS ( (rtx, FILE *, int)   ) 

int find_edge_index PARAMS ( (struct edge_list *, basic_block, basic_block  ) 

void print_edge_list PARAMS ( (FILE *, struct edge_list *)   ) 

void free_edge_list PARAMS ( (struct edge_list *)   ) 

void flow_loop_tree_node_remove PARAMS ( (struct loop *)   ) 

void flow_loop_tree_node_add PARAMS ( (struct loop *, struct loop *)   ) 

int flow_loop_scan PARAMS ( (struct loops *, struct loop *, int)   ) 

void flow_loop_dump PARAMS ( (const struct loop *, FILE *, void(*)(const struct loop *, FILE *, int), int)   ) 

void flow_loops_dump PARAMS ( (const struct loops *, FILE *, void(*)(const struct loop *, FILE *, int), int)   ) 

void flow_loops_free PARAMS ( (struct loops *)   ) 

int flow_loops_find PARAMS ( (struct loops *, int flags  ) 

void dump_edge_info PARAMS ( (FILE *, edge, int)   ) 

int flow_depth_first_order_compute PARAMS ( (int *, int *)   ) 

void flow_reverse_top_sort_order_compute PARAMS ( (int *)   ) 

void tidy_fallthru_edge PARAMS ( (edge, basic_block, basic_block  ) 

void merge_blocks_nomove PARAMS ( (basic_block, basic_block  ) 

basic_block create_basic_block PARAMS ( (rtx, rtx, basic_block  ) 

basic_block create_basic_block_structure PARAMS ( (rtx, rtx, rtx, basic_block  ) 

void redirect_edge_succ PARAMS ( (edge, basic_block  ) 

edge unchecked_make_edge PARAMS ( (basic_block, basic_block, int)   ) 

edge cached_make_edge PARAMS ( (sbitmap *, basic_block, basic_block, int)   ) 

int flow_call_edges_add PARAMS ( (sbitmap  ) 

void insert_insn_on_edge PARAMS ( (rtx, edge  ) 

basic_block split_edge PARAMS ( (edge  ) 

edge split_block PARAMS ( (basic_block, rtx  ) 

void free_basic_block_vars PARAMS ( (int)   ) 

void update_bb_for_insn PARAMS ( (basic_block  ) 

void compute_bb_for_insn PARAMS ( (void  )  [read]

Definition at line 77 of file cplus-dem.c.

void reg_set_to_hard_reg_set PARAMS ( (HARD_REG_SET *, bitmap  ) 


Variable Documentation

Definition at line 93 of file cfg.c.

Definition at line 98 of file cfg.c.

Definition at line 80 of file cfg.c.

Definition at line 76 of file cfg.c.

int n_edges

Definition at line 84 of file cfg.c.


Generated on Wed Apr 8 15:11:38 2009 for Open64 by  doxygen 1.5.6