summaryrefslogtreecommitdiff
path: root/gcc/dominance.c
diff options
context:
space:
mode:
authorrakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4>2006-08-16 21:25:39 +0000
committerrakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4>2006-08-16 21:25:39 +0000
commitf50cf978f0efa41e44ed18b5d6caf6d5510cba51 (patch)
tree6f3474092c924d2afcf2cb8918768de6c4b76758 /gcc/dominance.c
parent026ea634950c9238107683a84e4d84fb2ba2029b (diff)
downloadgcc-f50cf978f0efa41e44ed18b5d6caf6d5510cba51.tar.gz
PR rtl-optimization/28071
* basic-block.h (bb_dom_dfs_in, bb_dom_dfs_out): Declare. * dominance.c (bb_dom_dfs_in, bb_dom_dfs_out): New functions. * tree-into-ssa.c (struct dom_dfsnum): New. (cmp_dfsnum, find_dfsnum_interval, prune_unused_phi_nodes): New functions. (insert_phi_nodes_for): Use prune_unused_phi_nodes instead of compute_global_livein. (prepare_block_for_update, prepare_use_sites_for): Mark the uses in phi nodes in the correct blocks. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@116190 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/dominance.c')
-rw-r--r--gcc/dominance.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/gcc/dominance.c b/gcc/dominance.c
index ca6d1543f77..819e7d45029 100644
--- a/gcc/dominance.c
+++ b/gcc/dominance.c
@@ -909,6 +909,28 @@ dominated_by_p (enum cdi_direction dir, basic_block bb1, basic_block bb2)
return et_below (n1, n2);
}
+/* Returns the entry dfs number for basic block BB, in the direction DIR. */
+
+unsigned
+bb_dom_dfs_in (enum cdi_direction dir, basic_block bb)
+{
+ struct et_node *n = bb->dom[dir];
+
+ gcc_assert (dom_computed[dir] == DOM_OK);
+ return n->dfs_num_in;
+}
+
+/* Returns the exit dfs number for basic block BB, in the direction DIR. */
+
+unsigned
+bb_dom_dfs_out (enum cdi_direction dir, basic_block bb)
+{
+ struct et_node *n = bb->dom[dir];
+
+ gcc_assert (dom_computed[dir] == DOM_OK);
+ return n->dfs_num_out;
+}
+
/* Verify invariants of dominator structure. */
void
verify_dominators (enum cdi_direction dir)