#include "config.h"#include "system.h"#include "coretypes.h"#include "tm.h"#include "rtl.h"#include "hard-reg-set.h"#include "obstack.h"#include "basic-block.h"#include "errors.h"#include "et-forest.h"

Go to the source code of this file.
| #define init_ar | ( | var, | |||
| type, | |||||
| num, | |||||
| content | ) |
| typedef unsigned int TBB |
Definition at line 58 of file dominance.c.
| void add_to_dominance_info | ( | enum cdi_direction | dir, | |
| basic_block | bb | |||
| ) |
Definition at line 929 of file dominance.c.
Definition at line 571 of file dominance.c.
References et_node::dfs_num_in, et_node::dfs_num_out, et_node::right, and et_node::son.
Referenced by assign_dfs_numbers(), and compute_dom_fast_query().
| static void calc_dfs_tree | ( | struct dom_info * | di, | |
| enum cdi_direction | reverse | |||
| ) | [static] |
Definition at line 316 of file dominance.c.
References b, bitmap_set_bit(), calc_dfs_tree_nonrec(), dom_info::dfs_order, dom_info::dfs_parent, dom_info::dfs_to_bb, dom_info::dfsnum, EDGE_COUNT, ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR, dom_info::fake_exit_edge, FOR_EACH_BB_REVERSE, gcc_assert, basic_block_def::index, last_basic_block, n_basic_blocks, and dom_info::nodes.
| static void calc_dfs_tree_nonrec | ( | struct dom_info * | di, | |
| basic_block | bb, | |||
| enum cdi_direction | reverse | |||
| ) | [static] |
Definition at line 204 of file dominance.c.
References edge::dest, dom_info::dfs_order, dom_info::dfs_parent, dom_info::dfs_to_bb, dom_info::dfsnum, ei_edge(), ei_end_p(), ei_next(), ei_start, ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR, free(), gcc_assert, basic_block_def::index, last_basic_block, n_basic_blocks, sp, edge::src, stack, and xmalloc().
| static void calc_idoms | ( | struct dom_info * | di, | |
| enum cdi_direction | reverse | |||
| ) | [static] |
Definition at line 476 of file dominance.c.
References b, bitmap_bit_p(), dom_info::bucket, edge::dest, dom_info::dfs_order, dom_info::dfs_parent, dom_info::dfs_to_bb, dom_info::dom, ei_edge(), ei_end_p(), ei_next(), ei_start, ENTRY_BLOCK_PTR, eval(), EXIT_BLOCK_PTR, dom_info::fake_exit_edge, basic_block_def::index, edge_iterator::index, dom_info::key, last_basic_block, link_roots(), dom_info::next_bucket, dom_info::nodes, and edge::src.
| void calculate_dominance_info | ( | enum cdi_direction | dir | ) |
Definition at line 614 of file dominance.c.
References b, calc_dfs_tree(), calc_idoms(), compute_dom_fast_query(), d, dom_info::dfs_order, dom_info::dfs_to_bb, dom_info::dom, dom_computed, dom_info_available_p(), DOM_NO_FAST_QUERY, DOM_OK, et_new_tree(), et_set_father(), FOR_ALL_BB, FOR_EACH_BB, free_dom_info(), gcc_assert, init_dom_info(), n_basic_blocks, and n_bbs_in_dom_tree.
Definition at line 385 of file dominance.c.
References compress(), dom_info::key, dom_info::path_min, and dom_info::set_chain.
| static void compute_dom_fast_query | ( | enum cdi_direction | dir | ) | [static] |
Definition at line 591 of file dominance.c.
References assign_dfs_numbers(), dom_computed, dom_info_available_p(), DOM_OK, FOR_ALL_BB, and gcc_assert.
Referenced by calculate_dominance_info().
| void debug_dominance_info | ( | enum cdi_direction | dir | ) |
Definition at line 986 of file dominance.c.
References FOR_EACH_BB, fprintf(), get_immediate_dominator(), and basic_block_def::index.
| void delete_from_dominance_info | ( | enum cdi_direction | dir, | |
| basic_block | bb | |||
| ) |
Definition at line 943 of file dominance.c.
| bool dom_info_available_p | ( | enum cdi_direction | dir | ) |
Definition at line 980 of file dominance.c.
| bool dominated_by_p | ( | enum cdi_direction | dir, | |
| basic_block | bb1, | |||
| basic_block | bb2 | |||
| ) |
Definition at line 802 of file dominance.c.
Definition at line 405 of file dominance.c.
References compress(), dom_info::key, dom_info::path_min, and dom_info::set_chain.
| basic_block first_dom_son | ( | enum cdi_direction | dir, | |
| basic_block | bb | |||
| ) |
Definition at line 959 of file dominance.c.
Definition at line 181 of file dominance.c.
References BITMAP_FREE, dom_info::bucket, dom_info::dfs_order, dom_info::dfs_parent, dom_info::dfs_to_bb, dom_info::dom, dom_info::fake_exit_edge, free(), dom_info::key, dom_info::next_bucket, dom_info::path_min, dom_info::set_chain, dom_info::set_child, and dom_info::set_size.
| void free_dominance_info | ( | enum cdi_direction | dir | ) |
Definition at line 653 of file dominance.c.
| int get_dominated_by | ( | enum cdi_direction | dir, | |
| basic_block | bb, | |||
| basic_block ** | bbs | |||
| ) |
Definition at line 712 of file dominance.c.
| unsigned get_dominated_by_region | ( | enum cdi_direction | dir, | |
| basic_block * | region, | |||
| unsigned | n_region, | |||
| basic_block * | doms | |||
| ) |
Definition at line 742 of file dominance.c.
| basic_block get_immediate_dominator | ( | enum cdi_direction | dir, | |
| basic_block | bb | |||
| ) |
Definition at line 673 of file dominance.c.
| static void init_dom_info | ( | struct dom_info * | di, | |
| enum cdi_direction | dir | |||
| ) | [static] |
Definition at line 150 of file dominance.c.
References BITMAP_ALLOC, dom_info::bucket, dom_info::dfs_order, dom_info::dfs_parent, dom_info::dfs_to_bb, dom_info::dfsnum, dom_info::dom, dom_info::fake_exit_edge, i, init_ar, dom_info::key, last_basic_block, n_basic_blocks, dom_info::next_bucket, dom_info::nodes, NULL, dom_info::path_min, dom_info::set_chain, dom_info::set_child, and dom_info::set_size.
| void iterate_fix_dominators | ( | enum cdi_direction | dir, | |
| basic_block * | bbs, | |||
| int | n | |||
| ) |
Definition at line 899 of file dominance.c.
Definition at line 434 of file dominance.c.
References dom_info::key, dom_info::path_min, s, dom_info::set_chain, dom_info::set_child, dom_info::set_size, and tmp.
| basic_block nearest_common_dominator | ( | enum cdi_direction | dir, | |
| basic_block | bb1, | |||
| basic_block | bb2 | |||
| ) |
Definition at line 788 of file dominance.c.
| basic_block next_dom_son | ( | enum cdi_direction | dir, | |
| basic_block | bb | |||
| ) |
Definition at line 970 of file dominance.c.
| basic_block recount_dominator | ( | enum cdi_direction | dir, | |
| basic_block | bb | |||
| ) |
Definition at line 863 of file dominance.c.
| void redirect_immediate_dominators | ( | enum cdi_direction | dir, | |
| basic_block | bb, | |||
| basic_block | to | |||
| ) |
Definition at line 764 of file dominance.c.
| void set_immediate_dominator | ( | enum cdi_direction | dir, | |
| basic_block | bb, | |||
| basic_block | dominated_by | |||
| ) | [inline] |
Definition at line 688 of file dominance.c.
| void verify_dominators | ( | enum cdi_direction | dir | ) |
Definition at line 817 of file dominance.c.
| enum dom_state dom_computed[2] |
Definition at line 48 of file dominance.c.
unsigned n_bbs_in_dom_tree[2] [static] |
Definition at line 127 of file dominance.c.
Referenced by add_to_dominance_info(), calculate_dominance_info(), delete_from_dominance_info(), and free_dominance_info().
1.5.6