aboutsummaryrefslogtreecommitdiff
path: root/gcc/basic-block.h
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2013-09-06 07:24:11 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2013-09-06 07:24:11 +0000
commitc8e9d8c3465954947924050f77c899626631f15d (patch)
treea8acf76c03845d011a108b0a59783c1a9c395538 /gcc/basic-block.h
parentd1576de517f65cd51b786bb0ef9e53225da12b8e (diff)
downloadgcc-c8e9d8c3465954947924050f77c899626631f15d.zip
gcc-c8e9d8c3465954947924050f77c899626631f15d.tar.gz
gcc-c8e9d8c3465954947924050f77c899626631f15d.tar.bz2
basic-block.h (class control_dependences): New.
2013-09-06 Richard Biener <rguenther@suse.de> * basic-block.h (class control_dependences): New. * tree-ssa-dce.c (control_dependence_map): Remove. (cd): New global. (EXECUTE_IF_CONTROL_DEPENDENT): Remove. (set_control_dependence_map_bit, clear_control_dependence_bitmap, find_pdom, find_control_dependence, find_all_control_dependences): Move to cfganal.c. (mark_control_dependent_edges_necessary, find_obviously_necessary_stmts, propagate_necessity, tree_dce_init, tree_dce_done, perform_tree_ssa_dce): Adjust. * cfganal.c (set_control_dependence_map_bit, clear_control_dependence_bitmap, find_pdom, find_control_dependence, find_all_control_dependences): Move from tree-ssa-dce.c and implement as methods of control_dependences class. (control_dependences::control_dependences): New. (control_dependences::~control_dependences): Likewise. (control_dependences::get_edges_dependent_on): Likewise. (control_dependences::get_edge): Likewise. From-SVN: r202309
Diffstat (limited to 'gcc/basic-block.h')
-rw-r--r--gcc/basic-block.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/gcc/basic-block.h b/gcc/basic-block.h
index 4317455..ad04d4d 100644
--- a/gcc/basic-block.h
+++ b/gcc/basic-block.h
@@ -465,6 +465,23 @@ struct edge_list
edge *index_to_edge;
};
+/* Class to compute and manage control dependences on an edge-list. */
+class control_dependences
+{
+public:
+ control_dependences (edge_list *);
+ ~control_dependences ();
+ bitmap get_edges_dependent_on (int);
+ edge get_edge (int);
+
+private:
+ void set_control_dependence_map_bit (basic_block, int);
+ void clear_control_dependence_bitmap (basic_block);
+ void find_control_dependence (int);
+ vec<bitmap> control_dependence_map;
+ edge_list *el;
+};
+
/* The base value for branch probability notes and edge probabilities. */
#define REG_BR_PROB_BASE 10000